Google Cloud Private Service Connect und Snowflake

Unter diesem Thema werden Konzepte und die Konfiguration von Google Cloud Private Service Connect, um Ihr Google Cloud Virtual Private Cloud (VPC)-Netzwerksubnetz unter Umgehung des öffentlichen Internets mit Ihrem auf Google Cloud gehosteten Snowflake-Konto zu verbinden.

Beachten Sie, dass Google Cloud Private Service Connect nicht ein von Snowflake angebotener Dienst ist. Es handelt sich um einen Google-Service, den Snowflake für die Verwendung mit Ihrem Snowflake-Konto aktiviert.

Überblick

Google Cloud Private Service Connect stellt private Konnektivität zu Snowflake bereit, indem es sicherstellt, dass der Zugriff auf Snowflake über eine private IP-Adresse erfolgt. Snowflake erscheint als Ressource in Ihrem Netzwerk (d. h. im Kundennetzwerk), aber der Datenverkehr fließt in einer Richtung von Ihrer VPC über das Google-Netzwerk-Backbone zur Snowflake-VPC. Dieses Setup ermöglicht eine deutlich vereinfachte Netzwerkkonfiguration und sorgt gleichzeitig für eine sichere und private Kommunikation.

Das folgende Diagramm fasst die Architektur von Google Cloud Private Service Connect in Bezug auf den Google Cloud VPC des Kunden und den Snowflake-Dienst zusammen.

Übersicht zur Architektur

Die Google Compute Engine (d. h. eine virtuelle Maschine) verbindet sich mit einer privaten, virtuellen IP-Adresse, die zu einer Weiterleitungsregel weiterleitet (1). Die Weiterleitungsregel verbindet sich mit dem Dienstanhang über eine private Verbindung (2). Die Verbindung wird über einen Load Balancer (3) geleitet, der sie zu Snowflake (4) umleitet.

Einschränkungen

Autorisieren Sie Private Service Connect für Ihr Konto

In diesem Abschnitt wird beschrieben, wie Sie Snowflake autorisieren, Datenverkehr über Private Service Connect zu akzeptieren.

  1. Melden Sie sich bei dem Google Cloud-Konto an, das Zugriff auf das Projekt hat, das Sie autorisieren möchten. Sie können Ihre Google Cloud CLI-Umgebung verwenden, um Folgendes auszuführen:

    gcloud auth login
    
    Copy

    Wenn Sie das aktuelle Konto überprüfen möchten, führen Sie Folgendes aus:

    gcloud auth list
    
    Copy
  2. Verwenden Sie die Google Cloud CLI, um ein Zugriffstoken zu erstellen, indem Sie den folgenden Befehl ausführen:

    gcloud auth print-access-token
    
    Copy

    Dieser Befehl generiert ein Zugriffstoken für Ihr Google Cloud-Konto. Standardmäßig läuft der Token nach 1 Stunde ab. Wenn Sie die Autorisierung für Private Service Connect nach Ablauf des Tokens autorisieren, überprüfen oder widerrufen müssen, müssen Sie diesen Schritt wiederholen, um ein neues Token zu generieren.

    Wenn Sie ein Dienstkonto für das Google Cloud-Projekt haben, können Sie stattdessen ein kurzlebiges Zugriffstoken generieren, aber stellen Sie sicher, dass die Lebensdauer des Tokens lang genug ist, um diese Konfigurationsschritte abzuschließen.

  3. Als Administrator eines Snowflake-Kontos (d. h. als Benutzer mit der Systemrolle ACCOUNTADMIN ) rufen Sie die Funktion SYSTEM$AUTHORIZE_PRIVATELINK auf, um Private Service Connect für Ihr Snowflake-Konto zu autorisieren (d. h. zu aktivieren). Die Syntax dieser Funktion für Private Service Connect lautet:

    SELECT SYSTEM$AUTHORIZE_PRIVATELINK ( '<gcp_project_id>' , '<access_token>' )
    
    Copy

    Wobei:

    • gcp_project_id ist die Google Cloud Projekt-ID, von der aus Sie Endpunkte erstellen und eine sichere Verbindung zu Snowflake herstellen möchten.

    • access_token ist das Zugriffstoken, das Sie in einem früheren Schritt dieser Konfigurationsprozedur erstellt haben.

    Beispiel:

    USE ROLE ACCOUNTADMIN;
    
    SELECT SYSTEM$AUTHORIZE_PRIVATELINK (
     'my-gcp-project-id',
     'ya29.a0AcM612zT4pJaXdYfwgY8aiMoDE9W_xkqQ20coFTB1TJcImKDPo...'
    );
    
    Copy
  4. Rufen Sie die Funktion SYSTEM$GET_PRIVATELINK auf, um zu überprüfen, ob Private Service Connect erfolgreich für Ihr Snowflake Konto autorisiert wurde. Geben Sie dieselben Argumente ein, die Sie für die Autorisierung verwendet haben. Beispiel:

    SELECT SYSTEM$GET_PRIVATELINK(
     'my-gcp-project-id',
     'ya29.a0AcM612zT4pJaXdYfwgY8aiMoDE9W_xkqQ20coFTB1TJcImKDPo...'
    );
    
    Copy

    Snowflake gibt Account is authorized for PrivateLink zurück, wenn das Konto für Private Service Connect autorisiert ist.

Konfigurieren Sie Ihre Google Cloud VPC-Umgebung

In diesem Abschnitt werden die Snowflake-spezifischen Details zur Konfiguration Ihrer Google Cloud VPC-Umgebung behandelt.

Wichtig

Snowflake ist nicht verantwortlich für die Konfiguration Ihrer Google Cloud-Umgebung. Dieses Verfahren zeigt die Grundlagen der Verwendung von Google Cloud CLI, ist aber keine endgültige Anleitung. Beispiel:

  • Sie könnten die Google Cloud console verwenden, um Ihre Google Cloud-Umgebung anstelle der Google Cloud CLI zu konfigurieren, wodurch sich die Schritte ändern würden. Wenn Sie zum Beispiel Google Cloud console verwenden, erstellen Sie einen Endpunkt und keine Weiterleitungsregel.

  • Es wird nicht gezeigt, wie Sie erforderliche Firewall-Updates und DNS-Einträge konfigurieren müssen.

  • Er zeigt Ihnen nicht, wie Sie einen Endpunkt in anderen Regionen verfügbar machen können (Private Service Connect-Endpunkte sind regionale Ressourcen). Weitere Informationen darüber, wie Sie einen Endpunkt in anderen Regionen verfügbar machen, finden Sie in der Google-Dokumentation.

Wenn Sie weitere Hilfe benötigen, wenden Sie sich an Ihren internen Google Cloud-Administrator.

  1. Als Administrator eines Snowflake-Kontos (d. h. als Benutzer mit der Systemrolle ACCOUNTADMIN) öffnen Sie ein Arbeitsblatt und rufen die Funktion SYSTEM$GET_PRIVATELINK_CONFIG auf. Sie müssen die Ausgabe für spätere Schritte speichern.

    Beispiel:

    USE ROLE ACCOUNTADMIN;
    
    SELECT key, value FROM TABLE(flatten(input=>parse_json(system$get_privatelink_config())));
    
    Copy
  2. Verwenden Sie die Google Cloud CLI, um die gcloud-Bibliothek auf die neueste Version zu aktualisieren:

    gcloud components update
    
    Copy
  3. Authentifizieren Sie mit dem folgenden Befehl bei Google Cloud:

    gcloud auth login
    
    Copy
  4. Legen Sie in Ihrer Google Cloud VPC die ID für das Projekt fest, in dem sich die Weiterleitungsregel befinden soll.

    gcloud config set project <project_id>
    
    Copy

    Um eine Liste der Projekt-IDs zu erhalten, führen Sie den folgenden Befehl aus:

    gcloud projects list --sort-by=projectId
    
    Copy
  5. Erstellen Sie in Ihrer Google Cloud VPC eine virtuelle IP-Adresse:

    gcloud compute addresses create <customer_vip_name> \
    --subnet=<subnet_name> \
    --addresses=<customer_vip_address>
    --region=<region>
    
    Copy

    Wobei:

    • customer_vip_name gibt den Namen der virtuellen IP-Regel an (zum Beispiel psc-vip-1).

    • subnet_name gibt den Namen des Subnetzes an.

    • customer_vip_address gibt eine IP-Adresse an, an die alle privaten Konnektivitäts-URLs aufgelöst werden. Geben Sie eine IP-Adresse aus Ihrem Netzwerk an, oder verwenden Sie die CIDR-Notation, um einen Bereich von IP-Adressen anzugeben.

    • region gibt die Cloudregion an, in der sich Ihr Snowflake Konto befindet.

    Beispiel:

    gcloud compute addresses create psc-vip-1 \
    --subnet=psc-subnet \
    --addresses=192.168.3.3 \
    --region=us-central1
    
    Copy

    Ausgabe:

    Created [https://www.googleapis.com/compute/v1/projects/docstest-123456/regions/us-central1/addresses/psc-vip-1].
    
  6. Erstellen Sie eine Weiterleitungsregel, damit Ihr Subnetz zum Private Service Connect-Endpunkt und dann zum Snowflake-Dienstendpunkt geleitet wird.

    gcloud compute forwarding-rules create <name> \
    --region=<region> \
    --network=<network_name> \
    --address=<customer_vip_name> \
    --target-service-attachment=<privatelink-gcp-service-attachment>
    
    Copy

    Wobei:

    • name gibt den Namen der Weiterleitungsregel an.

    • region gibt die Cloudregion an, in der sich Ihr Snowflake Konto befindet.

    • network_name gibt den Namen des Netzwerks für diese Weiterleitungsregel an.

    • customer_vip_name gibt den Wert <name> (d. h. psc-vip-1) der virtuellen IP-Adresse an, die im vorherigen Schritt erstellt wurde.

    • privatelink-gcp-service-attachment gibt den Endpunkt für den Snowflake-Dienst an, den Sie erhalten haben, als Sie in einem früheren Schritt die Funktion SYSTEM$GET_PRIVATELINK_CONFIG ausgeführt haben.

    Beispiel:

    gcloud compute forwarding-rules create test-psc-rule \
    --region=us-central1 \
    --network=psc-vpc \
    --address=psc-vip-1 \
    --target-service-attachment=projects/us-central1-deployment1-c8cc/regions/us-central1/serviceAttachments/snowflake-us-central1-psc
    
    Copy

    Ausgabe:

    Created [https://www.googleapis.com/compute/projects/mdlearning-293607/regions/us-central1/forwardingRules/test-psc-rule].
    
  7. Verwenden Sie den folgenden Befehl, um zu überprüfen, ob die Weiterleitungsregel erfolgreich erstellt wurde:

    gcloud compute forwarding-rules list --regions=<region>
    
    Copy

    Wobei:

    • region ist die Cloud Region, in der sich Ihr Snowflake-Konto befindet. Wenn sich Ihr Snowflake-Konto zum Beispiel in der Region europe-west2 befindet, ersetzen Sie <region> durch europe-west2.

    Eine vollständige Liste der Regionen von Google Cloud und ihrer Formatierung finden Sie unter . Eine Liste der verfügbaren Regionen finden Sie unter.

  8. Aktualisieren Sie Ihre DNS-Einstellungen.

    Alle Anfragen an Snowflake müssen über den Private Service Connect-Endpunkt geroutet werden, damit die von der Funktion SYSTEM$GET_PRIVATELINK_CONFIG zurückgegebenen URLs in die von Ihnen erstellte VIP-Adresse aufgelöst wird (<customer_vip_address>).

    Die Werte, die Sie aus der Ausgabe von SYSTEM$GET_PRIVATELINK_CONFIG erhalten, hängen davon ab, auf welche Snowflake-Features Sie über private Konnektivität zugreifen. Eine Beschreibung der möglichen Werte finden Sie unter Rückgabewerte.

    Beachten Sie, dass die Werte für regionless-snowsight-privatelink-url und snowsight-privatelink-url den Zugang zu Snowsight und Snowflake Marketplace über private Konnektivität ermöglichen. Wenn Sie URL-Umleitungen aktivieren möchten, müssen Sie jedoch weitere Konfigurationen vornehmen. Informationen finden Sie unter Snowsight und Private Konnektivität.

    Bemerkung

    Eine vollständige Erläuterung der DNS-Konfiguration würde den Rahmen dieses Verfahrens sprengen. Sie können beispielsweise eine private DNS-Zone in Ihre Umgebung integrieren, indem Sie Cloud DNS verwenden. Bitte wenden Sie sich an Ihre internen Google Cloud und Cloud-Infrastruktur-Administratoren, um die URLs in DNS richtig zu konfigurieren und zu beheben.

Mit Snowflake verbinden

Bevor Sie sich mit Snowflake verbinden, können Sie optional SnowCD (Snowflake Connectivity Diagnostic Tool) nutzen, um die Netzwerkverbindung mit Snowflake und Private Service Connect zu prüfen. Weitere Informationen dazu finden Sie unter SnowCD und SYSTEM$ALLOWLIST_PRIVATELINK.

Um mit Ihrem privaten Konnektivitätskonto eine Verbindung zu Snowflake herzustellen, siehe Verbinden mittels URL.

Autorisierung widerrufen

Wenn es notwendig ist, Private Service Connect in Ihrem Snowflake-Konto zu deaktivieren, rufen Sie die Funktion SYSTEM$REVOKE_PRIVATELINK auf und verwenden dabei dieselben Argumentewie bei der Autorisierung. Beispiel:

SELECT SYSTEM$REVOKE_PRIVATELINK(
 'my-gcp-project-id',
 'ya29.a0AcM612zT4pJaXdYfwgY8aiMoDE9W_xkqQ20coFTB1TJcImKDPo...'
);
Copy

Verwenden von SSO mit Google Private Service Connect

Snowflake unterstützt die Verwendung von SSO mit Google Cloud Private Service Connect. Weitere Informationen dazu finden Sie unter:

Verwenden von Clientumleitung mit Google Cloud Private Service Connect

Snowflake unterstützt die Verwendung der Clientumleitung mit Google Cloud Private Service Connect.

Weitere Informationen dazu finden Sie unter Umleiten von Clientverbindungen.

Verwenden von Replikation und Tri-Secret Secure mit privater Konnektivität

Snowflake unterstützt das Replizieren Ihrer Daten vom Quellkonto in ein Zielkonto, unabhängig davon, ob Sie Tri-Secret Secure oder dieses Feature im Zielkonto aktivieren.