Snowflake Postgres-Netzworking¶
Standardmäßig stellt Snowflake Postgres jede neue -Instanz innerhalb eines neuen privaten Netzwerks in der von Ihnen ausgewählten Cloudregion bereit. Jedes Netzwerk ist von anderen Netzwerken in derselben Cloudregion getrennt und privat.
Standardmäßig erlauben Snowflake Postgres-Instanzen keine eingehenden Verbindungen. Der Datenverkehr zu/von Ihren Snowflake Postgres-Instanzen kann auf eine der beiden folgenden Arten aktiviert werden:
Fügen Sie eine Netzwerkrichtlinie hinzu, die Postgres-Netzwerkregeln für den Dateneingang und/oder Datenausgang enthält. Diese Option ist für alle Konten verfügbar.
Konfigurieren Sie Private Link-Verbindungen zu/von privaten Netzwerken von Cloudanbietern. Diese Option ist für Business Critical Edition-Konten (oder höher) verfügbar.
Snowflake Postgres Netzwerkrichtlinien und -regeln¶
Netzwerkrichtlinien und Netzwerkregeln für Snowflake Postgres-Instanzen funktionieren ähnlich wie für andere Snowflake-Ressourcen. Die zentralen Unterschiede lauten:
Netzwerkrichtlinien müssen nicht aktiviert werden, damit sie mit Snowflake Postgres-Instanzen genauso verwendet werden können wie bei Snowflake-Konten, -Benutzenden und anderen Sicherheitsintegrationen. Netzwerkrichtlinien für Snowflake Postgres-Instanzen werden stattdessen direkt zum Zeitpunkt der Erstellung der Instanzen an die Instanzen angehängt. Bei bestehenden Instanzen können auch die Netzwerkrichtlinien geändert werden.
Snowflake Postgres-Instanzen verwenden nur die Eigenschaften ALLOWED_NETWORK_RULE_LIST und BLOCKED_NETWORK_RULE_LIST von Netzwerkrichtlinien. Die Eigenschaften BLOCKED_IP_LIST und ALLOWED_IP_LIST werden ignoriert.
Netzwerkregeln für Snowflake Postgres-Instanzen sollten entweder den Modus „Postgres Ingress“ oder „Postgres Egress“ verwenden. Regeln, die diese Modi verwenden, sind derzeit auf den Typ IPv4 beschränkt.
Netzwerkregeln, die in einer Netzwerkrichtlinie andere Modi als „Postgres Ingress“ oder „Postgres Egress“ verwenden, werden von Snowflake Postgres-Instanzen ignoriert, die diese Regeln verwenden.
Berechtigungen¶
Um neue Netzwerkrichtlinien zu erstellen, müssen Snowflake-Benutzer über die Berechtigung CREATE NETWORK POLICY ON ACCOUNT verfügen.
Um neue Netzwerkregeln erstellen zu können, müssen Snowflake-Benutzer über die Berechtigung CREATE NETWORK RULE ON SCHEMA verfügen.
Um eine bestehende Netzwerkrichtlinie an eine Snowflake-Instanz anzuhängen, müssen Snowflake-Benutzer Eigentümer der Netzwerkrichtlinie sein oder vom Eigentümer der Richtlinie die Berechtigung GRANT zur Nutzung erhalten haben.
Beispiel für Snowflake Postgres-Netzwerkrichtlinien und -regeln¶
Nehmen wir Folgendes an:
Sie möchten den eingehenden Datenverkehr zu einer neuen Postgres-Instanz aus Ihrem Unternehmen zulassen, und die öffentliche IP-Adresse Ihres Geschäftsnetzwerk-Routers ist
23.206.171.35.Sie möchten auch ausgehenden Datenverkehr von der neuen Postgres-Instanz zu Ihrem Postgres-Server über eine Postgres Foreign Data Wrapper-Verbindung zulassen.
Dafür erstellen wir eine neue Richtlinie, die sowohl eine Postgres Ingress-Netzwerkregel als auch eine Postgres Egress-Netzwerkregel enthält.
Erstellen Sie zwei neue Netzwerkregeln. Verwenden Sie
23.206.171.35/32als einzigen Netzwerkbezeichner für beide, und verwenden Sie „Postgres Ingress“ als Mode für einen und „Postgres Egress“ als Mode für den anderen.Erstellen Sie eine neue Netzwerkrichtlinie, bei der beide neuen Regeln in der Allowed-Liste enthalten sind.
Wählen Sie im Navigationsmenü die Option Postgres aus.
Wählen Sie + Create aus.
Wenn Sie die gewünschten Details für die Konfiguration der Instanz auswählen, stellen Sie sicher, dass Sie im Auswahlfeld Network policy Ihre neue Richtlinie auswählen. In der Abbildung unten haben wir die Richtlinie
OFFICE POLICY EXAMPLEausgewählt.
-- Create the ingress rule
CREATE NETWORK RULE PG_INGRESS_FROM_OFFICE
TYPE = IPV4
VALUE_LIST = ('23.206.171.35/32')
MODE = POSTGRES_INGRESS;
-- Create the egress rule
CREATE NETWORK RULE PG_EGRESS_TO_OFFICE
TYPE = IPV4
VALUE_LIST = ('23.206.171.35/32')
MODE = POSTGRES_EGRESS;
-- Create a new policy using both rules in its allowed list
CREATE NETWORK POLICY "OFFICE POLICY EXAMPLE"
ALLOWED_NETWORK_RULE_LIST = ('PG_INGRESS_FROM_OFFICE', 'PG_EGRESS_TO_OFFICE')
COMMENT = 'Traffic to/from the office.';
-- Create a new Snowflake Postgres instance that uses the new policy
CREATE POSTGRES INSTANCE SNOWFLAKE_POSTGRES_DEMO
COMPUTE_FAMILY = 'STANDARD_L'
STORAGE_SIZE_GB = 50
AUTHENTICATION_AUTHORITY = POSTGRES
POSTGRES_VERSION = 17
NETWORK_POLICY = '"OFFICE POLICY EXAMPLE"';
Erstellen von Dateneingangsregeln zum Zeitpunkt der Instanzerstellung¶
Anstatt Ihre Netzwerkrichtlinie und Regeln zu erstellen, bevor Sie Ihre Snowflake Postgres-Instanz erstellen, können Sie eine Richtlinie mit Postgres-Dateneingangsregeln erstellen, wenn Sie Snowflake-Postgres-Instanzen über Snowsight erstellen.
Wählen Sie im Navigationsmenü die Option Postgres aus.
Wählen Sie auf der Seite Postgres Instances die Schaltfläche Create oben rechts aus.
Wählen Sie Ihre Instanzkonfiguration aus, aber wählen Sie im Bereich Network policy nichts aus.
Nachdem Sie Create ausgewählt haben, werden in einem neuen Dialogfeld die Anmeldeinformationen für die Verbindung des
snowflake_admin` Postgres-Benutzers </user-guide/snowflake-postgres/connecting-to-snowflakepg> angezeigt. Nachdem Sie diese Anmeldeinformationen an einem sicheren Ort gespeichert haben, wählen Sie Continue to network settings aus.Geben Sie im Dialogfeld Network Settings (unten dargestellt) die IP-Adresse und/oder CIDR-Werte ein, für die Sie Postgres-Dateneingangsregeln erstellen möchten, und drücken Sie die Eingabetaste, um jeden einzelnen zur Liste hinzuzufügen.
Erweitern Sie den Abschnitt Details, um Ihre neuen Netzwerkregel- und/oder Richtliniennamen bei Bedarf zu bearbeiten.
Wählen Sie Save aus, um Ihre neue Postgres-Eingangsdaten-Netzwerkrichtlinie zu erstellen und sie automatisch an Ihre Instanz anhängen zu lassen, sobald sie aktiv ist.
Snowflake Postgres Private Link¶
Private Link für Snowflake Postgres-Instanzen ist für Konten der Business Critical Edition und höher verfügbar.
Um Private Link für eine Snowflake Postgres-Instanz zu aktivieren, folgen Sie zunächst den Anweisungen zur Aktivierung von Private Link zwischen Ihrem Cloudanbieter-Konto und Ihrem Snowflake-Konto:
Berechtigungen¶
Um Private Link für Snowflake Postgres-Instanzen zu aktivieren, müssen Snowflake-Benutzer über die folgenden Berechtigungen verfügen
MANAGE POSTGRES PRIVATE CONNECTIVITY ON ACCOUNT
OWNERSHIP oder MANAGE für jede gegebene Snowflake Postgres-Instanz
Einrichten von Private Link für Snowflake Postgres-Instanzen¶
Sobald Sie Private Link zwischen Ihrem Cloudanbieter und Snowflake-Konten aktiviert und die erforderlichen Berechtigungen bereitgestellt haben, können Sie Private Link für Snowflake Postgres-Instanzen für einzelne Instanzen wie folgt aktivieren.
Wenn Sie nicht beabsichtigen, zusätzlich zu Ihrer Private Link-Verbindung weitere Netzwerkrichtlinienregeln für Ihre Instanz einzurichten, wählen Sie „Private Link“ für die Network Security option im Dialogfeld New instance aus. Wenn Sie eine Netzwerkrichtlinie einrichten oder verwenden möchten, wählen Sie stattdessen Network policy aus und folgen Sie den vorherigen Anweisungen zu Netzwerkrichtlinien.
Sobald eine Instanz aktiv ist, können Sie Private Link dafür aktivieren:
Wählen Sie im Navigationsmenü die Option Postgres und dann Ihre Instanz aus.
Wählen Sie im Bereich Instance details der Instanz das Bearbeitungssymbol im Abschnitt Private Link aus.
Es wird ein Bestätigungsdialogfeld angezeigt, in dem Sie aufgefordert werden, die Einrichtung von Private Link für Ihren Clouddienstanbieter zu bestätigen. Wählen Sie Enable aus. Beachten Sie, dass dieser Schritt bis zu 10 Minuten dauern kann.
Sobald Private Link für Ihre Snowflake Postgres-Instanz aktiv ist, können Sie neue Private Link-Verbindungen dafür einrichten:
Wählen Sie im Navigationsmenü die Option Postgres und anschließend Ihre Instanz aus, um die zugehörige Detailseite anzuzeigen.
Wählen Sie im Abschnitt Private Link das Bearbeitungssymbol rechts aus, um den Bereich „Private Link“ anzuzeigen (siehe unten).
Verwenden Sie die angezeigte Service address, um eine Private Link-Verbindungsanforderung vom privaten Netzwerk Ihres Cloudanbieterkontos zu stellen.
Aktualisieren Sie die Detailseite Ihrer Snowflake Postgres-Instanz. Der Private Link-Bereich hat jetzt einen neuen Verbindungseintrag für Ihre Anforderung, wobei weder check mark (akzeptieren) noch x mark (ablehnen) aktiviert ist. Aktivieren Sie check mark, um die Verbindung zu akzeptieren.
Sie können keine Verbindung zu Ihrer Snowflake Postgres-Instanz von Hosts im privaten Netzwerk des Clouddienstanbieter aus herstellen.
Sie können Private Link für eine aktive Instanz mit Snowflake SQL wie folgt aktivieren:
ALTER POSTGRES INSTANCE <name> ENABLE PRIVATELINK;
Dieser asynchrone Vorgang kann bis zu 10 Minuten dauern. Um den Status zu verfolgen, überprüfen Sie den Wert von privatelink_service_identifier, der von DESCRIBE POSTGRES INSTANCE zurückgegeben wird:
DESCRIBE POSTGRES INSTANCE <name>;
Derselbe privatelink_service_identifier wird für den Instanzen-Eintrag in der Ausgabe von SHOW POSTGRES INSTANCES angezeigt:
SHOW POSTGRES INSTANCES;
Wenn die Spalte privatelink_service_identifier einen anderen Wert als NULL anzeigt, können Sie diesen Bezeichner verwenden, um eine Private Link-Verbindungsanforderung von dem privaten Netzwerk Ihres Clouddienstanbieter-Kontos zu stellen, das Sie für Private Link-Verbindungen zu Ihrem Snowflake-Konto aktiviert haben.
Nachdem Sie diese Verbindungsanforderung vom privaten Netzwerk Ihres Cloudanbieterkontos aus gestellt haben, suchen Sie die Anforderung für die Snowflake Postgres-Instanz:
SHOW PRIVATELINK CONNECTIONS IN POSTGRES INSTANCE <name>;
Dieser Befehl gibt die folgenden Spalten zurück:
endpointconnection_idstatus
Ihre Verbindungsanforderung wird ein Eintrag mit dem endpoint-Wert des Private Links für das private Netzwerk Ihres Cloudanbieters zusammen mit dem status-Wert pending sein.
Sie können eine oder mehrere ausstehende Private Link-Verbindungsanfragen annehmen, indem Sie einen ALTER POSTGRES INSTANCE-Befehl ausführen:
ALTER POSTGRES INSTANCE [IF EXISTS] <name> AUTHORIZE PRIVATELINK CONNECTIONS = ('<connection_id' [ , ... ]);
Sie können eine oder mehrere ausstehende oder bereits genehmigte Private Link-Verbindungsanfragen widerrufen, indem Sie folgenden Befehl ausführen:
ALTER POSTGRES INSTANCE [IF EXISTS] <name> REVOKE PRIVATELINK CONNECTIONS = ('<connection_id' [ , ... ]);