Konten für die Datenübertragung autorisieren

Mit BigQuery Data Transfer Service können Sie Nutzerkonten, Dienstkonten und Dienst-Agents authentifizieren und autorisieren, um Transferkonfigurationen zu verwalten und automatisierte Datenübertragungen auszuführen. Wenn Sie die erforderlichen Berechtigungen für Ihre Projektkonten gewähren, können Sie den Zugriff auf Quelldaten und Ziel-Datasets steuern und häufige Berechtigungsfehler beheben. Informationen zu datenquellenspezifischen Berechtigungen finden Sie in der Übertragungsdokumentation für die jeweilige Datenquelle.

Wichtige Konzepte

BigQuery Data Transfer Service automatisiert Datenübertragungen aus verschiedenen Datenquellen in 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 Transferkonfigurationen und -ausführungen steuern und verwalten kann. Ein Nutzer in 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. 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 aufrufen.

Wenn Sie die Google Cloud Console oder das bq-Befehlszeilentool zum Erstellen einer Übertragung verwenden, benötigen Sie außerdem die Berechtigung bigquery.transfers.get.

Die Berechtigung bigquery.transfers.update ist nicht erforderlich, um eine geplante Abfrage einzurichten. Weitere Informationen finden Sie unter Erforderliche Berechtigungen für geplante Abfragen.

Datenebene

Die Datenebene stellt die Phase außerhalb der direkten Kontrolle eines Nutzers dar. In der Datenebene kann BigQuery Data Transfer Service Datenübertragungen im Offlinemodus ausführen und Übertragungsausführungen automatisch nach einem vom Nutzer festgelegten 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 dieses Leitfadens:

Ersteller der Übertragung im Vergleich zu Inhaber der Übertragung

Der Ersteller einer Übertragung ist die Nutzeridentität, die die Übertragungskonfiguration erstellt und eingerichtet hat. Ein BigQuery Data Transfer Service-Nutzer und -Übertragungsersteller kann ein Nutzerkonto oder ein Dienstkonto sein.

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 nicht erforderlich. 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.update und bigquery.transfers.get hat. 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 von Datenquelle zu Datenquelle variieren. Für den Zugriff auf Google Ads sind beispielsweise Leseberechtigungen für die Google Ads-Kundennummer erforderlich. Ebenso ist für Google Play der Zugriff auf Berichte 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 Inhaber der Übertragung verwendet wird, werden die erforderlichen Berechtigungen automatisch gewährt, wenn die BigQuery Data Transfer Service API für Ihr Projekt aktiviert wird. Der BigQuery Data Transfer Service verwendet einen Dienst-Agenten, um das Zugriffstoken für das vom Nutzer bereitgestellte Dienstkonto (Inhaber der Übertragung) abzurufen.

Wenn Sie die BigQuery Data Transfer Service API aktivieren, wird ein Dienst-Agent für Ihr Projekt erstellt. Das System weist dem Dienst-Agent außerdem die Rolle „BigQuery Data Transfer Service-Agent“ (roles/bigquerydatatransfer.serviceAgent) zu, die die Berechtigung iam.serviceAccounts.getAccessToken enthält. Mit dieser Berechtigung kann der Dienst-Agent des BigQuery Data Transfer Service die Identität des Dienstkontos des Übertragungsinhabers übernehmen, um das Zugriffstoken abzurufen.

Weitere Informationen zum BigQuery Data Transfer Service-Agenten finden Sie unter Dienst-Agent. Weitere Informationen zur Verwendung von Dienstkonten und eine 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:

Gewähren Sie BigQuery Data Transfer Service Zugriff auf Google Ads.

So heben Sie erteilte Berechtigungen auf:

  1. Rufen Sie die Google-Kontoseite auf.
  2. Klicken Sie auf BigQuery Data Transfer Service.
  3. Wenn Sie die Berechtigungen widerrufen möchten, klicken Sie auf Zugriffsrechte entfernen. Zugriff entfernen, den Sie BigQuery Data Transfer Service gewährt haben.

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-Agenten automatisch zugewiesen, 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 BigQuery Data Transfer Service die Anmeldedaten des Übertragungsinhabers, um die BigQuery-Jobs zu starten.

Berechtigung 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-Agenten vom BigQuery Data Transfer Service gewährt, wenn Sie die Übertragung erstellen. Sie benötigen die Berechtigung bigquery.datasets.update für das Ziel-Dataset, um die Berechtigung zu gewähren.

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.

Überlegungen zur Autorisierung für YouTube-Kanalübertragungen

Bei einer Datenübertragung für einen YouTube-Kanal kann der YouTube-Kanal-Connector nur Daten von dem YouTube-Kanal übertragen, der mit den Nutzeranmeldedaten verknüpft ist, mit denen die Datenübertragung erstellt wird. 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 Nutzeranmeldedaten verwenden, die mit dem jeweiligen YouTube-Kanal verknüpft sind.

Berechtigungsfehler beheben

Wenn bei der Übertragung Probleme mit der Autorisierung oder Berechtigungen auftreten, lesen Sie den Abschnitt Probleme mit der Autorisierung und Berechtigungen.