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 视图并筛选这些服务类型。

注意事项和限制

  • You can use private connectivity to access Snowflake-managed Iceberg tables and Iceberg tables that use a catalog integration for object storage. In addition, you can use private connectivity to access externally managed Iceberg tables and Iceberg tables created from Delta files in object storage.

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

Set up outbound private connectivity to an external volume

要设置到外部卷的出站专用连接,您可以 使用 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'
    );
    
    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" 状态后,测试使用受支持的操作访问外部卷。

使用 Snowsight

To set up external volume access through private connectivity in Snowsight, follow these steps:

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

    重要

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

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

撤销端点

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

后续主题:

语言: 中文