Konten für die Datenübertragung autorisieren

Dieses Dokument bietet einen Überblick darüber, wie BigQuery Data Transfer Service mit verschiedenen Kontotypen interagiert, welche Arten von Kontoautorisierung Sie für allgemeine Übertragungsaufgaben benötigen und welche Schritte zur Fehlerbehebung bei häufigen Berechtigungsfehlern erforderlich sind.

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 Übertragungsanleitung 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 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 ermöglicht es Nutzern, Übertragungen zu überwachen, z. B. den Status von Übertragungen zu prüfen oder den Verlauf und die Logs von Übertragungen anzusehen.

Wenn Sie die Google Cloud -Konsole oder das bq-Befehlszeilentool verwenden, um einen Transfer zu erstellen, benötigen Sie auch 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 Übertragungsläufe automatisch auf Grundlage eines vom Nutzer angegebenen Zeitplans 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 der Nutzer, der die Übertragungskonfiguration erstellt und eingerichtet hat. Ein BigQuery Data Transfer Service-Nutzer und Ersteller von Übertragungen kann ein Nutzerkonto oder ein Dienstkonto sein.

Ein Übertragungsinhaber ist die Nutzeridentität, die vom BigQuery Data Transfer Service zur Autorisierung der Datenübertragung verwendet wird, 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 Ersteller der Übertragung 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 je nach 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 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 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-Agent, 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-Agenten außerdem die Rolle Dienst-Agent für BigQuery Data Transfer Service (roles/bigquerydatatransfer.serviceAgent) zu, die die Berechtigung iam.serviceAccounts.getAccessToken enthält. Mit dieser Berechtigung kann der Dienst-Agent des BigQuery Data Transfer Service das Dienstkonto des Übertragungsinhabers imitieren, 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-Dialogschnittstelle 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:

Erlauben Sie BigQuery Data Transfer Service den 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. 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-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 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.

Berechtigungsfehler beheben

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