Concedi ruoli al tuo account di servizio

Quando visualizzi l'anteprima ed esegui il deployment delle applicazioni, puoi utilizzare un service account esistente oppure Application Design Center può creare automaticamente un account di servizio.

Per eseguire il deployment utilizzando il tuo account di servizio, devi concedere i ruoli e le autorizzazioni Identity and Access Management necessari. Questo documento mostra come concedere i ruoli e configurare il account di servizio, tra cui:

  • Aggiungi le associazioni delle policy IAM al account di servizio e all'account utente.
  • Concedi al account di servizio i ruoli richiesti per eseguire il deployment di ogni risorsa.
  • Aggiungi le autorizzazioni al account di servizio per eseguire il deployment al di fuori del progetto in cui è stato creato il account di servizio.
  • Aggiorna le policy dell'organizzazione per consentire l'utilizzo dei service account in più progetti.

Configura il account di servizio

Per configurare i service account:

  1. Aggiungi un'associazione della policy IAM per il ruolo roles/iam.serviceAccountUser per l'agente di servizio al tuo service account:

    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"
    

    Sostituisci quanto segue:

    • SERVICE_ACCOUNT_EMAIL: l'indirizzo email del tuo account di servizio. Ad esempio, my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.
    • SERVICE_ACCOUNT_PROJECT_ID: l'ID progetto del progetto che contiene il tuo account di servizio.
    • SERVICE_ACCOUNT_PROJECT_NUMBER: il numero del progetto che contiene il tuo account di servizio.
  2. Aggiungi un'associazione della policy IAM per il ruolo roles/iam.serviceAccountUser per un utente al tuo account di servizio:

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

    Sostituisci quanto segue:

    • SERVICE_ACCOUNT_EMAIL: l'indirizzo email del tuo account di servizio. Ad esempio, my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.
    • USER_EMAIL: l'indirizzo email dell'utente che esegue il deployment.
  3. Nel progetto che contiene il tuo account di servizio, aggiungi le associazioni delle policy IAM per i ruoli degli agenti di servizio richiesti nel progetto di gestione che contiene lo spazio:

    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"
    

    Sostituisci quanto segue:

    • SERVICE_ACCOUNT_PROJECT_ID: l'ID progetto del progetto che contiene il tuo account di servizio.
    • MANAGEMENT_PROJECT_NUMBER: il numero di progetto del progetto di gestione che contiene lo spazio.
  4. Nel progetto che contiene il tuo account di servizio, assicurati che il vincolo della policy dell'organizzazione iam.disableCrossProjectServiceAccountUsage non venga applicato. Questo vincolo viene applicato per impostazione predefinita.

    Per disattivare l'applicazione del vincolo della policy dell'organizzazione, esegui il seguente comando:

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

    Sostituisci quanto segue:

    • SERVICE_ACCOUNT_PROJECT_ID: l'ID progetto del progetto che contiene il tuo account di servizio.
  5. Concedi al tuo account di servizio i ruoli necessari per eseguire il deployment delle risorse nei progetti. App Design Center mostra i ruoli richiesti nella console Google Cloud quando esegui il deployment delle applicazioni.

    Ad esempio, per concedere il ruolo roles/run.admin, aggiungi la seguente associazione della policy:

    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"
    

    Sostituisci quanto segue:

    • SERVICE_ACCOUNT_PROJECT_ID: l'ID progetto del progetto che contiene il tuo account di servizio.
    • DEPLOYMENT_PROJECT_NUMBER: il numero di progetto in cui stai eseguendo il deployment delle risorse.
  6. App Design Center utilizza Infrastructure Manager per eseguire il deployment delle applicazioni nella console. Per utilizzare il tuo service account per il deployment con Infrastructure Manager, completa i passaggi descritti in Concedi l'accesso a più progetti.

  7. Se l'applicazione di cui stai eseguendo il deployment contiene componenti privati che hai importato tramite una connessione Developer Connect, segui questi passaggi:

    Concedi al tuo account di servizio il ruolo roles/iam.serviceAccountTokenCreator nel progetto in cui hai creato il account di servizio.

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

    Sostituisci quanto segue:

    • SERVICE_ACCOUNT_PROJECT_ID: l'ID progetto che contiene il tuo account di servizio.
    • SERVICE_ACCOUNT_EMAIL: l'indirizzo email del tuo account di servizio. Ad esempio, my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.

Passaggi successivi