Konten für die Datenübertragung autorisieren
In diesem Dokument finden Sie eine Übersicht darüber, wie der BigQuery Data Transfer Service mit verschiedenen Kontotypen interagiert, welche Arten der Kontoautorisierung für allgemeine Übertragungsaufgaben erforderlich sind und Schritte zur Fehlerbehebung bei häufigen Berechtigungsfehlern.
Wenn Sie den BigQuery Data Transfer Service verwenden möchten, müssen die mit Ihrem Projekt verknüpften Konten – sowohl Nutzerkonten als auch Dienstkonten – mit den richtigen Berechtigungen für die Übertragung authentifiziert und autorisiert sein. Informationen zu datenquellspezifischen Berechtigungen finden Sie in der Übertragungsanleitung für jede Datenquelle.
Wichtige Konzepte
Der BigQuery Data Transfer Service automatisiert Datenübertragungen aus verschiedenen Datenquellen nach BigQuery. Das Authentifizierungs- und Autorisierungsmodell wird auf zwei verschiedenen Ebenen ausgeführt: der Steuerungsebene und der Datenebene sowie für zwei Arten von Nutzern: ein Übertragungsersteller und ein Übertragungsinhaber.
Steuerungsebene
Die Steuerungsebene stellt die Phase im Autorisierungsprozess dar, in der ein authentifizierter Nutzer Übertragungskonfigurationen und -ausführungen steuern und verwalten kann. Ein Nutzer auf der Steuerungsebene muss die entsprechenden IAM-Berechtigungen (Identity and Access Management) haben, um seine Übertragungskonfigurationen und ‑ausführungen zu steuern und zu verwalten:
- Die Berechtigung
bigquery.transfers.update, mit der Nutzer Folgendes tun können:- Datenübertragungskonfigurationen einrichten
- Vorhandene Übertragungen verwalten, z. B. eine Übertragung aktualisieren, deaktivieren oder löschen
- Die Berechtigung
bigquery.transfers.get, mit der Nutzer Übertragungsausführungen überwachen können, z. B. den Status der Übertragungsausführung prüfen oder den Verlauf und die Logs der Übertragungsausführung ansehen
Wenn Sie die Google Cloud console oder das bq-Befehlszeilentool verwenden, um eine
Übertragung zu erstellen, benötigen Sie auch die bigquery.transfers.get Berechtigung.
Die Berechtigung bigquery.transfers.update ist nicht erforderlich, um eine
geplante Abfrage einzurichten. Weitere Informationen finden Sie unter
den erforderlichen Berechtigungen
für geplante Abfragen.
Datenebene
Die Datenebene stellt die Phase außerhalb der direkten Kontrolle eines Nutzers dar. Auf der Datenebene kann der BigQuery Data Transfer Service Datenübertragungen im Offlinemodus ausführen und Übertragungsausführungen automatisch basierend auf einem vom Nutzer angegebenen Zeitplan auslösen. Auf der Datenebene werden die Anmeldedaten des Übertragungsinhabers verwendet, um auf die Quelldaten zuzugreifen. Je nach Datenquelle werden die Anmeldedaten des Übertragungsinhabers verwendet oder die Anmeldedaten des BigQuery Data Transfer Service-Dienst-Agents verwendet zum Starten von BigQuery-Jobs und zum Schreiben von Daten in das Ziel-Dataset.
Weitere Informationen zu den erforderlichen Berechtigungen finden Sie in den folgenden Abschnitten dieser Anleitung:
- Lesezugriff-Autorisierung für externe Datenquellen
- Autorisierung zum Starten von BigQuery-Jobs
- Autorisierung zum Ausführen von BigQuery-Jobs und zum Schreiben von Daten in das Ziel-Dataset
Ersteller der Übertragung im Vergleich zu Inhaber der Übertragung
Ein Übertragungsersteller ist die Nutzeridentität, die die Übertragungskonfiguration erstellt und eingerichtet hat. Ein BigQuery Data Transfer Service-Nutzer und Übertragungsersteller kann ein Nutzerkonto oder ein Dienstkontosein.
Ein Übertragungsinhaber ist die Nutzeridentität, die der BigQuery Data Transfer Service verwendet, um die Datenübertragung zu autorisieren, insbesondere zum Extrahieren der Quelldaten. Bei Datenquellen, die Dienstkonten unterstützen kann der Übertragungsinhaber ein Nutzerkonto oder ein Dienstkonto sein. Bei anderen Datenquellen muss der Übertragungsinhaber ein Nutzerkonto sein.
Der Übertragungsinhaber und der Übertragungsersteller können dieselbe Nutzeridentität haben, dies ist jedoch keine Voraussetzung. Es gibt mehrere Möglichkeiten, für den Übertragungsinhaber einen anderen Nutzer als für den Übertragungsersteller festzulegen:
- Beim Erstellen einer Übertragung können Sie als Inhaber ein Dienstkonto festlegen, wenn die Datenquelle Dienstkonten unterstützt.
- Nachdem eine Übertragung erstellt wurde, können Sie die Inhaberschaft auf ein neues Nutzerkonto übertragen (oder auf ein Dienstkonto, wenn die Datenquelle Dienstkonten unterstützt), das die Berechtigungen
bigquery.transfers.updateundbigquery.transfers.gethat. Sie müssen im neuen Konto angemeldet sein, wenn Sie die Anmeldedaten aktualisieren.
Lesezugriff-Autorisierung für externe Datenquellen
Die zum Lesen von Quelldaten erforderlichen Berechtigungen können je nach Datenquelle variieren. Für den Zugriff auf Google Ads sind beispielsweise Lesezugriffsberechtigungen für die Google Ads-Kundennummer erforderlich. Für Google Play ist Berichtszugriff in der Google Play Console erforderlich. Weitere Informationen zu Berechtigungen spezifisch für Datenquellen finden Sie in den Anleitungen zur Übertragung für jede Datenquelle.
Je nach Identitätstyp des Übertragungsinhabers ist eine andere Autorisierungsmethode erforderlich, um das Zugriffstoken für den Zugriff auf die Quelldaten abzurufen.
Übertragungs-Inhaber als Dienstkonto
Wenn ein Dienstkonto als Übertragungsinhaber verwendet wird, werden die erforderlichen Berechtigungen automatisch erteilt, wenn die BigQuery Data Transfer Service API für Ihr Projekt aktiviert wird. Der BigQuery Data Transfer Service verwendet einen Dienst -Agent, um das Zugriffstoken für das vom Nutzer bereitgestellte Dienstkonto (Übertragungsinhaber) abzurufen.
Wenn Sie die BigQuery Data Transfer Service API aktivieren, wird ein Dienst-Agent
für Ihr Projekt erstellt. Das System erteilt dem Dienst-Agent auch die
Rolle „BigQuery Data Transfer Service-Agent“ (roles/bigquerydatatransfer.serviceAgent),
die die Berechtigung iam.serviceAccounts.getAccessToken enthält. Mit dieser Berechtigung kann der Dienst-Agent für BigQuery Data Transfer Service das Dienstkonto des Übertragungsinhabers annehmen, um das Zugriffstoken abzurufen.
Weitere Informationen zum BigQuery Data Transfer Dienst-Agent finden Sie unter Dienst-Agent. Weitere Informationen zur Verwendung von Dienstkonten und die aktuelle Liste der Datenquellen, die Dienstkonten unterstützen, finden Sie unter Dienstkonten verwenden.
Übertragungs-Inhaber als Nutzerkonto
Wenn der Übertragungsinhaber, der die Übertragungskonfiguration erstellt, ein Nutzerkonto (kein Dienstkonto) ist, müssen Sie dem BigQuery Data Transfer Service manuell die Berechtigung erteilen, das Zugriffstoken für das Nutzerkonto abzurufen und auf die Quelldaten im Namen des Übertragungsinhabers zuzugreifen. Sie können die manuelle Genehmigung über die OAuth-Dialogoberfläche erteilen.
Sie müssen dem BigQuery Data Transfer Service nur dann eine Berechtigung erteilen, wenn Sie eine Übertragung für eine bestimmte Datenquelle erstellen. Sie müssen die Berechtigung noch einmal erteilen, wenn Sie die erste Übertragung für eine neu verwendete Region erstellen, auch wenn Sie dieselbe Datenquelle verwenden. Datenübertragungen von YouTube-Kanälen sind die Ausnahme: Sie müssen jedes Mal, wenn Sie eine Datenübertragung für einen YouTube-Kanal erstellen, die Berechtigungen manuell erteilen.
Wenn Sie den Inhaber der Übertragung durch Aktualisieren der Anmeldedaten ändern, ist auch eine manuelle Genehmigung erforderlich, falls der neue Inhaber noch nie eine Übertragung für die Datenquelle in dieser Region erstellt hat.
Im folgenden Screenshot ist die Dialog-Oberfläche von OAuth beim Erstellen einer Übertragung mit Google Ads dargestellt. Das Dialogfeld zeigt datenquellspezifische Berechtigungen zum Erteilen:
So heben Sie erteilte Berechtigungen auf:
- Rufen Sie die Seite „Google-Konto“ auf.
- Klicken Sie auf BigQuery Data Transfer Service.
- Klicken Sie auf Zugriff entfernen, um die Berechtigungen aufzuheben.
Autorisierung zum Starten von BigQuery-Jobs
Wenn Sie von den meisten Datenquellen migrieren, außer wenn Sie migrieren mithilfe von geplanten Abfragenoder Dataset-Kopien, nutzt der BigQuery Data Transfer Service Dienst-Agenten, um BigQuery-jobs für Ihr Projekt zu starten. Die erforderliche Berechtigung bigquery.job.create wird dem Dienst-Agent automatisch
erteilt, wenn Sie die BigQuery Data Transfer Service API für Ihr Projekt aktivieren. Weitere Informationen finden Sie unter BigQuery Data Transfer Service aktivieren.
Wenn Sie mit geplanten Abfragen oder Dataset-Kopien migrieren, verwendet der BigQuery Data Transfer Service die Anmeldedaten des Übertragungsinhabers, um die BigQuery-Jobs zu starten.
Autorisierung zum Ausführen von BigQuery-Jobs und zum Schreiben von Daten in das Ziel-Dataset
Wenn Sie aus den meisten Datenquellen migrieren, mit Ausnahme des Migrationsvorgangs mit geplanten Abfragen oder Dataset-Kopien, ist der Dienst-Agent für BigQuery Data Transfer Service zum Schreiben von Daten in das BigQuery-Ziel-Dataset erforderlich. Die erforderliche Berechtigung roles/bigquery.dataEditor wird dem Dienst-Agent vom BigQuery Data Transfer Service erteilt, wenn Sie die Übertragung erstellen. Sie benötigen die Berechtigung bigquery.datasets.update für das Ziel-Dataset, um die Berechtigung zu erteilen.
Wenn Sie mit geplanten Abfragen oder Dataset-Kopien migrieren, verwendet BigQuery Data Transfer Service die Anmeldedaten des Übertragungsinhabers, um die BigQuery-Jobs auszuführen und die Daten in BigQuery Ziel-Dataset zu schreiben.
Autorisierungsüberlegungen für YouTube-Kanalübertragungen
Bei einer YouTube-Kanal-Daten übertragung kann der YouTube-Kanal-Connector nur Daten vom YouTube-Kanal übertragen, der mit den Anmeldedaten des Nutzers verknüpft ist, der die Datenübertragung erstellt. Wenn Sie Daten von verschiedenen YouTube-Kanälen übertragen möchten, müssen Sie für jeden Kanal eine Datenübertragung erstellen. Für jede erstellte Datenübertragung müssen Sie die Anmeldedaten des Nutzers verwenden, die mit diesem YouTube-Kanal verknüpft sind.
Berechtigungsfehler beheben
Wenn bei Ihrer Übertragung Autorisierungs- oder Berechtigungsprobleme auftreten, lesen Sie den Hilfeartikel Autorisierungs- und Berechtigungsprobleme.