Workflowberechtigung für den Zugriff auf Google Cloud-Ressourcen gewähren

Workflows verwenden Dienstkonten, um Workflows Zugriff auf Google Cloud-Ressourcen zu gewähren. Dienstkonten sind spezielle Konten, die als Identität für eine Nicht-Person dienen, z. B. als Funktion, Anwendung oder VM. Sie bieten Ihnen die Möglichkeit, diese Nicht-Personen zu authentifizieren. Ein Dienstkonto oder Hauptkonto kann als Identität und Ressource betrachtet werden.

  • Wenn Sie ein Dienstkonto als Identität betrachten, können Sie einem Dienstkonto eine Rolle zuweisen, sodass es auf eine Ressource wie einen Workflow zugreifen kann.

  • Wenn Sie ein Dienstkonto als Ressource betrachten, können Sie anderen Nutzern Rollen für den Zugriff oder die Verwaltung dieses Dienstkontos gewähren.

Ein Dienstkonto wird durch seine E-Mail-Adresse definiert, die für das Konto spezifisch ist.

Weitere Informationen zum Einrichten der Authentifizierung mit einer Produktionsanwendung finden Sie unter Authentifizierung als Dienstkonto.

Standarddienstkonto

Jeder Workflow ist zum Erstellen des Workflows mit einem IAM-Dienstkonto (Identity and Access Management) verknüpft. Wenn Sie beim Erstellen eines Workflows kein Dienstkonto angeben, verwendet der Workflow das Compute Engine-Standarddienstkonto für seine Identität. Du kannst ein mit dem Workflow verknüpftes Dienstkonto bestätigen. Weitere Informationen in diesem Dokument finden Sie unter Verknüpftes Dienstkonto bestätigen.

Wir empfehlen, das Standarddienstkonto nur zum Testen und Entwickeln zu verwenden.

Dienstkontoberechtigungen

Da es sich bei Dienstkonten um Identitäten handelt, können Sie einem Dienstkonto Zugriff auf Ressourcen in Ihrem Projekt gewähren, indem Sie ihm eine Rolle zuweisen, wie Sie es auch für jedes andere Hauptkonto tun würden. Wenn du beispielsweise möchtest, dass dein Workflow Logs an Cloud Logging sendet, muss dem Dienstkonto, das den Workflow ausführt, eine Rolle mit der Berechtigung logging.logEntries.create gewährt worden sein (z. B. die Rolle Logs Writer).

Für das Workflow-Dienstkonto ist die Rolle workflows.invoker nicht erforderlich, es sei denn, der Workflow ruft sich selbst oder andere Workflows auf (d. h. erstellt neue Workflowausführungen). Weitere Informationen finden Sie unter Workflows aufrufen.

Weitere Informationen zum Gewähren von Rollen für Hauptkonten, einschließlich Dienstkonten, finden Sie unter Zugriff gewähren, ändern und widerrufen.

Dienstkonten an Ressourcen anhängen

Zum Erstellen einer Ressource und zum Anhängen eines Dienstkontos benötigen Sie Berechtigungen zum Erstellen dieser Ressource und zur Übernahme der Identität des Dienstkontos, das Sie an die Ressource anhängen. Berechtigungen zum Übernehmen der Identität des Dienstkontos und indirekter Zugriff auf alle Ressourcen, auf die das Dienstkonto zugreifen kann, werden von allen Rollen gewährt, die die Berechtigung iam.serviceAccounts.actAs enthalten.

Weitere Informationen finden Sie unter Identitätswechsel für Dienstkonten verwalten.

Cloud Functions (2. Generation) aufrufen

In Cloud Functions (2. Generation) stehen Aufrufberechtigungen zur Verwaltung des zugrunde liegenden Cloud Run-Dienstes zur Verfügung. Wenn in Ihrem Workflow ein Cloud Functions-Dienst der 2. Generation aufgerufen wird, müssen Sie dem Dienstkonto des Anrufers die Rolle „Cloud Functions-Aufrufer“ (roles/cloudfunctions.invoker) nicht zuweisen. Stattdessen müssen Sie die Rolle „Cloud Run-Aufrufer“ (roles/run.invoker) zuweisen.

Weitere Informationen finden Sie unter Unterschiede in Cloud Functions (2. Generation).

Verknüpftes Dienstkonto eines Workflows prüfen

Sie können prüfen, welches Dienstkonto mit einem bestimmten Workflow verknüpft ist.

Console

  1. Rufe in der Google Cloud Console die Seite Workflows auf:
    Zu den Workflows

  2. Klicken Sie auf der Seite Workflows auf den Namen des Workflows.

  3. Klicken Sie auf der Seite Workflowdetails auf den Tab Details.

    Das mit dem Workflow verknüpfte Dienstkonto wird angezeigt.

gcloud

  1. Öffnen Sie ein Terminalfenster.

  2. Geben Sie den folgenden Befehl ein:

    gcloud workflows describe MY_WORKFLOW
    

    Ersetzen Sie MY_WORKFLOW durch den Namen des Workflows.

    Es wird eine vollständige Workflowbeschreibung mit dem zugehörigen Dienstkonto zurückgegeben. Beispiel:

    createTime: '2020-06-05T23:45:34.154213774Z'
    name: projects/myProject/locations/us-central1/workflows/myWorkflow
    serviceAccount: projects/my-project/serviceAccounts/012345678901-compute@developer.gserviceaccount.com
    sourceContents: [...]

Weitere Informationen