Netzwerkregeln¶
Netzwerkregeln sind Objekte auf Schemaebene, die Netzwerk-IDs zu logischen Einheiten gruppieren.
Snowflake-Funktionen, die den Netzwerkdatenverkehr einschränken, können auf Netzwerkregeln verweisen, anstatt Netzwerk-IDs direkt im Feature zu definieren. Eine Netzwerkrichtlinie kann beispielsweise auf eine Netzwerkregel verweisen, die IP-Adressen enthält, um den Zugriff auf den Snowflake-Dienst und auf interne Stagingbereiche auf Grundlage dieser Adressen zu steuern. Sie können auch eine Netzwerkregel verwenden, wenn Sie von einer UDF oder einer Prozedur aus auf einen externen Netzwerkstandort zugreifen.
Eine Netzwerkregel definiert nicht, ob ihre IDs zugelassen oder blockiert werden sollen. Das Snowflake-Feature, das die Netzwerkregel verwendet, gibt an, ob die IDs in der Netzwerkregel zulässig oder verboten sind.
Unterstützte Netzwerk-IDs¶
Administratoren müssen in der Lage sein, den Zugriff anhand der Netzwerk-ID zu beschränken, die mit dem Ursprung oder dem Ziel einer Anforderung verbunden ist. Mithilfe der Netzwerkregeln können Administratoren die folgenden Netzwerk-IDs zulassen oder blockieren:
- Eingehende Anforderungen
IPv4-Adressen
VPCE-IDs von AWS VPC-Endpunkten. VPC-IDs werden nicht unterstützt.
LinkIDs von privaten Azure-Endpunkten. Führen Sie die Funktion SYSTEM$GET_PRIVATELINK_AUTHORIZED_ENDPOINTS aus, um die mit einem Konto verbundene LinkID abzurufen.
- Ausgehende Anforderungen
Domänen, einschließlich eines optionalen Portbereichs
Jede Netzwerkregel enthält eine Liste von einer oder mehreren Netzwerk-IDs desselben Typs. Die Eigenschaft TYPE
der Netzwerkregel gibt den Typ der Identifikatoren an, die in der Regel enthalten sind. Wenn die Eigenschaft TYPE
beispielsweise IPV4
ist, muss die Werteliste der Netzwerkregel gültige IPv4-Adressen oder -Adressbereiche in CIDR-Notation enthalten.
Eingehende vs. ausgehende Anforderungen¶
Der Modus einer Netzwerkregel gibt an, ob das Snowflake-Feature, das die Regel verwendet, eingehende oder ausgehende Anforderungen einschränkt.
Eingehende Anforderungen¶
Netzwerkrichtlinien schützen den Snowflake-Dienst und die internen Stagingbereiche vor eingehendem Datenverkehr. Wenn eine Netzwerkregel mit einer Netzwerkrichtlinie verwendet wird, kann der Administrator den Modus auf einen der folgenden Werte einstellen:
INGRESS
Das Verhalten im Modus
INGRESS
hängt vom Wert der EigenschaftTYPE
der Netzwerkregel ab.Bei
TYPE=IPV4
kontrolliert die Netzwerkregel standardmäßig nur den Zugriff auf den Snowflake-Dienst.Wenn der Kontoadministrator den Parameter ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES aktiviert, dann schützen
MODE=INGRESS
undTYPE=IPV4
auch einen internen AWS-Stagingbereich.Bei
TYPE=AWSVPCEID
kontrolliert die Netzwerkregel nur den Zugriff auf den Snowflake-Dienst.Wenn Sie den Zugriff auf den internen AWS-Stagingbereich auf Grundlage der VPCE-ID eines Schnittstellenendpunkts beschränken möchten, müssen Sie eine separate Netzwerkregel mit dem Modus
INTERNAL_STAGE
erstellen.
INTERNAL_STAGE
Steuert den Zugriff auf einen internen AWS-Stagingbereich, ohne den Zugriff auf den Snowflake-Dienst zu beschränken. Die Verwendung dieses Modus erfordert Folgendes:
Der Kontoadministrator muss den Parameter ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES aktivieren.
Die Eigenschaft
TYPE
der Netzwerkregel mussAWSVPCEID
sein.
Für Konten auf Microsoft Azure können Sie keine Netzwerkregel verwenden, um den Zugriff auf den internen Stagingbereich einzuschränken. Sie können jedoch den gesamten öffentlichen Netzwerkdatenverkehr blockieren, um den Zugriff auf den internen Stagingbereich zu verhindern.
Ausgehende Anforderungen¶
Administratoren können Netzwerkregeln mit Features verwenden, die steuern, wohin Anforderungen gesendet werden können. In diesen Fällen definiert der Administrator die Netzwerkregel mit dem folgenden Modus:
EGRESS
Zeigt an, dass die Netzwerkregel für Datenverkehr verwendet wird, der von Snowflake gesendet wird.
Wird derzeit mit externem Netzwerkzugriff verwendet, der es einer UDF oder Prozedur ermöglicht, Anfragen an einen externen Netzwerkstandort zu senden.
Erstellen einer Netzwerkregel¶
Ein Administrator führt den Befehl CREATE NETWORK RULE aus, um eine neue Netzwerkregel zu erstellen, und gibt dabei eine Liste von Netzwerk-IDs und dazu den Typ dieser IDs an.
Der Administrator verwendet den Parameter MODE
um anzugeben, ob die Netzwerkregel zur Beschränkung eingehender oder ausgehender Anforderungen verwendet wird. Wenn der Administrator den Parameter MODE
nicht angibt, wird dieser standardmäßig auf INGRESS
gesetzt, was bedeutet, dass die Netzwerkregel von den Netzwerkrichtlinien verwendet wird, um den eingehenden Netzwerkdatenverkehr auf den Snowflake-Dienst zu beschränken.
Beim Erstellen einer Netzwerkregel wird nicht festgelegt, ob diese die Netzwerk-ID zulässt oder blockiert. Administratoren legen diese Einschränkungen bei der Konfiguration des Snowflake-Features fest, das die Netzwerkregel verwendet.
Beispiel: Netzwerkregel für Netzwerkrichtlinie
Der Code im folgenden Beispiel verwendet eine kundenspezifische Rolle, um eine Netzwerkregel zu erstellen, die verwendet werden kann, um Datenverkehr von einem bestimmten Bereich von IP-Adressen zum Snowflake-Dienst zuzulassen oder zu blockieren:
CREATE ROLE network_admin;
GRANT USAGE ON DATABASE securitydb TO ROLE network_admin;
GRANT USAGE ON SCHEMA securitydb.myrules TO ROLE network_admin;
GRANT CREATE NETWORK RULE ON SCHEMA securitydb.myrules TO ROLE network_admin;
USE ROLE network_admin;
CREATE NETWORK RULE cloud_network
MODE = INGRESS
TYPE = IPV4
VALUE_LIST = ('47.88.25.32/27');
IPv4-Adressen¶
Bei der Angabe von IP-Adressen für eine Netzwerkregel unterstützt Snowflake Bereiche von IP-Adressen unter Verwendung der Classless Inter-Domain Routing (CIDR)-Notation.
So stellt beispielsweise 192.168.1.0/24
alle IPv4-Adressen im Bereich 192.168.1.0
bis 192.168.1.255
dar.
Ändern einer Netzwerkregel¶
Der Eigentümer einer Netzwerkregel kann den Befehl ALTER NETWORK RULE ausführen, um die Netzwerk-IDs und den Kommentar der Regel zu ersetzen. Sie können keine einzelnen Netzwerk-IDs zur Netzwerkregel hinzufügen oder entfernen. Vorhandene IDs gehen beim Hinzufügen neuer Werte verloren.
Die Werte von TYPE
und MODE
der Netzwerkregel können nicht geändert werden.
Beispielsweise kann der Eigentümer einer Netzwerkregel diese so ändern, dass sie zum Zulassen oder Blockieren von Datenverkehr aus einem neuen Bereich von IPv4-Adressen verwendet werden kann:
ALTER NETWORK RULE cloud_network SET VALUE_LIST = ('47.88.25.32/27');
Der Eigentümer der Netzwerkregel kann auch alle Netzwerk-IDs aus der Regel entfernen:
ALTER NETWORK RULE cloud_network UNSET VALUE_LIST;
Replikation von Netzwerkregeln¶
Netzwerkregeln sind Objekte auf Schemaebene und werden mit der Datenbank, in der sie enthalten sind, repliziert.
Weitere Informationen zur Replikation von Netzwerkrichtlinien, die Netzwerkregeln verwenden, finden Sie unter Replizieren von Netzwerkrichtlinien.
Berechtigungen und Befehle¶
Befehl |
Berechtigung |
Beschreibung |
---|---|---|
CREATE NETWORK RULE für SCHEMA |
Erstellt eine neue Netzwerkregel. |
|
OWNERSHIP für NETWORK RULE |
Ändert eine bestehende Netzwerkregel. |
|
OWNERSHIP für NETWORK RULE |
Entfernt eine bestehende Netzwerkregel aus dem System. |
|
OWNERSHIP für NETWORK RULE |
Beschreibt die Eigenschaften einer bestehenden Netzwerkregel. |
|
OWNERSHIP für NETWORK RULE oder USAGE für SCHEMA |
Listet alle Netzwerkregeln im System auf. |