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
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 Eigenschaft TYPE 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 und TYPE=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:

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');
Copy

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');
Copy

Der Eigentümer der Netzwerkregel kann auch alle Netzwerk-IDs aus der Regel entfernen:

ALTER NETWORK RULE cloud_network UNSET VALUE_LIST;
Copy

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

CREATE NETWORK RULE für SCHEMA

Erstellt eine neue Netzwerkregel.

ALTER NETWORK RULE

OWNERSHIP für NETWORK RULE

Ändert eine bestehende Netzwerkregel.

DROP NETWORK RULE

OWNERSHIP für NETWORK RULE

Entfernt eine bestehende Netzwerkregel aus dem System.

DESCRIBE NETWORK RULE

OWNERSHIP für NETWORK RULE

Beschreibt die Eigenschaften einer bestehenden Netzwerkregel.

SHOW NETWORK RULES

OWNERSHIP für NETWORK RULE oder USAGE für SCHEMA

Listet alle Netzwerkregeln im System auf.