用于内部暂存区的 Google Private Service Connect 端点

本主题介绍了通过 ` Google Private Service Connect 端点 <https://cloud.google.com/vpc/docs/private-service-connect#endpoints (https://cloud.google.com/vpc/docs/private-service-connect#endpoints)>`_ 连接到 Snowflake 内部暂存区的相关概念和详细操作步骤。

本主题内容:

Google Private Service Connect 端点:概述

您可以配置 Google Private Service Connect (PSC) 端点,为 Snowflake 内部暂存区提供安全的专用连接。此配置可确保对 Snowflake 内部暂存区执行的数据加载和卸载操作通过 Google PSC 网络完成,而不会经过公共互联网。下图总结了这一新支持:

使用 Google Private Service Connect 连接到内部暂存区

以下列表说明了示意图中各编号所代表的含义:

  • 该图展示了一个来自单个 Google VPC 网络的 PSC 端点,指向一个 Snowflake 内部暂存区(编号 2 和 3)。

备注

您可以在同一个 VPC 网络中配置多个私有端点,用于访问同一个 Snowflake 内部暂存区。

  • 本地用户可以直接连接到 Snowflake,如图中编号 1 所示。

  • 要连接到 Snowflake 内部暂存区,本地用户必须先通过 VPC 网络 2,再通过 Google PSC 网络 3,才能访问该内部暂存区。

优势

通过私有端点访问 Snowflake 内部暂存区具有以下优势:

  • 内部暂存区的数据不会经过公共互联网。

  • 本地客户端和 SaaS 应用程序可以通过 Google PSC 网络安全地访问 Snowflake 内部暂存区桶。

  • 管理员无需修改防火墙设置即可访问内部暂存区数据。

  • 管理员可以实施统一的安全策略和监控机制,以限制对内部暂存区的访问。

限制

  • 每个 Snowflake 账户最多可以将 10 个 VPC 网络加入允许列表。

配置专用端点以访问 Snowflake 内部暂存区

要配置专用端点以访问 Snowflake 内部暂存区,必须使用以下三个角色:

  • Snowflake ACCOUNTADMIN 系统角色。

  • Google Cloud 管理员。

  • 网络管理员。

根据组织中的角色层级,您可能需要与多个人员或团队协调配置工作。

完成以下步骤,通过 Google PSC 端点配置并实现对 Snowflake 内部暂存区的安全访问:

  1. 作为 Google Cloud 管理员,请使用 Google Cloud Console 获取 Snowflake 用于限制网络访问的完全限定路径值。

    1. 在 https://console.cloud.google.com (https://console.cloud.google.com) 中,导航到 Quick Access » VPC Network,然后在 » VPC Networks » Name 中选择您的项目。

    2. VPC network details 中,选择 Equivalent REST

    3. Equivalent REST Response 中,复制 "selfLink" 的值。

      该值应类似于 projects/vpc_network_name/global/networks/network_name

      在下一步的系统函数中,您将把该值作为 “google_cloud_vpc_network_name” 实参传入。

  2. 在 Snowflake 中,使用 ACCOUNTADMIN 角色通过调用 SYSTEM$AUTHORIZE_STAGE_PRIVATELINK_ACCESS 函数授权访问内部暂存区。例如:

    USE ROLE ACCOUNTADMIN;
    SELECT SYSTEM$AUTHORIZE_STAGE_PRIVATELINK_ACCESS('<google_cloud_vpc_network_name>');
    
    Copy
  3. 以 Google Cloud 管理员身份访问 https://console.cloud.google.com/ (https://console.cloud.google.com/),创建 Google PSC 端点,并将其附加到 Snowflake 将访问的 VPC 网络:

    1. 创建新端点:在 Network services » Private Service Connect 中,选择 Connect endpoint

    2. Target 中,选择 All Google APIs 作为目标,并填写必填字段。

      备注

      All Google APIs 适用于 全局 端点。目前,仅支持全局端点。

    3. 选择 ADD ENDPOINT

  4. 记录新创建的 Google PSC 端点 IP 地址,以及 Google PSC 端点所连接的 VPC 网络 ID。

  5. 作为网络管理员,配置 DNS 设置以解析 URLs:

    1. Network services 中,导航至 Cloud DNS

    2. 创建新的 DNS 区域,并设置如下:

      • 区域类型: private

      • DNS名称: storage.googleapis.com

      • 选项: Default (private)

      • 网络: prod

    3. 选择 CREATE

  6. 在新的私有 DNS 区域中,创建新记录,使用以下值:

    1. 使用内部暂存区的桶名称。

    2. 资源记录类型: A

    3. IPv4 地址: 10.10.80.55 – 使用您之前创建的 Google PSC 端点的 IP 地址。

    4. 选择 CREATE

  7. 在同一 VPC 的客户端中,使用 nslookupdig 命令确认内部暂存区 URL 能正确解析端点 IP 的地址。

    例如,使用以下 dig 命令确认解析结果:

    dig gcpeuropewest4-63osaw1-stage.storage.googleapis.com
    
    Copy

    正确配置的全局端点应返回如下结果:

    DNS name: gcpeuropewest4-63osaw1-stage
    

撤销对 Snowflake 内部暂存区的访问权限

要通过 Google PSC 专用端点撤销对 Snowflake 内部暂存区的访问,请完成以下步骤:

  1. 作为 Snowflake 管理员,请确认 ENABLE_INTERNAL_STAGES_PRIVATELINK 参数已设置为 TRUE。例如:

    USE ROLE ACCOUNTADMIN;
    SHOW PARAMETERS LIKE 'enable_internal_stages_privatelink' IN ACCOUNT;
    
    Copy
  2. 作为 Snowflake 管理员,调用 SYSTEM$REVOKE_STAGE_PRIVATELINK_ACCESS 函数撤销对专用端点的访问,并使用最初用于授权访问该专用端点的相同 google_cloud_vpc_network_name 值。例如:

    USE ROLE ACCOUNTADMIN;
    SELECT SYSTEM$REVOKE_STAGE_PRIVATELINK_ACCESS('<google_cloud_vpc_network_name>');
    
    Copy
  3. 作为 Google Cloud 管理员,通过 Google Cloud 门户删除专用端点。

  4. 作为网络管理员,删除用于解析存储账户 URLs 的 DNS 和别名记录。

完成这些步骤后,将撤销对 VPC 网络的访问权限。

语言: 中文