CREATE 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>' ]
必填参数¶
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=INGRESS
和TYPE=IPV4
还会保护一个 AWS 内部暂存区。如果
TYPE=AWSVPCEID
,则网络规则仅控制对 Snowflake 服务的访问。
INTERNAL_STAGE
允许或阻止对一个 AWS 内部暂存区的访问,不限制对 Snowflake 服务的访问。使用此模式需要满足以下条件:
账户管理员必须启用 ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES 参数。
网络规则的
TYPE
属性必须是AWSVPCEID
。
EGRESS
允许 Snowflake 向外部目的地发送请求。
默认:
INGRESS
可选参数¶
COMMENT = 'string_literal'
指定网络规则的注释。
默认:无值
访问控制要求¶
权限 |
对象 |
备注 |
---|---|---|
CREATE NETWORK RULE |
架构 |
默认情况下,只有 ACCOUNTADMIN 和 SECURITYADMIN 角色以及架构所有者具有此权限。可以根据需要将该权限授予其他角色。 |
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
指定网络规则的 IP 地址时,Snowflake 支持使用 ` 无类域间路由 (CIDR) 表示法 <https://tools.ietf.org/html/rfc4632 (https://tools.ietf.org/html/rfc4632)>`_ 的 IP 地址范围。
例如,
192.168.1.0/24
表示192.168.1.0
到192.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';
创建一个网络规则,用于允许或阻止从一系列 IP 地址到 Snowflake 服务和内部暂存区的流量:
CREATE NETWORK RULE cloud_network
TYPE = IPV4
VALUE_LIST = ('47.88.25.32/27')
COMMENT ='cloud egress ip range';
创建一个网络规则,用于在 Snowflake 向外部目的地发送请求时允许域和域/端口组合:
CREATE NETWORK RULE external_access_rule
TYPE = HOST_PORT
MODE = EGRESS
VALUE_LIST = ('example.com', 'company.com:443');