Dienstkonto Rollen zuweisen

Wenn Sie Anwendungen in der Vorschau ansehen und bereitstellen, können Sie ein vorhandenes Dienstkonto verwenden oder das Application Design Center kann automatisch ein Dienstkonto erstellen.

Wenn Sie die Bereitstellung mit Ihrem eigenen Dienstkonto vornehmen möchten, müssen Sie die erforderlichen IAM-Rollen und -Berechtigungen (Identity and Access Management) gewähren. In diesem Dokument erfahren Sie, wie Sie Rollen zuweisen und Ihr Dienstkonto konfigurieren, einschließlich der folgenden Aufgaben:

  • Fügen Sie dem Dienstkonto und dem Nutzerkonto IAM-Richtlinienbindungen hinzu.
  • Weisen Sie dem Dienstkonto die Rollen zu, die für die Bereitstellung der einzelnen Ressourcen erforderlich sind.
  • Fügen Sie dem Dienstkonto Bereitstellungsberechtigungen außerhalb des Projekts hinzu, in dem das Dienstkonto erstellt wurde.
  • Aktualisieren Sie Ihre Organisationsrichtlinien, damit Dienstkonten projektübergreifend verwendet werden können.

Dienstkonto konfigurieren

So konfigurieren Sie Ihre Dienstkonten:

  1. Fügen Sie Ihrem Dienstkonto eine IAM-Richtlinienbindung für die Rolle roles/iam.serviceAccountUser für den Dienst-Agent hinzu:

    gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
        --member="serviceAccount:service-SERVICE_ACCOUNT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \
        --role="roles/iam.serviceAccountUser"
    

    Ersetzen Sie Folgendes:

    • SERVICE_ACCOUNT_EMAIL: Die E-Mail-Adresse Ihres Dienstkontos. Beispiel: my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.
    • SERVICE_ACCOUNT_PROJECT_ID: Die Projekt-ID des Projekts, das Ihr Dienstkonto enthält.
    • SERVICE_ACCOUNT_PROJECT_NUMBER: Die Projektnummer des Projekts, das Ihr Dienstkonto enthält.
  2. Fügen Sie Ihrem Dienstkonto eine IAM-Richtlinienbindung für die Rolle roles/iam.serviceAccountUser für einen Nutzer hinzu:

    gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
        --member="user:USER_EMAIL" \
        --role="roles/iam.serviceAccountUser"
    

    Ersetzen Sie Folgendes:

    • SERVICE_ACCOUNT_EMAIL: Die E-Mail-Adresse Ihres Dienstkontos. Beispiel: my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.
    • USER_EMAIL: Die E-Mail-Adresse des Nutzers, der die Bereitstellung ausführt.
  3. Fügen Sie im Projekt, das Ihr Dienstkonto enthält, IAM-Richtlinienbindungen für die erforderlichen Dienst-Agent-Rollen im Verwaltungsprojekt hinzu, das Ihren Space enthält:

    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member="serviceAccount:service-MANAGEMENT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \
        --role="roles/apphub.editor"
    
    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member="serviceAccount:service-MANAGEMENT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \
        --role="roles/config.agent"
    
    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member="serviceAccount:service-MANAGEMENT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \
        --role="roles/serviceusage.serviceUsageAdmin"
    

    Ersetzen Sie Folgendes:

    • SERVICE_ACCOUNT_PROJECT_ID: Die Projekt-ID des Projekts, das Ihr Dienstkonto enthält.
    • MANAGEMENT_PROJECT_NUMBER: Die Projektnummer des Verwaltungsprojekts, das Ihren Space enthält.
  4. Achten Sie darauf, dass die Einschränkung der Organisationsrichtlinie iam.disableCrossProjectServiceAccountUsage im Projekt mit dem Dienstkonto nicht erzwungen wird. Diese Einschränkung wird standardmäßig erzwungen.

    Führen Sie den folgenden Befehl aus, um die Erzwingung der Einschränkung der Organisationsrichtlinie zu deaktivieren:

    gcloud resource-manager org-policies disable-enforce \
       iam.disableCrossProjectServiceAccountUsage \
       --project=SERVICE_ACCOUNT_PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • SERVICE_ACCOUNT_PROJECT_ID: Die Projekt-ID des Projekts, das Ihr Dienstkonto enthält.
  5. Weisen Sie Ihrem Dienstkonto die Rollen zu, die zum Bereitstellen von Ressourcen in Projekten erforderlich sind. Im App Design Center werden die erforderlichen Rollen in der Google Cloud Console angezeigt, wenn Sie Anwendungen bereitstellen.

    Fügen Sie beispielsweise die folgende Richtlinienbindung hinzu, um die Rolle roles/run.admin zuzuweisen:

    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member="serviceAccount:service-DEPLOYMENT_PROJECT_NUMBER@gcp-sa-designcenter.iam.gserviceaccount.com" \
        --role="roles/run.admin"
    

    Ersetzen Sie Folgendes:

    • SERVICE_ACCOUNT_PROJECT_ID: Die Projekt-ID des Projekts, das Ihr Dienstkonto enthält.
    • DEPLOYMENT_PROJECT_NUMBER: Die Projektnummer des Projekts, in dem Sie Ressourcen bereitstellen.
  6. Das App Design Center verwendet Infrastructure Manager, um Anwendungen in der Console bereitzustellen. Wenn Sie Ihr eigenes Dienstkonto für die Bereitstellung mit Infrastructure Manager verwenden möchten, führen Sie die Schritte unter Zugriff über mehrere Projekte hinweg gewähren aus.

  7. Wenn die von Ihnen bereitgestellte Anwendung private Komponenten enthält, die Sie über eine Developer Connect-Verbindung importiert haben, gehen Sie so vor:

    Weisen Sie Ihrem Dienstkonto die Rolle roles/iam.serviceAccountTokenCreator für das Projekt zu, in dem Sie das Dienstkonto erstellt haben.

    gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
        --role="roles/iam.serviceAccountTokenCreator"
    

    Ersetzen Sie Folgendes:

    • SERVICE_ACCOUNT_PROJECT_ID: Die Projekt-ID des Projekts, das Ihr Dienstkonto enthält.
    • SERVICE_ACCOUNT_EMAIL: Die E-Mail-Adresse Ihres Dienstkontos. Beispiel: my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.

Nächste Schritte