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 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.

Die folgenden Features verwenden Netzwerkregeln zur Steuerung des Netzwerkdatenverkehrs:

  • Netzwerkrichtlinien verwenden Netzwerkregeln, um den eingehenden Netzwerkdatenverkehr zum Snowflake-Dienst und zu internen Stagingbereichen zu steuern.

  • Externer Netzwerkzugriff verwendet Netzwerkregeln, um den Zugriff auf externe Netzwerkstandorte von einer Snowflake-UDF oder -Prozedur aus einzuschränken.

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 Portbereichs.

In den meisten Fällen ist der gültige Port-Bereich 1–65.535. Wenn Sie keinen Port angeben, wird dieser standardmäßig auf 443 gesetzt. Wenn ein externer Netzwerkstandort dynamische Ports unterstützt, müssen Sie alle möglichen Ports angeben.

Um den Zugriff auf alle Ports zu erlauben, definieren Sie den Port als 0, z. B. example.com:0.

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

Sie benötigen die Berechtigung CREATE NETWORK RULE für das Schema, um eine Netzwerkregel erstellen zu können. Standardmäßig verfügen nur die Rollen ACCOUNTADMIN und SECURITYADMIN sowie der Schemaeigentümer über diese Berechtigung.

Sie können eine Netzwerkregel über Snowsight oder durch Ausführen eines SQL-Befehls erstellen:

Snowsight:
  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Governance & security » Network policies und dann die Registerkarte Network Rules aus.

  3. Wählen Sie + Network Rule aus.

  4. Geben Sie den Name der Netzwerkregel ein.

  5. Wählen Sie das Schema der Netzwerkregel aus. Netzwerkregeln sind Objekte auf Schemaebene.

  6. Fügen Sie optional einen beschreibenden Kommentar für die Netzwerkregel hinzu, um die Verwaltung der Netzwerkregeln im Schema zu erleichtern.

  7. Wählen Sie in der Dropdown-Liste Type den Typ der Netzwerk-ID aus, der in der Netzwerkregel definiert ist.

  8. Wählen Sie in der Dropdown-Liste Mode den Modus der Netzwerkregel aus. Die Modi INGRESS und INTERNAL STAGE zeigen an, dass die Netzwerkregel mit einer Netzwerkrichtlinie verwendet wird, um eingehende Anfragen zu beschränken, und der Modus EGRESS zeigt an, dass die Netzwerkregel mit einer externen Zugangsintegration verwendet wird, um ausgehende Anforderungen zu beschränken.

  9. Geben Sie eine durch Kommas getrennte Liste der Netzwerk-IDs ein, die zugelassen oder blockiert werden sollen, wenn die Netzwerkregel einer Netzwerkrichtlinie hinzugefügt wird. Die Netzwerk-IDs in dieser Liste müssen alle von dem Typ sein, der in der Dropdown-Liste Type angegeben ist.

  10. Wählen Sie Create Network Rule aus.

SQL:

Ein Administrator kann den Befehl CREATE NETWORK RULE ausführen, um eine neue Netzwerkregel zu erstellen, und dabei eine Liste von Netzwerk-IDs und dazu den Typ dieser IDs angeben.

So können Sie beispielsweise eine kundenspezifische Rolle verwenden, um eine Netzwerkregel zu erstellen, mit der Sie den Datenverkehr von einem Bereich von IP-Adressen zulassen oder blockieren können:

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 TYPE = IPV4 MODE = INGRESS 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.

Identifizieren von Netzwerkregeln in Ihrem Konto

Sie können die Netzwerkregeln in Ihrem Konto über Snowsight oder mit SQL identifizieren.

Snowsight:
  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Governance & security » Network policies und dann die Registerkarte Network Rules aus.

SQL:

Rufen Sie die Information Schema-Tabellenfunktion NETWORK_RULE_REFERENCES auf, oder fragen Sie die Account Usage-Ansicht NETWORK_RULES oder NETWORK_RULE_REFERENCES ab.

Ändern einer Netzwerkregel

Sie können die Netzwerk-IDs und den Kommentar einer vorhandenen Netzwerkregel ändern, nicht aber deren Typ, Modus, Name oder Schema.

Führen Sie einen der folgenden Schritte aus, um Bezeichner und Kommentare aus einer vorhandenen Netzwerkregel über Snowsight oder mit SQL hinzuzufügen oder zu entfernen:

Snowsight:
  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Governance & security » Network policies und dann die Registerkarte Network Rules aus.

  3. Suchen Sie die Netzwerkregel, wählen Sie die Schaltfläche und dann die Option Edit aus.

  4. Ändern Sie die durch Kommas getrennte Liste der Netzwerk-IDs oder den Kommentar.

  5. Wählen Sie Update Network Rule aus.

SQL:

Führen Sie eine ALTER NETWORK RULE-Anweisung aus.

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.

Von Snowflake verwaltete Netzwerkregeln

Snowflake stellt das Schema SNOWFLAKE.NETWORK_SECURITY bereit, das eine Reihe von integrierten Netzwerkregeln enthält. Integrierte Netzwerkregeln sind eine Art von Snowflake-verwalteten Netzwerkregeln. Snowflake kann das Schema NETWORK_SECURITY mit neuen, von Snowflake verwalteten Netzwerkregeln aktualisieren. Integrierte Netzwerkregeln bieten eine sichere, konsistente, schnelle und wartungsfreundlichen Möglichkeit, die Netzwerksicherheit zu verwalten.

Die von Snowflake verwalteten Netzwerkregeln sind auf die benutzerfreundlichen Netzwerkrichtlinien- und Regelverwaltungsfeatures von Snowflake abgestimmt. Snowflake-Kunden können von Snowflake verwaltete Regeln zu neuen oder bestehenden Netzwerkrichtlinien hinzufügen. Snowflake aktualisiert kontinuierlich die integrierten Netzwerkregeln, ohne dass eine regelmäßige Wartung durch Kontoadministrationsteams erforderlich ist. Weitere Informationen zum Hinzufügen einer Netzwerkregel zu einer Netzwerkrichtlinie finden Sie unter Netzwerkrichtlinie ändern.

Integrierte Netzwerkregeln definieren die Menge der zulässigen IP-Adressen, die eine häufig verwendete Partneranwendung eines Drittanbieters verwendet, um eine Verbindung zu Snowflake herzustellen. Snowflake aktualisiert diese Regeln automatisch, um alle Änderungen zu erfassen, die Drittanbieter an ihren IP-Adressen für ausgehenden Datenverkehr vornehmen. Snowflake verwaltet zum Beispiel eine Regel, die die IP-Adressen definiert, die eine Microsoft Power-BI-Anwendung verwendet, um eine Verbindung zu Snowflake herzustellen. Wenn Microsoft diese Adressen aktualisiert, werden die Snowflake-Regeln automatisch aktualisiert, um diese Änderung widerzuspiegeln.

Die folgende Tabelle listet die aktuellen Partneranwendungen auf, für die Snowflake integrierte Netzwerkregeln und Informationen zu den aktuellen IP-Adressen für den ausgehenden Datenverkehr für jede Partneranwendung verwaltet:

SaaS-Anwendungen

IP-Adressen für ausgehenden Datenverkehr

dbt-Plattform

dbt-Plattform-IP-Adressen

Microsoft Power BI

Power BI-IP-Bereiche

Qlik

Qlik-IP-Adressen

Tableau

Tableau Cloud-IP-Bereiche

GitHub Actions

REST-API-Endpunkte für Metadaten

Arbeiten mit von Snowflake verwalteten Netzwerkregeln

Um die aktuelle Liste der von Snowflake verwalteten Netzwerkregeln anzuzeigen, führen Sie den Befehl SHOW NETWORK RULES aus, um die Netzwerkregeln im Schema SNOWFLAKE.NETWORK_SECURITY aufzulisten:

SHOW NETWORK RULES IN SNOWFLAKE.NETWORK_SECURITY;
Copy

Bemerkung

Der SHOW-Befehl stellt nicht explizit IP-Adressen zur Verfügung, sondern nur die Anzahl der IP-Adressen pro Regel.

Um Ihre von Snowflake verwalteten Regeln einschließlich der IP-Adressen anzuzeigen, fragen Sie die Ansicht NETWORK_RULES ab und filtern Sie nach Zeilen, wobei die Datenbank SNOWFLAKE und das Schema NETWORK_SECURITY ist:

SELECT *
  FROM SNOWFLAKE.ACCOUNT_USAGE.NETWORK_RULES
  WHERE DATABASE = 'SNOWFLAKE' AND SCHEMA = 'NETWORK_SECURITY';
Copy

Das folgende Beispiel zeigt, wie Sie eine Netzwerkrichtlinie erstellen oder ersetzen, die auf eine integrierte Netzwerkregel verweist:

CREATE OR REPLACE NETWORK POLICY example_network_policy ALLOWED_NETWORK_RULE_LIST = (
  'SNOWFLAKE.NETWORK_SECURITY.DBT_APAC_AWS',
  'SNOWFLAKE.NETWORK_SECURITY.DBT_EMEA_AWS'
);
Copy

Das folgende Beispiel zeigt, wie Sie unter Verwendung der Syntax ALTER NETWORK POLICY eine integrierte Netzwerkregel zu einer bestehenden Netzwerkrichtlinie hinzufügen:

ALTER NETWORK POLICY example_network_policy ADD ALLOWED_NETWORK_RULE_LIST = (
  'SNOWFLAKE.NETWORK_SECURITY.DBT_APAC_AWS'
);
Copy

Von Snowflake verwaltete Netzwerkregeln für ausgehenden Datenverkehr

Snowflake bietet die folgende vordefinierte, von Snowflake verwaltete Netzwerkregel für ausgehenden Datenverkehr:

SNOWFLAKE.EXTERNAL_ACCESS.PYPI_RULE

Sie können eine EGRESS-Netzwerkregel mit einer Integration für den externen Zugriff verwenden, um eine Verbindung von Snowflake zu Python Package Index (PyPI) herzustellen. Möglicherweise möchten Sie beispielsweise die Netzwerkregel verwenden, um Notebook-Benutzenden auf Container Runtime die Installation von pip-Paketen mit dem Befehl pip install zu ermöglichen.

Ein Beispiel für die Verwendung dieser Netzwerkregel finden Sie unter Zugriff auf PyPI zur Installation von Paketen in Snowpark Container.

Nur Benutzende mit der ACCOUNTADMIN-Rollen haben Zugriff auf die SNOWFLAKE.EXTERNAL_ACCESS.PYPI_RULE.