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 表,以及从对象存储中的 Delta 文件创建的 Iceberg 表。

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

设置到外部卷的出站专用连接

要设置到外部卷的出站专用连接,您可以 使用 SQL使用 Snowsight

使用 SQL

专用连接属性

外部卷的 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'
    );
    

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

  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
          )
        );
    
  5. 在专用端点具有 "APPROVED" 状态后,测试使用受支持的操作访问外部卷。

使用 Snowsight

要在 Snowsight 中通过专用连接设置外部卷访问,请按照以下步骤操作:

  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'
    );
    

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

  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. 按照以下步骤,在 Snowsight 中为 Azure 创建外部卷,并在配置外部卷时启用专用连接。

    重要

    要启用专用连接,在 Configure external volume 页面上,必须从 Connectivity 字段中选择 Private (Azure Private Endpoint)

  5. 在专用端点具有 "APPROVED" 状态后,测试使用受支持的操作访问外部卷。

撤销端点

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

后续主题: