Konten für die Datenübertragung autorisieren

Dieses Dokument bietet einen Überblick darüber, wie BigQuery Data Transfer Service mit verschiedenen Kontotypen interagiert, welche Kontoautorisierungen Sie für allgemeine Übertragungsaufgaben benötigen und wie Sie häufige Berechtigungsfehler beheben.

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 datenquellenspezifischen Berechtigungen finden Sie in der Anleitung zur Übertragung für jede Datenquelle.

Wichtige Konzepte

Der BigQuery Data Transfer Service automatisiert die Datenübertragung 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 Übertragungskonfigurationen und -ausführungen steuern und verwalten kann. Ein Nutzer in der Steuerebene 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:
    • Richten Sie Datenübertragungskonfigurationen ein.
    • Vorhandene Übertragungen verwalten, z. B. eine Übertragung aktualisieren, deaktivieren oder löschen.
  • Die Berechtigung bigquery.transfers.get, mit der Nutzer Übertragungen überwachen können, z. B. den Status der Übertragung oder den Übertragungsverlauf und ‑protokolle aufrufen.

Wenn Sie die Google Cloud -Konsole oder das bq-Befehlszeilentool verwenden, um eine Übertragung zu erstellen, 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 dar, die nicht direkt vom Nutzer gesteuert wird. In der Datenebene kann BigQuery Data Transfer Service Datenübertragungen im Offlinemodus ausführen und Übertragungen basierend auf einem vom Nutzer angegebenen Zeitplan automatisch 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

Als Ersteller einer Übertragung wird die Nutzeridentität bezeichnet, die die Übertragungskonfiguration erstellt und eingerichtet hat. Ein Nutzer und Ersteller von Übertragungen im BigQuery Data Transfer Service kann ein Nutzerkonto oder ein Dienstkonto sein.

Ein Inhaber der Datenübertragung bezieht sich auf 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.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. Für Google Play ist ebenfalls Zugriff auf die Berichterstellung 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 Inhabers der Übertragung 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 ist. 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 für Ihr Projekt ein Dienstagent erstellt. Außerdem wird dem Dienst-Agent die Rolle Dienst-Agent für BigQuery Data Transfer Service (roles/bigquerydatatransfer.serviceAgent) zugewiesen, die die Berechtigung iam.serviceAccounts.getAccessToken enthält. Mit dieser Berechtigung kann der Dienst-Agent des BigQuery Data Transfer Service sich als das Dienstkonto des Inhabers der Übertragung ausgeben, um das Zugriffstoken abzurufen.

Weitere Informationen zum BigQuery Data Transfer Dienst-Agent 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 das OAuth-Dialogfeld gewähren.

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 die Berechtigung zum 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 Zugriff entfernen. Entfernen Sie den Zugriff, den Sie dem 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 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 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-Agenten 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 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.

Berechtigungsfehler beheben

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