Microsoft Azure 外部存储卷的专用连接

本主题提供了设置与 Microsoft Azure 外部卷的出站专用连接的配置详细信息。出站公共连接和出站专用连接的主要区别在于如何设置外部卷的 USE_PRIVATELINK_ENDPOINT 属性。

当外部卷配置为使用专用连接时,您与 Microsoft Azure 云存储服务的连接将通过 Microsoft Azure 内部网络进行。通过将外部卷配置为使用出站专用连接,可以阻止对存储账户的公共访问,从而为操作增加额外的安全性。

有关使用外部卷为 Iceberg 表连接外部云存储的更多信息,请参阅 配置外部卷

出站专用连接成本

您为每个专用连接端点以及处理的总数据量付费。有关这些项目的定价,请参阅 Snowflake 服务使用量表

在 ACCOUNT_USAGE 和 ORGANIZATION_USAGE 架构中查询计费视图时,可以通过筛选以下服务类型来查看这些项目的成本:

  • OUTBOUND_PRIVATELINK_ENDPOINT

  • OUTBOUND_PRIVATELINK_DATA_PROCESSED

例如,您可以查询 USAGE_IN_CURRENCY_DAILY 视图并筛选这些服务类型。

注意事项和限制

  • 您可以使用专用连接访问由 Snowflake 管理的 Iceberg 表和使用目录集成进行对象存储的 Iceberg 表,但不能用于访问使用其他目录集成的 Iceberg 表。

  • 您可以为同一个云存储服务配置出站公共连接和出站专用连接。如果要这样做,请为出站公共连接创建专用外部卷,并指定 USE_PRIVATELINK_ENDPOINT = FALSE

专用连接属性

外部卷的 USE_PRIVATELINK_ENDPOINT 属性决定了是通过专用连接还是通过穿过公共网络来访问外部卷。要使用专用连接,请在创建或修改外部卷时设置 USE_PRIVATELINK_ENDPOINT = TRUE

使用专用连接配置外部卷访问

使用以下步骤使用出站专用连接将数据卸载到 Microsoft Azure 上的外部卷:

  1. 在 Snowflake 中,调用 SYSTEM$PROVISION_PRIVATELINK_ENDPOINT 系统函数以在您的 SnowflakeVNet 中配置专用连接端点,使 Snowflake 能够使用专用连接连接到您的外部 Microsoft Azure 云存储服务:

    USE ROLE ACCOUNTADMIN;
    
    SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
      '/subscriptions/cc2909f2-ed22-4c89-8e5d-bdc40e5eac26/resourceGroups/mystorage/providers/Microsoft.Storage/storageAccounts/storagedemo',
      'mystorageaccount.blob.core.windows.net',
      'blob'
    );
    
    Copy

    此函数将专用端点与主机名绑定,从而使外部卷可以使用专用端点连接到存储位置。

  2. 在 Azure 门户中,作为 Microsoft Azure 存储资源的所有者,批准专用端点。有关详细信息,请参阅 审批流程 (https://learn.microsoft.com/en-us/azure/private-link/manage-private-endpoint?tabs=manage-private-link-powershell#private-endpoint-connections)。

  3. 在 Snowflake 中,调用 SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO 函数。

    当函数的输出包括 "status": "APPROVED 时,您从 Snowflake 到存储账户的连接将可以使用专用连接。

    在等待 "APPROVED" 状态时,您可以继续执行后续步骤。

  4. 创建外部加密卷,确保将 USE_PRIVATELINK_ENDPOINT 属性设置为:code:TRUE

    CREATE EXTERNAL VOLUME exvol
      STORAGE_LOCATIONS =
        (
          (
            NAME = 'my-azure-northeurope'
            STORAGE_PROVIDER = 'AZURE'
            STORAGE_BASE_URL = 'azure://exampleacct.blob.core.windows.net/my_container_northeurope/'
            AZURE_TENANT_ID = 'a123b4c5-1234-123a-a12b-1a23b45678c9'
            USE_PRIVATELINK_ENDPOINT = TRUE
          )
        );
    
    Copy
  5. 在专用端点具有 "APPROVED" 状态后,测试使用受支持的操作访问外部卷。

撤销端点

如果不再需要外部卷的专用连接端点,请取消设置外部卷的 USE_PRIVATELINK_ENDPOINT 属性,然后调用 SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT 系统函数。

后续主题:

语言: 中文