Dienstkonten in Dataform
Wenn Sie Ihr erstes Dataform-Repository erstellen, generiert Dataform automatisch ein Standarddienstkonto. Dataform verwendet das Standarddienstkonto, um in Ihrem Namen mit BigQuery zu interagieren. Dem Dataform-Standarddienstkonto werden standardmäßig keine BigQuery-Rollen oder -Berechtigungen gewährt. Sie müssen dem Dataform-Standarddienstkonto den erforderlichen Zugriff gewähren.
Die standardmäßige Dataform-Dienstkonto-ID hat das folgende Format:
service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
Ersetzen Sie YOUR_PROJECT_NUMBER durch die numerische ID Ihres Google Cloud-Projekts. Ihre Google Cloud-Projekt-ID finden Sie im Dashboard der Google Cloud Console. Weitere Informationen finden Sie unter Projekte identifizieren.
Zusätzlich zum Dataform-Standarddienstkonto können Sie andere Dienstkonten verwenden, um Workflows in Ihrem Namen auszuführen. Sie können benutzerdefinierte Dienstkonten konfigurieren:
Auf Repository-Ebene, um alle Workflows in einem bestimmten Repository auszuführen.
Einzeln für jede Workflowkonfiguration.
Wenn Sie ein Dataform-Repository oder eine Workflowkonfiguration erstellen, können Sie ein beliebiges Dienstkonto auswählen, das mit Ihrem Google Cloud-Projekt verknüpft ist und auf das Sie Zugriff haben. Sie müssen die erforderlichen Berechtigungen für alle Dienstkonten konfigurieren, die mit Ihren Dataform-Ressourcen verknüpft sind.
Ein benutzerdefiniertes Dienstkonto, das mit einem Dataform-Repository verknüpft ist, wird nur zum Ausführen von Workflows aus diesem Repository verwendet. Alle anderen Repository-Vorgänge werden weiterhin vom Dataform-Standarddienstkonto ausgeführt.
Erforderliche Rollen für Dataform-Dienstkonten
Standard- und benutzerdefinierte Dienstkonten, die in Dataform verwendet werden, benötigen die folgenden BigQuery-IAM-Rollen, um Workflows in BigQuery ausführen zu können:
- BigQuery-Dateneditor für Projekte, für die Dataform Lese- und Schreibzugriff benötigt. Sie enthalten in der Regel das Projekt, in dem Ihr Dataform-Repository gehostet wird.
- BigQuery Data Viewer für Projekte, auf die Dataform Lesezugriff benötigt.
- BigQuery Job User in dem Projekt, in dem Ihr Dataform-Repository gehostet wird.
- BigQuery-Dateninhaber, wenn Sie BigQuery-Datasets abfragen möchten.
Darüber hinaus müssen Sie dem Dataform-Standarddienstkonto Service Account Token Creator(roles/iam.serviceAccountTokenCreator
) Zugriff auf alle benutzerdefinierten Dienstkonten gewähren, die Sie in Dataform verwenden möchten.
Sicherheitsaspekte für Dataform-Dienstkonten
Die Zuweisung der von Dataform erforderlichen Rollen zu einem Dienstkonto umfasst die folgenden Sicherheitsaspekte:
Jedes Dienstkonto, dem die erforderlichen Rollen zugewiesen sind, kann unabhängig von VPC Service Controls Zugriff auf BigQuery oder Secret Manager erhalten.
Weitere Informationen finden Sie unter VPC Service Controls für Dataform konfigurieren.
Jeder Nutzer mit der IAM-Berechtigung
dataform.repositories.create
kann mit dem Dataform-Standarddienstkonto und allen diesem Dienstkonto gewährten Berechtigungen Code ausführen.Weitere Informationen finden Sie unter Sicherheitsaspekte für Dataform-Berechtigungen.
Wenn Sie die Daten einschränken möchten, die ein Nutzer oder Dienstkonto in BigQuery lesen oder schreiben kann, können Sie ausgewählten BigQuery-Datasets oder -Tabellen detaillierte BigQuery-IAM-Berechtigungen erteilen. Weitere Informationen finden Sie unter Zugriff auf Datasets steuern und Zugriff auf Tabellen und Ansichten steuern.
Hinweise
Rufen Sie in der Google Cloud Console die Seite Dataform auf.
Wählen Sie ein Repository aus oder erstellen Sie ein Repository.
Einem in Dataform verwendeten Dienstkonto die erforderlichen BigQuery-Rollen zuweisen
So weisen Sie Ihrem Dataform-Standarddienstkonto oder einem benutzerdefinierten Dienstkonto, das Sie in Dataform verwenden möchten, die erforderlichen BigQuery-IAM-Rollen zu:
Öffnen Sie in der Google Cloud Console die Seite IAM.
Klicken Sie auf Zugriff erlauben.
Geben Sie im Feld Neue Hauptkonten die Dienstkonto-ID ein.
Wählen Sie in der Drop-down-Liste Rolle auswählen die Rolle BigQuery-Jobnutzer aus.
Klicken Sie auf Weitere Rolle hinzufügen und wählen Sie in der Drop-down-Liste Rolle auswählen die Rolle BigQuery-Datenbearbeiter aus.
Klicken Sie auf Weitere Rolle hinzufügen und wählen Sie in der Drop-down-Liste Rolle auswählen die Rolle BigQuery-Datenbetrachter aus.
Klicken Sie auf Speichern.
Einem benutzerdefinierten Dienstkonto Zugriff auf die Tokenerstellung gewähren
Damit Sie ein benutzerdefiniertes Dienstkonto in Dataform verwenden können, muss das Dataform-Standarddienstkonto auf das benutzerdefinierte Dienstkonto zugreifen können. Um diesen Zugriff zu gewähren, müssen Sie dem benutzerdefinierten Dienstkonto das Dataform-Standarddienstkonto als Hauptkonto mit der Rolle Service Account Token Creator hinzufügen.
So gewähren Sie dem Dataform-Standarddienstkonto Zugriff auf ein benutzerdefiniertes Dienstkonto:
Rufen Sie in der Google Cloud Console IAM > Dienstkonten auf.
Wählen Sie ein Projekt aus.
Wählen Sie auf der Seite Dienstkonten für Projekt YOUR_PROJECT_NAME ein Dienstkonto aus.
Gehen Sie zu Berechtigungen und klicken Sie dann auf Zugriff gewähren.
Geben Sie im Feld Neue Hauptkonten die standardmäßige Dataform-Dienstkonto-ID ein.
Wählen Sie in der Drop-down-Liste Rolle auswählen die Rolle Ersteller von Dienstkonto-Tokens aus.
Klicken Sie auf Speichern.
Nächste Schritte
- Weitere Informationen zu BigQuery-IAM-Rollen und -Berechtigungen finden Sie unter Zugriffssteuerung mit IAM.
- Weitere Informationen zum Gewähren detaillierter Berechtigungen für BigQuery-Datasets finden Sie unter Zugriff auf Datasets steuern.
- Weitere Informationen zum Gewähren detaillierter Berechtigungen für BigQuery-Tabellen finden Sie unter Zugriff auf Tabellen und Ansichten steuern.
- Informationen zum Steuern des Zugriffs auf Dataform mit VPC Service Controls finden Sie unter VPC Service Controls für Dataform konfigurieren.