Der strenge Modus „Verhalte dich wie“ ermöglicht eine zusätzliche Sicherheitsprüfung für die folgenden Nutzeraktionen in Dataform:
- Repository erstellen oder aktualisieren
- Workflowkonfiguration erstellen oder aktualisieren
- Workflow-Aufruf erstellen
- Releasekonfiguration aktualisieren
Für diese zusätzliche Sicherheitsprüfung muss der Nutzer, der diese Aktionen ausführt, die Berechtigung iam.serviceAccounts.actAs für das effektive Dienstkonto haben. Das ist das Dienstkonto, dessen Anmeldedaten zum Ausführen von Workflows verwendet werden.
Weitere Informationen finden Sie unter Dienstkonten an Ressourcen anhängen.
Sie haben folgende Möglichkeiten, diese Berechtigungen zu aktivieren:
- Beim Erstellen eines Repositorys
- Vorhandenes Repository mit dem Repository-Flag
strict_act_as_checksaktualisieren
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Dienstkontonutzer (roles/iam.serviceAccountUser) für das benutzerdefinierte Dienstkonto zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen der Aufgaben in diesem Dokument benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Gültiges Dienstkonto ermitteln
Das effektive Dienstkonto, mit dem die Arbeitsabläufe ausgeführt werden, hängt vom Ressourcentyp und den folgenden Bedingungen ab:
| Ressourcentyp | Gültiges Dienstkonto |
|---|---|
| Repositories | Wenn Sie beim Erstellen des Repositorys ein benutzerdefiniertes Dienstkonto auswählen, wird das Andernfalls wird standardmäßig der Dataform-Dienst-Agent verwendet. |
| Workflowkonfiguration | Sie können ein benutzerdefiniertes Dienstkonto auswählen, wenn Sie die Workflowkonfiguration erstellen. Andernfalls wird standardmäßig der Dataform-Dienst-Agent des Repositorys verwendet. |
| Workflow-Aufruf | Wenn das Kompilierungsergebnis Wenn Sie einen Workflow-Aufruf aus einem Kompilierungsergebnis erstellen, wird das Andernfalls wird standardmäßig der Dataform-Dienst-Agent des Repositorys verwendet. |
IAM-Rolle „Dienstkontonutzer“ gewähren
Die Rolle Dienstkontonutzer (roles/iam.serviceAccountUser) enthält die Berechtigung iam.serviceAccounts.actAs, die für den strengen „Act-as“-Modus erforderlich ist. Wenn Sie die Dataform API verwenden, muss Ihnen die Rolle „Dienstkontonutzer“ für das effektive Dienstkonto basierend auf der projects.locations.repositories-Methode, die Sie aufrufen, zugewiesen sein:
createoderpatch- Wenn die Property
Repository.ServiceAccountfestgelegt ist, sollten Sie die Rolle „Dienstkontonutzer“ für diese Property haben. - Wenn Sie die Methode
patchaufrufen, sollten Sie die Rolle „Dienstkontonutzer“ für alle effektiven Dienstkonten in allen Workflowkonfigurationen im Repository haben.
- Wenn die Property
workflowConfigs.createoderworkflowConfigs.patch- Sie sollten die Rolle „Dienstkontonutzer“ für das effektive Dienstkonto haben, das in der Workflowkonfiguration verwendet wird.
releaseConfigs.patch- Sie sollten die Rolle „Dienstkontonutzer“ für alle effektiven Dienstkonten haben, die in den Workflowkonfigurationen mit dieser Release-Konfiguration verwendet werden.
workflowInvocations.create- Sie sollten die Rolle „Dienstkontonutzer“ für das effektive Dienstkonto haben, das beim Aufrufen des Workflows verwendet wird.
So weisen Sie einem benutzerdefinierten Dienstkonto die Rolle „Dienstkontonutzer“ zu:
Wechseln Sie in der Google Cloud Console zu IAM > Dienstkonten.
Wählen Sie ein Projekt aus.
Wählen Sie auf der Seite Dienstkonten für das Projekt „PROJECT_NAME“ Ihr benutzerdefiniertes Dienstkonto aus.
Rufen Sie Hauptkonten mit Zugriff auf und klicken Sie dann auf Zugriff gewähren.
Geben Sie im Feld Neue Hauptkonten die ID Ihres Dataform-Standarddienst-Agents ein.
Die ID Ihres Dataform-Standarddienst-Agents hat das folgende Format:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.comWählen Sie in der Liste Rolle auswählen die Rolle Dienstkontonutzer aus.
Klicken Sie auf Speichern.
Weitere Informationen finden Sie unter Erforderliche Rollen zum Erstellen einer Workflowkonfiguration und Erforderliche Rollen zum Erstellen einer Releasekonfiguration.
Auswirkungen des strengen „Act-as“-Modus auf automatische Releases und Ausführungen
Wenn der strikte „Act-as“-Modus aktiviert ist, wirkt sich das auf automatische Repository-Releases und automatische Workflow-Ausführungen aus:
Für Repositories, die nicht mit Drittanbieter-Repositories verbunden sind:
- Sie können in Release-Konfigurationen keinen Cron-Zeitplan für automatische Releases festlegen. Dies wird erzwungen, um zu verhindern, dass Codeänderungen, die von einem Nutzer vorgenommen wurden, der möglicherweise nicht die erforderlichen
iam.serviceAccounts.actAs-Berechtigungen für Downstream-Dienstkonten hat, automatisch bereitgestellt werden. - Geplante Workflowausführungen mit einem Cron-Zeitplan in Workflowkonfigurationen bleiben aktiviert. Damit diese automatisierten Ausführungen erfolgreich sind, müssen Sie dem Standard-Dataform-Dienst-Agent die Berechtigung
iam.serviceAccounts.actAsfür das effektive Dienstkonto erteilen, das in der Workflowkonfiguration angegeben ist.
Für Repositories, die mit Drittanbieter-Repositories verbunden sind:
- Geplante Releases und geplante Workflow-Ausführungen sind zulässig.
- Wenn Sie eine automatische Veröffentlichung über eine Releasekonfiguration oder eine automatische Ausführung über eine Workflowkonfiguration aktivieren möchten, müssen Sie dem Dataform-Standarddienst-Agent die Berechtigung
iam.serviceAccounts.actAsfür das entsprechende effektive Dienstkonto erteilen:- Bei einer automatischen Releasekonfiguration müssen Sie die Berechtigung für die effektiven Dienstkonten aller Workflowkonfigurationen erteilen, die durch diese Releasekonfiguration ausgelöst werden.
- Bei einer automatischen Workflowkonfiguration gewähren Sie die Berechtigung für das effektive Dienstkonto, das von dieser Workflowkonfiguration verwendet wird.
Nächste Schritte
- Informationen zum Erstellen eines Repositorys finden Sie unter Repository erstellen.
- Weitere Informationen zur Verwendung von Dataform mit BigQuery finden Sie unter Workflows.
- Informationen zum Erstellen einer Workflowkonfiguration finden Sie unter Läufe planen.
- Informationen zum Erstellen einer Releasekonfiguration finden Sie unter Kompilierungen konfigurieren.