Konten für die Datenübertragung autorisieren

Dieses Dokument bietet eine Übersicht über die Interaktion von BigQuery Data Transfer Service mit verschiedenen Kontotypen, die Arten der Kontoautorisierung, die Sie für allgemeine Übertragungsaufgaben benötigen, sowie 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

BigQuery Data Transfer Service automatisiert Datenübertragungen aus verschiedenen Datenquellen zu 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 steuern und verwalten zu können:

  • Die Berechtigung bigquery.transfers.update, mit der Nutzer folgende Aufgaben ausführen können:
    • Richten Sie Datenübertragungskonfigurationen ein.
    • Vorhandene Übertragungen verwalten, z. B. durch Aktualisieren, Deaktivieren oder Löschen einer Übertragung
  • 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 Logs der Übertragungsausführung aufrufen.

Wenn Sie die Übertragung mit der Google Cloud Console oder dem bq-Befehlszeilentool erstellen, benötigen Sie außerdem die Berechtigung bigquery.transfers.get.

Die Berechtigung bigquery.transfers.update ist zum Einrichten einer geplanten Abfrage nicht erforderlich. 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. In der Datenebene kann BigQuery Data Transfer Service Datenübertragungen im Offlinemodus ausführen und Übertragungsausführungen basierend auf einem benutzerdefinierten 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 erforderlichen Berechtigungen finden Sie in den folgenden Abschnitten dieses Leitfadens:

Ersteller der Übertragung im Vergleich zu Inhaber der Übertragung

Ein Übertragungsersteller ist die Nutzeridentität, die die Übertragungskonfiguration erstellt und eingerichtet hat. Ein Nutzer von BigQuery Data Transfer Service und ein Übertragungsersteller können ein Nutzerkonto oder ein Dienstkonto sein.

Ein Übertragungsinhaber bezieht sich auf die Nutzeridentität, die der BigQuery Data Transfer Service zum Autorisieren der Datenübertragung verwendet, 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 zwingend 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 in dem neuen Konto angemeldet sein, wenn Sie die Anmeldedaten aktualisieren.

Lesezugriff-Autorisierung für externe Datenquellen

Die Berechtigungen, die zum Lesen von Quelldaten erforderlich sind, können von Datenquelle zu Datenquelle variieren. Wenn Sie beispielsweise auf Google Ads zugreifen möchten, sind Lesezugriffsberechtigungen für die Google Ads-Kundennummer erforderlich. Ebenso erfordert Google Play den Berichtszugriff in der Google Play Console. 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. 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-Agent auch die Rolle Dienst-Agent für BigQuery Data Transfer (roles/bigquerydatatransfer.serviceAgent) zu, die die Berechtigung iam.serviceAccounts.getAccessToken enthält. Mit dieser Berechtigung kann der Dienst-Agent von BigQuery Data Transfer Service die Identität des Dienstkontos des Übertragungsinhabers übernehmen, 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 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.

Wenn der Übertragungsinhaber durch Aktualisieren der Anmeldedaten geändert wird, ist auch eine manuelle Genehmigung erforderlich, wenn 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:

BigQuery Data Transfer Service den Zugriff auf Google Ads gewähren

So widerrufen Sie die erteilten Berechtigungen:

  1. Rufen Sie die Google-Kontoseite auf.
  2. Klicken Sie auf BigQuery Data Transfer Service.
  3. Klicken Sie zum Widerrufen der Berechtigungen auf Zugriff entfernen. Entfernen Sie die Zugriffsrechte, die 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 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.

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 von 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 erfolgreich 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 Übertragung Probleme mit der Autorisierung oder Berechtigungen auftreten, finden Sie weitere Informationen unter Probleme mit Autorisierung und Berechtigungen.