Dienstkonto Rollen zuweisen

Wenn Entwickler Anwendungen in der Vorschau ansehen und bereitstellen, können sie ein vorhandenes Dienstkonto verwenden. Alternativ kann App Design Center automatisch ein neues Dienstkonto erstellen. Wenn Entwickler Ihr Dienstkonto verwenden sollen, müssen Sie Folgendes tun:

  • 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 Berechtigungen hinzu, um es außerhalb des Projekts bereitzustellen, in dem es erstellt wurde.
  • Aktualisieren Sie Ihre Organisationsrichtlinien, damit Dienstkonten projektübergreifend verwendet werden können.

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 vornimmt.
  3. Fügen Sie im Projekt mit Ihrem Dienstkonto IAM-Richtlinienbindungen für die erforderlichen Dienst-Agent-Rollen im Verwaltungsprojekt mit Ihrem Bereich hinzu:

    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 Bereich enthält.
  4. Achten Sie darauf, dass die Einschränkung der Organisationsrichtlinie iam.disableCrossProjectServiceAccountUsage im Projekt mit Ihrem Dienstkonto nicht erzwungen wird. Diese Einschränkung wird standardmäßig erzwungen.

    Führen Sie den folgenden Befehl aus, um die Erzwingung der Einschränkung für die 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. Die erforderlichen Rollen werden angezeigt, wenn Entwickler Anwendungen bereitstellen.

    Fügen Sie beispielsweise die folgende Richtlinienbindung hinzu, um die Rolle roles/run.admin zu gewähren:

    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. 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 auf Projekte gewähren aus.

  7. Wenn die Anwendung, die Sie bereitstellen, 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