CREATE NETWORK RULE

创建网络规则或替换现有网络规则。

另请参阅:

ALTER NETWORK RULEDROP NETWORK RULESHOW NETWORK RULESDESCRIBE NETWORK RULE

语法

CREATE [ OR REPLACE ] NETWORK RULE <name>
   TYPE = { IPV4 | AWSVPCEID | AZURELINKID | HOST_PORT }
   VALUE_LIST = ( '<value>' [, '<value>', ... ] )
   MODE = { INGRESS | INTERNAL_STAGE | EGRESS }
   [ COMMENT = '<string_literal>' ]
Copy

必填参数

name

网络规则的标识符。

标识符值必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如 "My object")。放在双引号内的标识符区分大小写。

有关更多详细信息,请参阅 标识符要求

TYPE = { IPV4 | AWSVPCEID | AZURELINKID | HOST_PORT }

指定允许或阻止的网络标识符的类型。网络规则只能有一种类型。

  • IPV4 表示网络规则将根据请求源的 IPv4 地址允许或阻止网络流量。

  • AWSVPCEID 表示网络规则将允许或阻止通过 ` AWS PrivateLink <https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html (https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html)>`_ 的网络流量。

  • AZURELINKID 指示网络规则将允许或阻止通过 ` Azure 专用链接 <https://learn.microsoft.com/en-us/azure/private-link/private-link-overview (https://learn.microsoft.com/en-us/azure/private-link/private-link-overview)>`_ 的网络流量。

  • HOST_PORT 表示网络规则将允许基于请求目的地的传出网络流量。

    TYPE = HOST_PORT 时,MODE 参数应设置为 EGRESS

VALUE_LIST = ( 'value' [, 'value', ... ] )

指定将允许或阻止的网络标识符。

列表中的有效值由网络规则的类型确定:

  • TYPE = IPV4 时,每个值必须是有效的 IPv4 地址或 地址范围

  • TYPE = AWSVPCEID 时,每个值必须是 ` AWS S3 端点 <https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html (https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html)>`_ 的有效 VPCE ID。VPC IDs 不受支持。

  • TYPE = AZURELINKID 时,每个值必须是 Azure Private Endpoint (https://learn.microsoft.com/en-us/azure/private-link/private-endpoint-overview) 的有效 LinkID。执行 SYSTEM$GET_PRIVATELINK_AUTHORIZED_ENDPOINTS 函数来检索与账户关联的 LinkID。

  • TYPE = HOST_PORT 时,每个值都必须是有效的域。或者,它还可以包括一个端口或一系列端口。

    有效端口范围为 1-65535。如果未指定端口,则默认为 443。如果外部网络位置支持动态端口,则需要指定所有可能的端口。

    要允许访问所有端口,请将端口定义为 0。例如 company.com:0

MODE = { INGRESS | INTERNAL_STAGE | EGRESS }

指定网络规则限制的内容。

INGRESS

INGRESS 模式的行为取决于网络规则的 TYPE 属性的值。

  • 如果 TYPE=IPV4,默认情况下,网络规则仅控制对 Snowflake 服务的访问。

    如果账户管理员启用 ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES 参数,则 MODE=INGRESSTYPE=IPV4 还会保护一个 AWS 内部暂存区。

  • 如果 TYPE=AWSVPCEID,则网络规则仅控制对 Snowflake 服务的访问。

INTERNAL_STAGE

允许或阻止对一个 AWS 内部暂存区的访问,不限制对 Snowflake 服务的访问。使用此模式需要满足以下条件:

EGRESS

允许 Snowflake 向外部目的地发送请求。

默认:INGRESS

可选参数

COMMENT = 'string_literal'

指定网络规则的注释。

默认:无值

访问控制要求

用于执行此 SQL 命令的 角色 必须至少具有以下 权限

权限

对象

备注

CREATE NETWORK RULE

架构

默认情况下,只有 ACCOUNTADMIN 和 SECURITYADMIN 角色以及架构所有者具有此权限。可以根据需要将该权限授予其他角色。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

使用说明

  • 指定网络规则的 IP 地址时,Snowflake 支持使用 ` 无类域间路由 (CIDR) 表示法 <https://tools.ietf.org/html/rfc4632 (https://tools.ietf.org/html/rfc4632)>`_ 的 IP 地址范围。

    例如,192.168.1.0/24 表示 192.168.1.0192.168.1.255 范围内的所有 IPv4 地址。

  • 关于元数据:

    注意

    客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段

示例

创建一个网络规则,用于允许或阻止从 AWS S3 端点到内部暂存区的流量:

CREATE NETWORK RULE corporate_network
  TYPE = AWSVPCEID
  VALUE_LIST = ('vpce-123abc3420c1931')
  MODE = INTERNAL_STAGE
  COMMENT = 'corporate privatelink endpoint';
Copy

创建一个网络规则,用于允许或阻止从一系列 IP 地址到 Snowflake 服务和内部暂存区的流量:

CREATE NETWORK RULE cloud_network
  TYPE = IPV4
  VALUE_LIST = ('47.88.25.32/27')
  COMMENT ='cloud egress ip range';
Copy

创建一个网络规则,用于在 Snowflake 向外部目的地发送请求时允许域和域/端口组合:

CREATE NETWORK RULE external_access_rule
  TYPE = HOST_PORT
  MODE = EGRESS
  VALUE_LIST = ('example.com', 'company.com:443');
Copy
语言: 中文