Mit AlloyDB for PostgreSQL verbinden

Als BigQuery-Administrator können Sie eine Verbindung erstellen, um auf AlloyDB-Daten zuzugreifen. Über diese Verbindung können Datenanalysten Daten in AlloyDB abfragen.

Führen Sie die folgenden Schritte aus, um eine Verbindung zu AlloyDB herzustellen:

  1. Erstellen Sie eine AlloyDB-Verbindung.

  2. Zugriff auf das Dienstkonto gewähren.

Hinweise

  1. BigQuery Connection API aktivieren.

    API aktivieren

  2. Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle BigQuery-Verbindungsadministrator (roles/bigquery.connectionAdmin) für das Projekt zuzuweisen, um die Berechtigungen abzurufen, die Sie zum Erstellen einer AlloyDB-Verbindung benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

    Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

AlloyDB-Verbindung erstellen

Als Best Practice sollten Sie Verbindungen zur Verarbeitung von Datenbankanmeldedaten verwenden, wenn Sie eine Verbindung zu AlloyDB herstellen. Verbindungen werden verschlüsselt und sicher im BigQuery-Verbindungsdienst gespeichert. Wenn die Nutzeranmeldedaten für andere Daten in der Quelle gültig sind, können Sie die Verbindung wiederverwenden. Sie können beispielsweise eine Verbindung verwenden, um dieselbe Datenbank in einer AlloyDB-Instanz mehrmals abzufragen.

Wählen Sie eine der folgenden Optionen aus, um eine AlloyDB-Verbindung zu erstellen:

Console

  1. Rufen Sie die Seite BigQuery auf.

    BigQuery aufrufen

  2. Klicken Sie im Bereich Explorer auf Daten hinzufügen.

  3. Klicken Sie im Dialogfeld Daten hinzufügen auf Verbindungen zu externen Datenquellen:

  4. Geben Sie im Dialogfeld Externe Datenquelle die folgenden Informationen ein:

    • Wählen Sie als Verbindungstyp „AlloyDB“ aus.
    • Geben Sie unter Verbindungs-ID eine Kennung für die Verbindungsressource ein. Buchstaben, Ziffern und Unterstriche sind zulässig. Beispiel: bq_alloydb_connection
    • Wählen Sie unter Datenstandort einen BigQuery-Standort (oder eine Region) aus, der mit Ihrer externen Region für die Datenquellen kompatibel ist.
    • Optional: Sie können unter Anzeigename einen nutzerfreundlichen Namen für die Verbindung eingeben, z. B. My connection resource. Der Anzeigename kann ein beliebiger Wert sein, mit dem Sie die Verbindungsressource identifizieren können, wenn Sie sie später ändern müssen.
    • Optional: Sie können unter Beschreibung eine Beschreibung für diese Verbindungsressource eingeben.
    • Optional: Verschlüsselung: Wenn Sie einen vom Kunden verwalteten Verschlüsselungsschlüssel (Customer-Managed Encryption Key, CMEK) zum Verschlüsseln Ihrer Anmeldedaten verwenden möchten, wählen Sie Vom Kunden verwalteter Verschlüsselungsschlüssel (CMEK) und dann einen vom Kunden verwalteten Schlüssel aus. Andernfalls werden Ihre Anmeldedaten durch die Google-eigenen und von Google verwalteten Standardschlüssel geschützt.
    • Geben Sie unter Datenbankname den Namen der Datenbank ein.
    • Geben Sie unter Datenbanknutzername den Nutzernamen für die Datenbank ein.
    • Geben Sie unter Datenbankpasswort das Passwort für die Datenbank ein.
      • Optional: Klicken Sie auf Passwort anzeigen, um das Passwort anzuzeigen.
    • Geben Sie für die AlloyDB-Instanz den Verbindungs-URI der primären AlloyDB- oder Leseinstanz mit dem Präfix //alloydb.googleapis.com ein.

      • Beispiel-URI: //alloydb.googleapis.com/projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_NAME/instances/INSTANCE_ID
  5. Klicken Sie auf Verbindung erstellen.

  6. Klicken Sie auf Zur Verbindung.

  7. Kopieren Sie im Bereich Verbindungsinformationen die Dienstkonto-ID für den nächsten Schritt, um die richtigen IAM-Berechtigungen zu gewähren.

bq

Geben Sie den Befehl bq mk mit den folgenden Flags ein:

  bq mk \
  --connection \
  --location=LOCATION \
  --project_id=PROJECT_ID \
  --connector_configuration '{
    "connector_id": "google-alloydb",
    "asset": {
      "database": "DATABASE",
      "google_cloud_resource": "RESOURCE_PATH"
    },
    "authentication": {
      "username_password": {
        "username": "USERNAME",
        "password": {
          "plaintext": "PASSWORD"
        }
      }
    }
  }' \
  CONNECTION_ID

Ersetzen Sie Folgendes:

  • LOCATION: Geben Sie eine Region des BigQuery-Datasets an, die mit den Daten aus AlloyDB kombiniert werden soll. Abfragen, die diese Verbindung verwenden, müssen in dieser Region ausgeführt werden.
  • PROJECT_ID: Geben Sie Ihre Google Cloud-Projekt-ID ein.
  • DATABASE: Geben Sie den Namen der Datenbank ein.
  • RESOURCE_PATH: Geben Sie den Verbindungs-URI der primären AlloyDB- oder Leseinstanz mit dem Präfix //alloydb.googleapis.com ein.
    • Beispiel-URI: //alloydb.googleapis.com/projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_NAME/instances/INSTANCE_ID
  • USERNAME: Geben Sie den Namen des Datenbanknutzers ein.
  • PASSWORD: Geben Sie das Passwort des Datenbanknutzers ein.
  • CONNECTION_ID: Geben Sie eine Verbindungs-ID ein, um diese Verbindung zu identifizieren.

API

Innerhalb der BigQuery Connection API können Sie CreateConnection innerhalb von ConnectionService aufrufen, um eine Verbindung zu instanziieren. Weitere Informationen finden Sie auf der Seite der Clientbibliotheken.

Zugriff auf das Dienstkonto gewähren

Ein Dienstkonto wird automatisch erstellt, wenn Sie die erste Verbindung in einem Projekt erstellen. Der Name des Dienstkontos lautet BigQuery Connection Service Agent. Die Dienstkonto-ID hat das folgende Format:

service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com.

Wenn Sie eine Verbindung zu AlloyDB herstellen möchten, müssen Sie der neuen Verbindung Zugriff auf AlloyDB gewähren, damit BigQuery im Namen von Nutzern auf Daten zugreifen kann. Das Dienstkonto muss die folgenden Berechtigungen haben:

  • alloydb.instances.connect

Sie können dem mit der Verbindung verknüpften Dienstkonto die IAM-Rolle “AlloyDB-Client” zuweisen, die diese Berechtigung bereits hat. Sie können diesen Schritt überspringen, wenn das Dienstkonto bereits die erforderlichen Berechtigungen hat.

Console

  1. Zur Seite IAM & Verwaltung.

    IAM & Verwaltung aufrufen

  2. Klicken Sie auf Zugriff gewähren.

    Das Dialogfeld Principals hinzufügen wird geöffnet.

  3. Geben Sie in das Feld Neue Hauptkonten den Dienstkontonamen BigQuery Connection Service Agent oder die Dienstkonto-ID aus den Verbindungsinformationen ein.

  4. Wählen Sie im Feld Rolle auswählen die Option AlloyDB und dann AlloyDB Client aus.

  5. Klicken Sie auf Speichern.

gcloud

Führen Sie den Befehl gcloud projects add-iam-policy-binding aus:

gcloud projects add-iam-policy-binding PROJECT_ID --member=serviceAccount:SERVICE_ACCOUNT_ID --role=roles/alloydb.client

Geben Sie folgende Werte an:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID.
  • SERVICE_ACCOUNT_ID: Ersetzen Sie die Projektnummer in service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com und verwenden Sie sie.

Verbindungen für Nutzer freigeben

Sie können die folgenden Rollen zuweisen, damit Nutzer Daten abfragen und Verbindungen verwalten können:

  • roles/bigquery.connectionUser: Nutzer können Verbindungen nutzen, um sich mit externen Datenquellen zu verbinden und diese abzufragen.

  • roles/bigquery.connectionAdmin: Nutzer können Verbindungen verwalten.

Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.

Wählen Sie eine der folgenden Optionen aus:

Console

  1. Rufen Sie die Seite BigQuery auf.

    BigQuery aufrufen

    Verbindungen werden in Ihrem Projekt in einer Gruppe namens Externe Verbindungen aufgeführt.

  2. Klicken Sie im Bereich Explorer auf Ihren Projektnamen > Externe Verbindungen > Verbindung.

  3. Klicken Sie im Bereich Details auf Freigeben, um eine Verbindung freizugeben. Führen Sie anschließend folgende Schritte aus:

    1. Geben Sie im Dialogfeld Verbindungsberechtigungen die Verbindung für andere Hauptkonten frei, indem Sie Hauptkonten hinzufügen oder bearbeiten.

    2. Klicken Sie auf Speichern.

bq

Verwenden Sie den folgenden set-iam-policy Befehl:

  bq set-iam-policy RESOURCE FILE_NAME

Ersetzen Sie Folgendes:

  • RESOURCE: Geben Sie den Ressourcennamen im Format project_id.region.connection_id oder region.connection_id ein.
  • FILE_NAME: Geben Sie den Dateinamen ein, der die IAM-Richtlinie im JSON-Format enthält.

Weitere Informationen zum Befehl "set-iam-policy" finden Sie unter Zugriff auf Ressourcen mit IAM steuern.

API

Verwenden Sie die Methode projects.locations.connections.setIAM in dem Referenzabschnitt zur BigQuery Connections REST API und geben Sie eine Instanz der Ressource policy an.

Nächste Schritte