AWS VPC-Schnittstellenendpunkte für interne Stagingbereiche

Unter diesem Thema werden Konzepte und detaillierte Anweisungen für die Verbindung zu internen Snowflake-Stagingbereichen über private AWS VPC-Schnittstellenendpunkte bereitgestellt.

Unter diesem Thema:

Übersicht

AWS VPC-Schnittstellenendpunkte und AWS PrivateLink für Amazon S3 können kombiniert werden, um eine sichere Konnektivität zu internen Snowflake-Stagingbereichen bereitzustellen. Diese Einrichtung stellt sicher, dass die Operationen zum Laden von Daten in interne Snowflake-Stagingbereiche und das Entladen von Daten aus internen Snowflake-Stagingbereichen das interne AWS-Netzwerk verwenden und nicht über das öffentliche Internet erfolgen.

Bevor AWS VPC-Schnittstellenendpunkte für den Zugriff auf interne Stagingbereiche unterstützt wurden, war es notwendig, eine Proxy-Farm innerhalb der AWS VPC zu erstellen, um den sicheren Zugriff auf interne Snowflake-Stagingbereich zu ermöglichen. Mit der zusätzlichen Unterstützung von VPC-Schnittstellenendpunkten für interne Snowflake-Stagingbereiche können Benutzer und Clientanwendungen jetzt über das private AWS-Netzwerk auf interne Snowflake-Stagingbereiche zugreifen. Die folgende Abbildung fasst diese neue Funktion zusammen:

Connect to internal stage using AWS PrivateLink for S3

Beachten Sie Folgendes in Bezug auf die Zahlen in der Abbildung für BEFORE:

  • Benutzer haben zwei Optionen, um eine Verbindung zu einem internen Snowflake-Stagingbereich herzustellen:

    • Option A ermöglicht eine direkte lokale (On-premises) Verbindung mit dem internen Stagingbereich, was mit Nummer 1 gekennzeichnet ist.

    • Option B ermöglicht eine Verbindung zum internen Stagingbereich über eine Proxy-Farm, was mit den Nummern 2 und 3 gekennzeichnet ist.

  • Wenn Sie die Proxy-Farm verwenden, können Benutzer auch direkt eine Verbindung zu Snowflake herstellen, was mit Nummer 4 gekennzeichnet ist.

Beachten Sie Folgendes in Bezug auf die Zahlen in der Abbildung für AFTER:

  • Durch die Aktualisierungen an diesem Feature ist es nicht mehr erforderlich, für die Verbindung zu Snowflake oder zu einem internen Snowflake-Stagingbereich eine Proxy-Farm zu verwenden.

  • Ein lokaler Benutzer kann eine direkte Verbindung zu Snowflake herstellen, was mit Nummer 5 gekennzeichnet ist.

  • Um eine Verbindung zu einem internen Snowflake-Stagingbereich herzustellen, verbinden sich lokale Benutzer mit einem Schnittstellenendpunkt, Nummer 6, und verwenden dann AWS PrivateLink für Amazon S3, um sich mit dem internen Snowflake-Stagingbereich zu verbinden, wie durch Nummer 7 gekennzeichnet.

Für jeden bereitgestellten internen Stagingbereich gibt es einen eigenen Amazon S3-Bucket. Um die Daten jedes Snowflake-Kontos zu organisieren, wird ein Präfix im Amazon S3-Bucket des internen Stagingbereichs verwendet. Die Endpunkt-URLs der Amazon S3-Buckets sind unterschiedlich, je nachdem, ob für die Verbindung zum Bucket private Konnektivität (d. h. AWS PrivateLink für Amazon S3) verwendet wird.

Öffentliche globale Amazon S3-Endpunkt-URL

<Bucketname>.s3.region.amazonaws.com/prefix

Private Amazon S3-Endpunkt-URL

<vpceID>.s3.<Region>.vpce.amazonaws.com/prefix

Vorteile

Die Implementierung von VPC-Schnittstellenendpunkten für den Zugriff auf interne Snowflake-Stagingbereiche bietet die folgenden Vorteile:

  • Daten in internen Stagingbereichen werden nicht über das öffentliche Internet übertragen.

  • Client- und SaaS-Anwendungen, wie Microsoft PowerBI, die außerhalb der AWS VPC ausgeführt werden, können sich sicher mit Snowflake verbinden.

  • Administratoren müssen keine Änderung an den Firewall-Einstellungen vornehmen, um auf die Daten in den internen Stagingbereichen zugreifen zu können.

  • Administratoren können konsistente Sicherheit und Überwachung hinsichtlich der Art und Weise implementieren, wie sich Benutzer mit Speicherkonten verbinden.

Einschränkungen

Konfigurieren eines VPC-Schnittstellenendpunkts für den Zugriff auf interne Snowflake-Stagingbereiche

Um VPC-Schnittstellenendpunkte für den Zugriff auf interne Snowflake-Stagingbereiche zu konfigurieren, ist die Unterstützung der folgenden drei Rollen in Ihrer Organisation erforderlich:

  1. Snowflake-Kontoadministrator (d. h. ein Benutzer mit der Snowflake-Systemrolle ACCOUNTADMIN)

  2. AWS-Administrator

  3. Netzwerkadministrator

Abhängig von der Organisation kann es notwendig sein, den Konfigurationsaufwand mit mehr als einer Person oder einem Team zu koordinieren, um die folgenden Konfigurationsschritte zu implementieren.

Voraussetzungen

  • AWS PrivateLink für S3.

    Wichtig

    AWS PrivateLink für S3 ist ein AWS-Dienst, der in Ihrer Cloudumgebung aktiviert werden muss.

    Weitere Unterstützung bei der Konfiguration und Implementierung dieses Dienstes erhalten Sie von Ihrem internen AWS-Administrator.

  • Aktualisieren Sie die Zulassungsliste der Firewall wie folgt:

    • Wenn Sie eine ausgehende Firewall verwenden, stellen Sie sicher, dass diese alle von Snowflake benötigten URLs zulässt. Weitere Details dazu finden Sie unter SnowCD (Connectivity Diagnostic Tool).

  • Nur für us-east-1-Kunden: Wenn Sie einen der folgenden Snowflake-Clients für die Verbindung zu Snowflake verwenden, müssen Sie ein Upgrade auf die folgende Clientversionen vornehmen:

    • JDBC-Treiber: 3.13.3 (oder höher)

    • ODBC-Treiber: 2.23.2 (oder höher)

    • Python-Konnektor für Snowflake: 2.5.1 (oder höher)

    • SnowSQL: 1.2.17 (oder höher)

      • Aktualisieren Sie SnowSQL, bevor Sie dieses Feature verwenden. Weitere Informationen dazu finden Sie unter Installieren von SnowSQL.

      • Beachten Sie, dass bei Verwendung der SnowSQL-Option --noup das automatische Upgrade von SnowSQL deaktiviert ist und keine neue SnowSQL-Version heruntergeladen werden kann. Um ein Upgrade durchzuführen, deaktivieren Sie die Option --noup, und aktivieren Sie diese nach Abschluss des Upgrades wieder.

Verfahren

Führen Sie die folgenden Schritte aus, um den sicheren Zugriff auf interne Snowflake-Stagingbereiche über VPC-Endpunkte zu konfigurieren und zu implementieren:

  1. Führen Sie als Snowflake-Kontoadministrator die folgenden Anweisungen in Ihrem Snowflake-Konto aus, und notieren Sie sich den durch den Schlüssel privatelink_internal_stage definierten Wert. Beachten Sie, dass der Name des Amazon S3-Buckets im ersten URL-Segment von links definiert ist. Weitere Informationen dazu finden Sie unter ENABLE_INTERNAL_STAGES_PRIVATELINK und SYSTEM$GET_PRIVATELINK_CONFIG.

    use role accountadmin;
    alter account set ENABLE_INTERNAL_STAGES_PRIVATELINK = true;
    select key, value from table(flatten(input=>parse_json(system$get_privatelink_config())));
    
    Copy
  2. Erstellen Sie als AWS-Administrator mit der AWS Console einen VPC-Endpunkt für AWS PrivateLink für S3. Notieren Sie sich den VPCE-DNS-Namen zur Verwendung im nächsten Schritt. Notieren Sie sich keine VPCE DNS-Zonennamen.

    Sobald der Endpunkt erstellt ist, kann der VPCE-DNS-Name mithilfe von Beschreibung eines Schnittstellenendpunkts gefunden werden.

    In diesem Beispiel wird ein Platzhalter (d. h. *) als führendes Zeichen im VPCE-DNS-Namen aufgeführt. Ersetzen Sie den führenden Platzhalter durch den Namen des Amazon S3-Buckets aus dem vorherigen Schritt. Beispiel:

    Ersetzen Sie

    *.vpce-000000000000a12-abc00ef0.s3.us-west-2.vpce.amazonaws.com

    durch

    <Bucketname>.vpce-000000000000a12-abc00ef0.s3.us-west-2.vpce.amazonaws.com

  3. Ändern Sie als Netzwerkadministrator die DNS-Einstellungen wie folgt, um die folgende URL aufzulösen:

    <Name_des_Buckets>.s3.<Region>.amazonaws.com zum VPCE-DNS-Namen, nachdem der führende Platzhalter durch den Amazon S3-Bucketnamen ersetzt wurde.

    In diesem Beispiel wird <Name_des_Buckets>.s3.<Region>.amazonaws.com in <Name_des_Buckets>.vpce-000000000000a12-abc00ef0.s3.us-west-2.vpce.amazonaws.com aufgelöst.

    Tipp

    • Verwenden Sie keine Platzhalterzeichen (d. h. *) bei der DNS-Zuordnung, da dies möglicherweise Auswirkungen auf den Zugriff auf andere Amazon S3-Buckets außerhalb von Snowflake hat.

    • Verwenden Sie zum Testen des Features ein separates Snowflake-Konto, und konfigurieren Sie eine private DNS-Zone in einer Test-VPC, damit die Tests isoliert sind und sich nicht auf Ihre anderen Workloads auswirken.

    • Wenn die Verwendung eines separaten Snowflake-Kontos nicht möglich ist, verwenden Sie einen Testbenutzer für den Zugriff auf Snowflake von einer Test-VPC aus, in der die DNS-Änderungen vorgenommen werden.

    • Um von lokalen Anwendungen aus zu testen, verwenden Sie die DNS-Weiterleitung, um Anforderungen an die private AWS-Zone in der VPC weiterzuleiten, in der die DNS-Einstellungen vorgenommen werden. Wenn es Clientanwendungen sowohl in der VPC als auch lokal gibt, verwenden Sie AWS Transit Gateway.

    • Führen Sie den folgenden Befehl auf dem Clientcomputer aus, um zu überprüfen, ob die zurückgegebene IP-Adresse die private IP-Adresse des Speicherkontos ist:

      dig <bucket_name>.s3.<region>.amazonaws.com
      
      Copy
  4. Überprüfen Sie für Snowflake-Konten in us-east-1, ob Ihre Snowflake-Clients die neueste Version aufweisen.