使用 Python 管理 Snowflake 网络策略¶
您可以使用 Python 来管理 Snowflake 网络策略,这些策略可用于控制对 Snowflake 服务和内部暂存区的入站访问。有关更多信息,请参阅 使用网络策略控制网络流量。
备注
ALTER NETWORK POLICY 目前不受支持。
Snowflake Python APIs 使用两种不同类型来表示网络策略:
NetworkPolicy:显示网络策略的属性,例如其名称、网络规则以及允许和阻止的 IP 列表。NetworkPolicyResource:显示可用于提取相应NetworkPolicy对象和删除网络策略的方法。
先决条件¶
在本主题中的示例中,假设您已添加了用来连接 Snowflake 和创建 Root 对象以使用 Snowflake Python APIs 的代码。
例如,以下代码使用配置文件中定义的连接参数来创建与 Snowflake 的连接:
代码可通过生成的 Session 对象创建 Root 对象,从而使用 API 的类型和方法。有关更多信息,请参阅 使用 Snowflake Python APIs 连接到 Snowflake。
创建网络策略¶
要创建网络策略,请先创建一个 NetworkPolicy 对象,然后根据 API Root 对象创建 NetworkPolicyCollection 对象。使用 NetworkPolicyCollection.create,将新的网络策略添加到 Snowflake。
以下示例中的代码会创建一个 NetworkPolicy 对象,该对象表示一项名为 my_network_policy 的网络策略,其中包含指定的允许和阻止的网络规则及 IP 地址:
获取网络策略详细信息¶
您可以通过调用 NetworkPolicyResource.fetch 方法来获取关于网络策略的信息,该方法会返回一个 NetworkPolicy 对象。
以下示例中的代码会获取有关名为 my_network_policy 的网络策略的信息:
列出网络策略¶
您可以使用 NetworkPolicyCollection.iter 方法列出网络策略,该方法会返回 NetworkPolicy 对象的 PagedIter 迭代器。
以下示例中的代码会列出名称中以 my 为开头的网络策略,并打印每个网络策略的名称:
删除网络策略¶
您可以使用 NetworkPolicyResource 对象删除网络策略。
以下示例中的代码会获取 my_network_policy 网络策略资源对象,然后删除网络策略。