Verwalten von Snowflake-Netzwerkrichtlinien mit Python¶
Mit Python können Sie Netzwerkrichtlinien von Snowflake verwalten, mit denen Sie den eingehenden Zugriff auf den Snowflake-Dienst und den internen Stagingbereich kontrollieren können. Weitere Informationen dazu finden Sie unter Steuern des Netzwerkdatenverkehrs mit Netzwerkrichtlinien.
Bemerkung
ALTER NETWORK POLICY wird derzeit nicht unterstützt.
Die Snowflake Python APIs stellt Netzwerkrichtlinien mit zwei verschiedenen Typen dar:
NetworkPolicy
: Zeigt die Eigenschaften einer Netzwerkrichtlinie an, z. B. den Namen, die Netzwerkregeln und die IP-Listen der erlaubten und gesperrten Dateien.NetworkPolicyResource
: Stellt Methoden zur Verfügung, mit denen Sie ein entsprechendesNetworkPolicy
-Objekt abrufen und die Netzwerkrichtlinie ablegen können.
Voraussetzungen¶
Die Beispiele in diesem Thema gehen davon aus, dass Sie Code hinzugefügt haben, um eine Verbindung zu Snowflake herzustellen und ein Root
-Objekt zu erstellen, von dem aus Sie die Snowflake Python APIs verwenden können.
Beispielsweise verwendet der folgende Code Verbindungsparameter, die in einer Konfigurationsdatei definiert sind, um eine Verbindung zu Snowflake zu erstellen:
from snowflake.core import Root
from snowflake.snowpark import Session
session = Session.builder.config("connection_name", "myconnection").create()
root = Root(session)
Unter Verwendung des resultierenden Session
-Objekts erstellt der Code ein Root
-Objekt, das die Typen und Methoden der API verwendet. Weitere Informationen dazu finden Sie unter Verbinden mit Snowflake mit dem Snowflake Python APIs.
Erstellen einer Netzwerkrichtlinie¶
Um eine Netzwerkrichtlinie zu erstellen, legen Sie zunächst ein NetworkPolicy
-Objekt an und erstellen dann ein NetworkPolicyCollection
-Objekt aus dem API Root
-Objekt. Fügen Sie mit NetworkPolicyCollection.create
die neue Netzwerkrichtlinie zu Snowflake hinzu.
Der Code im folgenden Beispiel erstellt ein NetworkPolicy
-Objekt, das eine Netzwerkrichtlinie namens my_network_policy
mit den angegebenen erlaubten und gesperrten Netzwerkregeln und IP-Adressen darstellt:
from snowflake.core.network_policy import NetworkPolicy
my_network_policy = NetworkPolicy(
name = 'my_network_policy',
allowed_network_rule_list = ['allowed_network_rule1','allowed_network_rule2'],
blocked_network_rule_list = ['blocked_network_rule1','blocked_network_rule2'],
allowed_ip_list=['8.8.8.8'],
blocked_ip_list=['192.100.123.0'],
)
root.network_policies.create(my_network_policy)
Details zur Netzwerkrichtlinie abrufen¶
Sie können Informationen über eine Netzwerkrichtlinie erhalten, indem Sie die NetworkPolicyResource.fetch
-Methode aufrufen, die ein NetworkPolicy
-Objekt zurückgibt.
Der Code im folgenden Beispiel ruft Informationen über eine Netzwerkrichtlinie namens my_network_policy
ab:
my_network_policy = root.network_policies["my_network_policy"].fetch()
print(my_network_policy.to_dict())
Auflistung der Netzwerkrichtlinien¶
Sie können Netzwerkrichtlinien mit der NetworkPolicyCollection.iter
-Methode auflisten, die einen PagedIter
-Iterator von NetworkPolicy
-Objekten zurückgibt.
Der Code im folgenden Beispiel listet Netzwerkrichtlinien auf, deren Name mit my
beginnt, und gibt den Namen jeder Richtlinie aus:
network_policy_iter = root.network_policies.iter(like="my%") # returns a PagedIter[NetworkPolicy]
for network_policy_obj in network_policy_iter:
print(network_policy_obj.name)
Löschen einer Netzwerkrichtlinie¶
Sie können eine Netzwerkrichtlinie mit einem NetworkPolicyResource
-Objekt löschen.
Der Code im folgenden Beispiel ruft das my_network_policy
-Ressourcen-Objekt für die Netzwerkrichtlinie ab und löscht dann die Netzwerkrichtlinie.
my_network_policy_res = root.network_policies["my_network_policy"]
my_network_policy_res.drop()