Google Cloud Private Service Connect 和 Snowflake

本主题介绍相关概念以及如何配置 Google Cloud Private Service Connect,以便在不穿过公共互联网的情况下将您的 Google Cloud Virtual Private Cloud (VPC) 网络子网连接到您在 Google Cloud Platform 上托管的 Snowflake 账户。

请注意,Google Cloud Private Service Connect 不是 Snowflake 提供的服务。这是 Snowflake 允许与您的 Snowflake 账户一起使用的 Google 服务。

如果您正在使用 Business Critical Edition(或更高版本)并希望通过您的账户使用 Google Cloud Private Service Connect,请联系 Snowflake 支持部门 (https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge) 并请求启用该服务。

本主题内容:

概述

Google Cloud Private Service Connect (https://cloud.google.com/vpc/docs/private-service-connect) 通过确保使用私有 IP 地址访问 Snowflake 来提供与 Snowflake 的私有连接。Snowflake 在您的网络(即客户网络)中显示为一种资源,但流量通过 Google 网络主干从您的 VPC 单向流向 Snowflake VPC。此设置显著简化了网络配置,同时提供安全和私密的通信。

下图总结了与客户 Google Cloud VPC 和 Snowflake 服务相关的 Google Cloud Private Service Connect 架构。

架构概述

Google 计算引擎(即虚拟机)连接到私有虚拟 IP 地址,该地址路由到转发规则 (1)。转发规则通过专用连接 (2) 连接到服务附件。连接通过重定向到 Snowflake (4) 的负载均衡器 (3) 进行路由。

限制

配置过程

本节介绍如何配置 Google Cloud Private Service Connect 以连接到 Snowflake。

注意

本节仅涵盖配置 Google Cloud VPC 环境 的Snowflake 特定详细信息。此外,请注意,Snowflake 负责所需防火墙更新和 DNS 记录的实际配置。

如果您在执行这些配置任务时遇到问题,请直接联系 Google 支持部门。

有关安装帮助,请参阅有关 Cloud SDK:命令行界面 (https://cloud.google.com/sdk/gcloud) 的 Google 文档。

如需其他帮助,请联系您的内部 Google Cloud 管理员。

  1. 请联系 Snowflake 支持部门 (https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge),并提供您的 Google Cloud <project_id> 值和用于访问 Snowflake 的相应 URLs 的列表,同时附上启用 Google Cloud Private Service Connect 的说明。收到 Snowflake 支持部门的响应后,继续下一步。

    重要

    如果您在 VPC 中使用 VPC 服务控制 (https://cloud.google.com/vpc-service-controls),请在联系 Snowflake 支持部门 之前 确保该策略允许访问 Snowflake 服务。

    如果不执行此操作,Snowflake 将无法将您的项目 ID 添加到 Snowflake 服务附件允许列表中。结果是您将无法使用此功能连接到 Snowflake。

  2. 在 Snowflake 工作表中,使用 ACCOUNTADMIN 系统角色运行 SYSTEM$GET_PRIVATELINK_CONFIG 函数,并保存命令输出以供以下步骤使用:

    use role accountadmin;
    select key, value from table(flatten(input=>parse_json(system$get_privatelink_config())));
    
    Copy
  3. 在命令行界面(例如终端应用程序)中,将 gcloud 库 (https://cloud.google.com/sdk/gcloud/reference/components/update) 更新至最新版本:

    gcloud components update
    
    Copy
  4. 使用以下命令对 Google Cloud Platform 进行 身份验证 (https://cloud.google.com/sdk/gcloud/reference/auth/login):

    gcloud auth login
    
    Copy
  5. 在您的 Google Cloud VPC 中,设置转发规则应驻留的项目 ID (https://cloud.google.com/sdk/gcloud/reference/config/set)。

    gcloud config set project <project_id>
    
    Copy

    要获取项目 IDs 列表,请执行以下命令:

    gcloud projects list --sort-by=projectId
    
    Copy
  6. 在您的 Google Cloud VPC 中, 创建 (https://cloud.google.com/sdk/gcloud/reference/compute/addresses/create) 一个虚拟 IP 地址:

    gcloud compute addresses create <customer_vip_name> \
    --subnet=<subnet_name> \
    --addresses=<customer_vip_address>
    --region=<region>
    
    Copy

    例如:

    gcloud compute addresses create psc-vip-1 \
    --subnet=psc-subnet \
    --addresses=192.168.3.3 \
    --region=us-central1
    
    # returns
    
    Created [https://www.googleapis.com/compute/v1/projects/docstest-123456/regions/us-central1/addresses/psc-vip-1].
    
    Copy

    其中:

    • <customer_vip_name> specifies the name of the virtual IP rule (i.e. psc-vip-1).

    • <subnet_name> 指定子网的名称。

    • <customer_vip_address>:所有专用连接 URLs 解析到这个地址。从您的网络中指定一个 IP 地址或使用 CIDR 表示法指定一个 IP 地址范围。

    • <region> 指定您的 Snowflake 账户所在的云区域。

    .

  7. 创建一个 转发规则 (https://cloud.google.com/sdk/gcloud/reference/compute/forwarding-rules/create),使您的子网路由到 Private Service Connect 端点,然后到 Snowflake 服务端点:

    gcloud compute forwarding-rules create <name> \
    --region=<region> \
    --network=<network_name> \
    --address=<customer_vip_name> \
    --target-service-attachment=<privatelink-gcp-service-attachment>
    
    Copy

    例如:

    gcloud compute forwarding-rules create test-psc-rule \
    --region=us-central1 \
    --network=psc-vpc \
    --address=psc-vip-1 \
    --target-service-attachment=projects/us-central1-deployment1-c8cc/regions/us-central1/serviceAttachments/snowflake-us-central1-psc
    
    # returns
    
    Created [https://www.googleapis.com/compute/projects/mdlearning-293607/regions/us-central1/forwardingRules/test-psc-rule].
    
    Copy

    其中:

    • <name> 指定转发规则的名称。

    • <region> 指定您的 Snowflake 账户所在的云区域。

    • <network_name> 指定此转发规则的网络名称。

    • <customer_vip_name> specifies the 在上一步中创建的虚拟 IP 地址的 <name> value (i.e. psc-vip-1)。

    • <privatelink-gcp-service-attachment> 指定 Snowflake 服务的端点(请参阅第 2 步)。

    .

  8. 使用以下命令验证转发规则是否已 成功 (https://cloud.google.com/sdk/gcloud/reference/compute/forwarding-rules/list) 创建:

    gcloud compute forwarding-rules list --regions=<region>
    
    Copy

    此命令中的云区域必须与您的 Snowflake 账户所在的云区域匹配。

    例如,如果您的 Snowflake 账户位于 europe-west-2 区域,请将 <region> with 替换为 europe-west2

    有关 Google Cloud 区域及其格式的完整列表,请参阅 查看可用区域列表 (https://cloud.google.com/compute/docs/regions-zones/viewing-regions-zones#viewing_a_list_of_available_regions)。

  9. 更新您的 DNS 设置。

    所有对 Snowflake 的请求都需要通过 Private Service Connect 端点进行路由,以便第 2 步中的 URLs(来自 SYSTEM$GET_PRIVATELINK_CONFIG 函数)解析为您创建的 VIP 地址 (<customer_vip_address>)。

    这些端点值可允许您访问 Snowflake、Snowsight 和 Snowflake Marketplace,同时还可在 Snowflake 客户端尝试通过 HTTPS 和 连接 URLs 连接到端点时使用 OCSP 来确定证书是否已撤消。

    要获取的函数值为:

    • privatelink-account-url

    • privatelink-connection-ocsp-urls

    • privatelink-connection-urls

    • privatelink-ocsp-url

    • regionless-privatelink-account-url

    • regionless-snowsight-privatelink-url

    • snowsight-privatelink-url

    请注意, regionless-snowsight-privatelink-urlsnowsight-privatelink-url 的值允许使用专用连接访问 Snowsight 和 Snowflake Marketplace。但是,如果要启用 URL 重定向,则还需要进行其他配置。

    有关详细信息,请参阅 Snowsight 和专用连接

    备注

    对 DNS 配置的完整解释超出了此过程的范围。例如,您可以选择使用 Cloud DNS (https://cloud.google.com/dns/docs/overview) 将专用 DNS 区域集成到您的环境中。请咨询您的内部 Google Cloud 和云基础设施管理员,以正确配置和解析 DNS 属性中的 URLs。

  10. 使用 :doc:`/user-guide/snowcd`测试您与 Snowflake 的连接。

  11. 使用您的专用连接账户 URL 连接到 Snowflake。

    请注意,如果您想通过 Google Cloud Private Service Connect 连接到 Snowsight,请按照 :ref:`Snowsight 文档 <label-snowsight_getting_started_sign_in>`中的说明进行操作。

将 SSO 与 Google Private Service Connect 结合使用

Snowflake 支持将 SSO 与 Google Cloud Private Service Connect 结合使用。有关更多信息,请参阅:

将 Client Redirect 与 Google Cloud Private Service Connect 结合使用

Snowflake 支持将 Client Redirect 与 Google Cloud Private Service Connect 结合使用。

有关更多信息,请参阅 重定向客户端连接

将复制和 Tri-Secret Secure 与专用连接结合使用

无论您是否在目标账户中启用 Tri-Secret Secure 或此功能,Snowflake 都支持将您的数据从源账户复制到目标账户。

阻止公共访问 – 可选

在测试了 Google Cloud Private Service Connect 与 Snowflake 的连接后,您可以:emph:选择`使用:doc:/user-guide/network-policies`控制网络流量来阻止对 Snowflake 的公共访问。

配置 CIDR 阻止范围,以阻止使用 您组织的 IP 地址范围 对 Snowflake 的公共访问。该范围可以来自您的虚拟网络。

设置 CIDR 阻止范围后,只有 CIDR 阻止范围内的 IP 地址才能访问 Snowflake。

要使用网络策略阻止公共访问,请执行以下操作:

  1. 创建新的网络策略或编辑现有的网络策略。为您的组织添加 CIDR 阻止范围。

  2. 激活账户的网络策略。

语言: 中文