DOCUMENTATION
/
语言
English
中文
开始使用
指南
开发者
参考
版本说明
教程
状态
前往 https://china-status.snowflake.com 查看状态详细信息
  1. 概述
    • Snowflake Horizon 目录
      • 连接到 Snowflake 的应用程序和工具
      • 虚拟仓库
      • 数据库、表和视图
      • Data types
        • 数据集成
          1. Snowflake Openflow
          2. Apache Iceberg™
            1. Apache Iceberg™ 表
            2. Snowflake Open Catalog
        • Data engineering
          1. 数据加载
          2. 动态表
          3. Streams and tasks
          4. Row timestamps
            • dbt Projects on Snowflake
            • 数据卸载
          5. Storage lifecycle policies
          6. Migrations
          7. 查询
          8. 列表
          9. Collaboration
          10. Snowflake AI 和 ML
          11. Snowflake Postgres
          12. 警报和通知
          13. 安全
              1. 身份验证
              2. Overview of authentication
              3. 身份验证策略
                • MFA(多重身份验证)
                • 联合身份验证和 SSO
                • 密钥对身份验证和轮换
                • Programmatic access tokens
                  • OAuth
                  • Workload identity federation
                    • API 身份验证和密钥
                      • 网络安全
                      • Malicious IP protection
                        • 网络策略
                          • Network egress
                            • 网络规则
                              • 专用连接
                              • 入站专用连接
                                  1. AWS PrivateLink
                                    • Azure 专用链接
                                      • Google Cloud Private Service Connect
                                        • Enforce privatelink-only access
                                          • 固定专用连接端点
                                            • 至 Snowflake 内部暂存区
                                            • 适用于内部暂存区的 AWS VPC 接口端点
                                              • 适用于内部暂存区的 Azure Private Endpoint
                                                • Google Cloud PSC endpoints for internal stages
                                              • 出站专用连接
                                              • 管理和授权
                                              • Trust Center
                                              • 会话和会话策略
                                              • SCIM 支持
                                              • 访问控制
                                              • 加密
                                          • 数据治理
                                          • 隐私
                                          • 组织和账户
                                          • 业务连续性和数据恢复
                                          • Performance optimization
                                          • 成本和计费
                                          指南安全入站专用连接AWS PrivateLink

                                          AWS PrivateLink 和 Snowflake¶

                                          黑色 Snowflake 徽标(无文字) 业务关键性功能

                                          此功能需要 Business Critical(或更高版本)。

                                          本主题介绍如何配置 AWS PrivateLink 以便直接将 Snowflake 账户连接到一个或多个 AWS 虚拟私有云 (VPCs)。

                                          AWS PrivateLink:概述¶

                                          AWS PrivateLink (https://docs.aws.amazon.com/aws-technical-content/latest/aws-vpc-connectivity-options/aws-privatelink.html) 是一项用于创建专用 VPC 端点的 AWS 服务,允许 AWS VPCs 和 Snowflake VPC 之间进行直接、安全的连接,而无需穿过公共互联网。AWS PrivateLink 连接支持位于相同或不同 AWS 区域的 VPC 端点服务和 AWS VPCs。通过 AWS PrivateLink 的跨区域连接,您可以使用自定义端点服务连接与您的 AWS VPC 区域不同的区域中的 Snowflake 账户。目前,任何平台即服务 (PaaS) 服务均不支持跨区域连接,例如 Amazon Simple Storage Service (Amazon S3) 或 Key Management Service (KMS)。

                                          For more information, see the AWS blog page, Introducing Cross-Region Connectivity for AWS PrivateLink (https://aws.amazon.com/blogs/networking-and-content-delivery/introducing-cross-region-connectivity-for-aws-privatelink). For information about finding the region names for your account, see Find the cloud-provider's name of the region for your account.

                                          编写外部函数 时,您也可以将 AWS PrivateLink 与 专用端点 结合使用。

                                          如果您拥有本地环境(例如,非托管数据中心),则可以将 AWS Direct Connect (https://aws.amazon.com/directconnect/) 与 AWS PrivateLink 结合使用,以在单个专用网络中连接所有虚拟和物理环境。

                                          备注

                                          AWS Direct Connect 是一项单独的 AWS 服务,必须独立于 AWS PrivateLink 实施,并且不在本主题的讨论范围内。如需咨询如何实施 AWS Direct Connect,请联系 Amazon。

                                          启用 AWS PrivateLink。¶

                                          备注

                                          目前,本部分中的自助启用过程 不 支持通过托管云服务或第三方供应商为 AWS 账户标识符授权。

                                          要针对此用例为 AWS 账户标识符授权,请从供应商处检索 AWS 账户标识符,然后联系 Snowflake 支持部门。

                                          要为您的 Snowflake 账户启用 AWS PrivateLink,请完成以下步骤:

                                          1. 生成联合令牌,然后保存输出。

                                            1. 要生成令牌,请在命令行上运行 AWS CLI STS (https://docs.aws.amazon.com/cli/latest/reference/sts/get-federation-token.html) 命令。get-federation-token 需要 AWS 中的 Identity and Access Management 用户或 AWS 账户根用户。有关详细信息,请参阅 AWS 文档 (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison)。

                                              重要

                                              联合令牌在 12 小时后过期。如果您调用任何系统函数来授权、验证或禁用 Snowflake 账户才能使用 AWS PrivateLink,并且令牌已过期,请再次运行 AWS CLI STS 命令来重新生成令牌。

                                              aws sts get-federation-token --name sam
                                              
                                              Copy

                                              在后续步骤中,提供此命令的输出作为 SYSTEM$AUTHORIZE_PRIVATELINK 函数的 federated_token 实参。

                                            2. 从您生成的令牌中提取 "FederatedUserId" 字段的值。例如,如果您的令牌包含以下值:

                                              {
                                               ...
                                                 "FederatedUser": {
                                                   "FederatedUserId": "185...:sam",
                                                   "Arn": "arn:aws:sts::185...:federated-user/sam"
                                                 },
                                               "PackedPolicySize": 0
                                              }
                                              
                                              Copy

                                              提取 185...。在下一步中,提供这个 12 位数字作为 SYSTEM$AUTHORIZE_PRIVATELINK 函数的 aws_id 实参。

                                          2. 使用 ACCOUNTADMIN Snowflake 系统角色,调用 SYSTEM$AUTHORIZE_PRIVATELINK 函数为您的 Snowflake 账户 *授权*(启用)AWS PrivateLink:

                                            SELECT SYSTEM$AUTHORIZE_PRIVATELINK ( '<aws_id>' , '<federated_token>' );
                                            
                                            Copy

                                            其中:

                                            • 'aws_id'

                                              用于唯一标识您的 Amazon Web Services (AWS) 账户的 12 位标识符(字符串)。

                                            • 'federated_token'

                                              以字符串形式包含联合用户的访问凭据的联合令牌值。

                                            例如:

                                            USE ROLE ACCOUNTADMIN;
                                            
                                            SELECT SYSTEM$AUTHORIZE_PRIVATELINK (
                                              '185...',
                                                '{
                                                  "Credentials": {
                                                    "AccessKeyId": "ASI...",
                                                    "SecretAccessKey": "enw...",
                                                    "SessionToken": "Fwo...",
                                                    "Expiration": "2021-01-07T19:06:23+00:00"
                                                  },
                                                  "FederatedUser": {
                                                    "FederatedUserId": "185...:sam",
                                                    "Arn": "arn:aws:sts::185...:federated-user/sam"
                                                  },
                                                  "PackedPolicySize": 0
                                                 }'
                                              );
                                            
                                            Copy

                                            要验证您的配置,请您在 AWS 上的 Snowflake 账户中调用 SYSTEM$GET_PRIVATELINK 函数。此函数使用的 'aws_id' 和 'federated_token' 实参值与用于为 Snowflake 账户授权的实参值相同。

                                            授权成功后,SYSTEM$GET_PRIVATELINK 会返回 Account is authorized for PrivateLink.。

                                          3. 可选:如果您需要在 Snowflake 账户中 禁用 AWS PrivateLink,请使用 'aws_id' 和 'federated_token' 的相同实参值调用 SYSTEM$REVOKE_PRIVATELINK 函数。

                                          为了进一步加强安全态势,Snowflake 建议为您的 Snowflake 账户固定专用端点。有关更多信息,请参阅 为入站流量固定专用连接端点。

                                          配置您的 AWS VPC 环境¶

                                          注意

                                          本部分仅介绍用于配置 VPC 环境的 Snowflake 特定详细信息。

                                          Snowflake 不 负责实际配置所需的 AWS VPC 端点、安全组规则和域名系统 (DNS) 记录。如果您遇到这些配置任务方面的任何问题,请联系 AWS 支持部门。

                                          创建和配置 AWS VPC 端点¶

                                          要在 AWS VPC 环境中创建和配置 VPC 端点,请完成以下步骤:

                                          1. 在 Snowflake 账户中,使用 ACCOUNTADMIN 系统角色调用 SYSTEM$GET_PRIVATELINK_CONFIG 函数,然后记录 privatelink-vpce-id 值。

                                          2. 在 AWS 环境中,使用上一步中的 privatelink-vpce-id 值创建 VPC 端点。

                                            备注

                                            If the Snowflake region of your VPC endpoint is different from the region of your AWS VPC, you must make two selections that enable cross-region connectivity. In the AWS VPC Console, select Enable Cross Region endpoint, and then select the primary region of the service in Service Settings » Service Region.

                                            有关完整说明,请参阅 AWS 文档中的 配置跨区域连接 (https://aws.amazon.com/blogs/networking-and-content-delivery/introducing-cross-region-connectivity-for-aws-privatelink/) 的分步设置过程。

                                            For instructions that describe how to find the region name of your account, see Find the cloud-provider's name of the region for your account.

                                          3. 在 AWS 环境中,为将 Snowflake 传出连接连接到 VPCE CIDR (无类域间路由)的端口 443 和 80 的服务安全组授权。

                                          有关更多信息,请参阅 AWS 文档中的以下主题:

                                          • 使用 VPCs 和子网 (https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html)

                                          • VPC 端点 (https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html)

                                          • VPC 端点服务 (AWS PrivateLink) (https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html)

                                          • VPC 的安全组 (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)

                                          Find the cloud-provider's name of the region for your account¶

                                          Snowflake and the cloud provider that hosts your Snowflake account use similar, but different names for the region that hosts the Snowflake service. You can use system functions to find region names that you use to establish connectivity across regions. To determine the cloud-provider's name of the region that hosts your Snowflake account, take the following steps:

                                          1. Run the CURRENT_REGION and SHOW REGIONS commands.

                                          2. In the output returned by SHOW REGIONS, find a row that shows a value in the snowflake_region column that matches the output returned by SELECT CURRENT REGION.

                                            The value in this row's region column is the cloud-provider's name of the region that hosts your Snowflake account.

                                          In the following example, us-west-2 is the cloud-provider's name of the region that hosts the Snowflake account named AWS_US_WEST.

                                          SELECT CURRENT_REGION();
                                          
                                          Copy

                                          Output:

                                          +------------------+
                                          | CURRENT_REGION() |
                                          |------------------|
                                          | AWS_US_WEST_2    |
                                          +------------------+
                                          
                                          Copy
                                          SHOW REGIONS;
                                          
                                          Copy

                                          Output:

                                          +------------------+-------+-----------|-----------------+
                                          | snowflake_region | cloud | region    | display_name    |
                                          |------------------|-------|-----------|-----------------|
                                          | AWS_US_WEST_2    | aws   | us-west-2 | US West (Oregon)|
                                          +------------------+-------+-----------+-----------------+
                                          
                                          Copy

                                          配置 VPC 网络¶

                                          要使用 AWS PrivateLink 端点访问 Snowflake,必须在 DNS 中创建规范名称 (CNAME) 记录,以将 SYSTEM$GET_PRIVATELINK_CONFIG 函数中的相应端点值解析为 VPC 端点的 DNS 名称。

                                          从 SYSTEM$GET_PRIVATELINK_CONFIG 的输出中获取的值取决于您使用专用连接访问哪些 Snowflake 功能。有关可能值的描述,请参阅 返回值。

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

                                          如需 DNS 配置方面的其他帮助,请与内部 AWS 管理员联系。

                                          重要

                                          在线证书状态协议 (OCSP) 缓存服务器主机名的结构取决于所安装客户端的版本,如 配置 Snowflake 客户端 中所述:

                                          • 如果您使用列出的版本或更高版本,请使用 配置 Snowflake 客户端 中所示的格式,当您在同一区域拥有多个 Snowflake 账户(例如开发、测试和生产)时,这样可以实现更好的 DNS 解析。更新客户端驱动程序并将 OCSP 与 PrivateLink 结合使用时,请更新防火墙规则以允许 OCSP 主机名。

                                          • 如果您使用早期的客户端版本,则 OCSP 缓存服务器主机名采用不带 账户标识符 的格式 ocsp.region_id.privatelink.snowflakecomputing.cn。

                                          • 您的 DNS 记录必须解析为 VPC 内的专用 IP 地址。如果它解析为公共 IP 地址,则记录配置不正确。

                                          为 Amazon S3 创建 AWS VPC 接口端点¶

                                          This step is required for Amazon S3 traffic from Snowflake clients to stay on the AWS backbone. The Snowflake clients (such as Snowflake CLI, SnowSQL, JDBC driver, and so on) require access to Amazon S3 to perform various runtime operations.

                                          如果您的 AWS VPC 网络不允许访问公共互联网,您可以配置到内部暂存区的专用连接或配置更多网关端点以连接 Snowflake 客户端所需的 Amazon S3 主机名。

                                          有三个选项可以配置对 Amazon S3 的访问。前两个选项避免使用公共互联网,第三个选项则使用公共互联网:

                                          • 为 内部暂存区 配置 AWS VPC 接口端点。建议使用此选项。

                                          • 配置 Amazon S3 网关端点。有关更多信息,请参阅以下“注意”部分。

                                          • 不要配置接口端点或网关端点。这会导致需要使用公共互联网进行访问。

                                          注意

                                          要防止 Amazon S3 桶与采用 Snowflake 的 AWS VPC 之间的通信使用公共互联网,您可以在与 Amazon S3 桶相同的 AWS 区域中设置 Amazon S3 网关端点。这会阻止公共互联网上的通信,因为 AWS PrivateLink 只允许 VPCs 之间相互通信,而 Amazon S3 桶不包含在 VPC 中。

                                          您可以配置 Amazon S3 网关端点,以限制对特定用户、Amazon S3 资源、路由和子网的访问;但是,Snowflake 不需要此配置。有关更多信息,请参阅 Amazon S3 的网关端点 (https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html)。

                                          要限制 Amazon S3 网关仅使用适用于 Snowflake 的 Amazon S3 资源,请选择以下选项之一:

                                          • 使用您的 Snowflake 账户在 AWS 端点策略中使用的特定 Amazon S3 主机名地址。有关您的账户使用的主机名的完整列表,请参阅 SYSTEM$ALLOWLIST。

                                          • 使用与 AWS 端点策略中的 Snowflake S3 主机名相匹配的 Amazon S3 主机名模式。在此选项中,有两种到 Snowflake 的可能连接类型:VPC 到 VPC 或本地到 VPC。

                                            根据您的连接类型,完成以下说明:

                                            VPC 到 VPC:

                                            确保 Amazon S3 网关端点存在。(可选)修改 Amazon S3 网关端点策略,以匹配以下 Amazon S3 主机名表中显示的特定主机名模式。

                                            本地到 VPC:

                                            如果 公共网关不允许 Amazon S3 流量,请定义一项设置,以便在防火墙或代理配置中包含 Amazon S3 主机名模式。

                                          如果您不要求网关端点明确匹配账户的 Snowflake 管理的 S3 桶,则可以使用下表中显示的 Amazon S3 主机名模式来创建网关端点:

                                          Amazon S3 主机名

                                          备注

                                          所有区域

                                          sfc-*-stage.s3.amazonaws.com:443

                                          无。

                                          除 US 东部以外的所有区域

                                          sfc-*-stage.s3-<region_id>.amazonaws.com:443

                                          该模式在区域 ID 前使用了连字符 (-)。

                                          sfc-*-stage.s3.<region_id>.amazonaws.com:443

                                          该模式在区域 ID 前使用句点 (.)。

                                          有关创建网关端点的信息,请参阅 网关 VPC 端点 (https://docs.aws.amazon.com/vpc/latest/userguide/vpce-gateway.html)。

                                          连接到 Snowflake¶

                                          在连接到 Snowflake 之前,您可以 选择 使用 Snowflake Connectivity Diagnostic Tool (SnowCD) 来评估与 Snowflake 和 AWS PrivateLink 的网络连接情况。

                                          有关更多信息,请参阅 SnowCD 和 SYSTEM$ALLOWLIST_PRIVATELINK。

                                          否则,请使用您的专用连接账户 URL 连接到 Snowflake。

                                          如果您要通过 AWS PrivateLink 连接到 Snowsight,请按照 Snowsight 文档 中的说明进行操作。

                                          阻止公共访问 – 建议¶

                                          使用 AWS PrivateLink 测试与 Snowflake 的专用连接后,您可以选择阻止对 Snowflake 的公共访问。这意味着,只有当用户的连接请求来自 Snowflake 网络策略中指定的特定 IP 阻止范围内的 CIDR 地址时,用户才能访问 Snowflake。

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

                                          1. 创建新的网络策略或编辑现有的网络策略。

                                          2. 为您的组织添加 CIDR 阻止范围。

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

                                          有关更多信息,请参阅 使用网络策略控制网络流量。

                                          配置 Snowflake 客户端¶

                                          以下部分介绍如何为特定用例配置 Snowflake 客户端。

                                          确保 Snowflake 客户端支持 OCSP 缓存服务器¶

                                          Snowflake OCSP 缓存服务器可缓解 Snowflake 客户端与服务器之间的连接问题。要使安装的 Snowflake 客户端能够使用 OCSP 服务器缓存,请确保使用以下客户端版本:

                                          • Snowflake CLI 3.0.0 (or higher)

                                          • SnowSQL 1.1.57 (or higher)

                                          • Python Connector 1.8.2 (or higher)

                                          • JDBC Driver 3.8.3 (or higher)

                                          • ODBC Driver 2.19.3 (or higher)

                                          备注

                                          Snowflake OCSP 缓存服务器可监听 80 端口,因此在 创建和配置 AWS VPC 端点 中,系统会指示您配置 AWS PrivateLink VPCE 安全组以接受端口 80 和端口 ``443``(所有其他 Snowflake 流量都需要)。

                                          为 Snowflake 客户端指定主机名¶

                                          每个 Snowflake 客户端都需要一个主机名才能连接到您的 Snowflake 账户。

                                          主机名与您在 配置 VPC 网络 中的 CNAME 记录中指定的主机名相同。

                                          此步骤不适用于访问 Snowflake Marketplace。

                                          例如,对于名为 xy12345 的账户:

                                          • 如果账户位于 US 西部,则主机名为 xy12345.us-west-2.privatelink.snowflakecomputing.cn。

                                          • 如果账户位于 EU(法兰克福),则主机名为 xy12345.eu-central-1.privatelink.snowflakecomputing.cn。

                                          重要

                                          指定主机名的方法因客户端而异:

                                          • 对于 Spark Connector 以及 ODBC 和 JDBC 驱动程序,请指定整个主机名。

                                          • 对于所有其他客户端,不要 指定整个主机名。而是使用 privatelink 分段(<account_identifier>.privatelink. Snowflake concatenates this name with snowflakecomputing.cn)指定 账户标识符,以动态构造主机名。

                                          有关为 Snowflake 客户端指定账户名或主机名的更多信息,请参阅各客户端的文档。

                                          将 SSO 与 AWS PrivateLink 配合使用¶

                                          Snowflake 支持将 SSO 与 AWS PrivateLink 配合使用。有关更多信息,请参阅:

                                          • SSO 与专用连接结合使用

                                          • 合作伙伴应用程序

                                          将 Client Redirect 与 AWS PrivateLink 配合使用¶

                                          功能支持的区域

                                          此功能在中华人民共和国不可用。

                                          Snowflake 支持将 Client Redirect 与 AWS PrivateLink 配合使用。

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

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

                                          功能支持的区域

                                          此功能在中华人民共和国不可用。

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

                                          故障排除¶

                                          要解决使用 PrivateLink 时可能出现的问题,请参阅以下 Snowflake 社区文章:

                                          • 如何从 AWS 中为 PrivateLink 自助服务检索联合令牌 (https://community.snowflake.com/s/article/How-to-retrieve-a-Federation-Token-from-AWS-for-PrivateLink-Self-Service)

                                          • FAQ:AWS PrivateLink 自助服务 (https://community.snowflake.com/s/article/PrivateLink-Self-Service-with-AWS)

                                          • 故障排除:适用于 AWS PrivateLink 的 Snowflake 自助函数 (https://community.snowflake.com/s/article/Troubleshooting-Snowflake-self-service-functions-for-AWS-PrivateLink)

                                          此页面是否有帮助?

                                          访问 Snowflake
                                          分享您的反馈
                                          隐私策略服务条款
                                          © 2026 Snowflake 保留所有权利.@北京神州数码云计算有限公司版权所有.
                                          1. AWS PrivateLink:概述
                                          2. 启用 AWS PrivateLink。
                                          3. 配置您的 AWS VPC 环境
                                          4. 连接到 Snowflake
                                          5. 阻止公共访问 – 建议
                                          6. 配置 Snowflake 客户端
                                          7. 将 SSO 与 AWS PrivateLink 配合使用
                                          8. 将 Client Redirect 与 AWS PrivateLink 配合使用
                                          9. 将复制和 Tri-Secret Secure 与专用连接配合使用
                                          10. 故障排除
                                          1. SnowCD
                                          2. 强制执行仅限专用链接的访问权限