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

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 Datenbanknamen ein.
  • RESOURCE_PATH: Geben Sie den Verbindungs-URI der AlloyDB-Instanz 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:

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