Dienstkonten verwenden
Einige Datenquellen unterstützen die Datenübertragungsauthentifizierung mithilfe eines Dienstkontos über die Google Cloud Console, die API oder die bq
-Befehlszeile. Ein Dienstkonto ist ein Google-Konto, das mit Ihrem Google Cloud-Projekt verknüpft ist. Ein Dienstkonto kann Jobs wie geplante Abfragen oder Batchverarbeitungs-Pipelines ausführen. Die Authentifizierung erfolgt mit den Anmeldedaten des Dienstkontos anstelle der Anmeldedaten eines Nutzers.
Sie können eine bestehende Datenübertragung mit den Anmeldedaten eines Dienstkontos aktualisieren. Weitere Informationen finden Sie unter Anmeldedaten für die Datenübertragung aktualisieren.
In folgenden Situationen müssen die Anmeldedaten aktualisiert werden:
Bei der Übertragung konnte der Zugriff des Nutzers auf die Datenquelle nicht autorisiert werden:
Error code 401 : Request is missing required authentication credential. UNAUTHENTICATED
Sie erhalten die Fehlermeldung INVALID_USER, wenn Sie versuchen, die Übertragung auszuführen:
Error code 5 : Authentication failure: User Id not found. Error code: INVALID_USERID
Weitere Informationen zur Authentifizierung über Dienstkonten finden Sie unter Einführung in die Authentifizierung.
Datenquellen mit Dienstkontounterstützung
BigQuery Data Transfer Service kann Dienstkonto-Anmeldedaten für Übertragungen mit folgenden Funktionen verwenden:
- Cloud Storage
- Amazon Redshift
- Amazon S3
- Campaign Manager
- Dataset-Kopie
- Display & Video 360
- Google Ad Manager
- Google Ads
- Google Merchant Center
- Google Play
- Geplante Abfragen
- Search Ads 360
- Teradata
- YouTube-Rechteinhaber
Hinweise
- Prüfen Sie, ob Sie alle erforderlichen Aktionen zum Aktivieren des BigQuery Data Transfer Service ausgeführt haben.
- Weisen Sie IAM-Rollen (Identity and Access Management) zu, die Nutzern die erforderlichen Berechtigungen zum Ausführen der einzelnen Aufgaben in diesem Dokument gewähren.
Erforderliche Berechtigungen
Wenn Sie eine Datenübertragung auf die Verwendung eines Dienstkontos aktualisieren möchten, benötigen Sie folgende Berechtigungen:
Die Berechtigung
bigquery.transfers.update
zum Ändern der Übertragung.Die vordefinierte IAM-Rolle
roles/bigquery.admin
enthält diese Berechtigung.Zugriff auf das Dienstkonto. Weitere Informationen zum Zuweisen der Dienstkontorolle zu Nutzern finden Sie unter Dienstkontonutzerrolle.
Achten Sie darauf, dass das Dienstkonto, mit dem Sie die Übertragung ausführen möchten, folgende Berechtigungen hat:
Die Berechtigungen
bigquery.datasets.get
undbigquery.datasets.update
für das Ziel-Dataset. Wenn die Tabelle die Zugriffssteuerung auf Spaltenebene nutzt, muss das Dienstkonto auch diebigquery.tables.setCategory
-Berechtigung haben.Die vordefinierte Cloud IAM-Rolle
bigquery.admin
enthält alle diese Berechtigungen. Weitere Informationen zu IAM-Rollen im BigQuery Data Transfer Service finden Sie in der Einführung in IAM.Zugriff auf die konfigurierte Übertragungsdatenquelle. Weitere Informationen zu den erforderlichen Berechtigungen für verschiedene Datenquellen finden Sie unter Datenquellen mit Dienstkontounterstützung.
Für Google Ads-Übertragungen müssen dem Dienstkonto domainweite Befugnisse erteilt werden. Weitere Informationen finden Sie im Leitfaden zu Google Ads API-Dienstkonten.
Anmeldedaten für die Datenübertragung aktualisieren
Console
Mit dem folgenden Verfahren wird eine Datenübertragungskonfiguration so aktualisiert, dass sie sich anstelle Ihres individuellen Nutzerkontos als Dienstkonto authentifiziert.
Rufen Sie in der Google Cloud Console die Seite Datenübertragungen auf.
Klicken Sie in der Liste der Datenübertragungen auf die Übertragung.
Klicken Sie auf Bearbeiten, um die Übertragungskonfiguration zu aktualisieren.
Geben Sie im Feld Dienstkonto den Namen des Dienstkontos ein.
Klicken Sie auf Speichern.
bq
Wenn Sie die Anmeldedaten einer Datenübertragung aktualisieren, können Sie das bq-Befehlszeilentool verwenden, um die Übertragungskonfiguration zu aktualisieren.
Verwenden Sie den bq update
-Befehl mit den Flags --transfer_config
, --update_credentials
und --service_account_name
.
Mit dem folgenden Befehl wird beispielsweise eine Datenübertragungskonfiguration so aktualisiert, dass sie sich anstelle Ihres individuellen Nutzerkontos als Dienstkonto authentifiziert:
bq update \
--transfer_config \
--update_credentials \
--service_account_name=abcdef-test-sa@abcdef-test.iam.gserviceaccount.com projects/862514376110/locations/us/transferConfigs/5dd12f26-0000-262f-bc38-089e0820fe38 \
Java
Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Python
Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Python in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Python API.
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.