Quando gli sviluppatori visualizzano l'anteprima e distribuiscono le applicazioni, possono utilizzare un service account esistente oppure App Design Center può creare automaticamente un nuovo account di servizio. Se vuoi che gli sviluppatori utilizzino il tuo account di servizio, devi:
- Aggiungi binding dei criteri IAM al account di servizio e all'account utente.
- Concedi al account di servizio i ruoli richiesti per il deployment di ogni risorsa.
- Aggiungi autorizzazioni al account di servizio per eseguire il deployment al di fuori del progetto in cui è stato creato.
- Aggiorna le policy dell'organizzazione per consentire l'utilizzo dei service account in più progetti.
Per configurare i tuoi service account:
Aggiungi un'associazione della policy IAM per il ruolo
roles/iam.serviceAccountUserper il service agent 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 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 account di servizio.
Aggiungi un'associazione della policy IAM per il ruolo di
roles/iam.serviceAccountUserper 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 account di servizio. Ad esempio,my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.USER_EMAIL: l'email dell'utente che esegue il deployment.
Nel progetto che contiene il account di servizio, aggiungi i binding dei criteri IAM per i ruoli dell'agente di servizio richiesti nel progetto di gestione che contiene il tuo 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 del progetto di gestione che contiene il tuo spazio.
Nel progetto che contiene il tuo account di servizio, assicurati che il vincolo della policy dell'organizzazione
iam.disableCrossProjectServiceAccountUsagenon venga applicato. Questo vincolo viene applicato per impostazione predefinita.Per disabilitare l'applicazione del vincolo della policy dell'organizzazione, esegui questo comando:
gcloud resource-manager org-policies disable-enforce \ iam.disableCrossProjectServiceAccountUsage \ --project=SERVICE_ACCOUNT_PROJECT_IDSostituisci quanto segue:
SERVICE_ACCOUNT_PROJECT_ID: l'ID progetto del progetto che contiene il tuo account di servizio.
Concedi al account di servizio i ruoli necessari per il deployment delle risorse nei progetti. I ruoli obbligatori vengono visualizzati quando gli sviluppatori eseguono 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 del progetto in cui stai eseguendo il deployment delle risorse.
App Design Center utilizza Infrastructure Manager per eseguire il deployment delle applicazioni nella console. Per utilizzare il tuo account di servizio per il deployment con Infrastructure Manager, completa i passaggi descritti in Concedere l'accesso ai progetti.
Se l'applicazione che stai deployment contiene componenti privati che hai importato tramite una connessione Developer Connect, procedi nel seguente modo:
Concedi al tuo account di servizio il ruolo
roles/iam.serviceAccountTokenCreatornel progetto in cui hai creato ilaccount di serviziot.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 del progetto che contiene il tuo account di servizio.SERVICE_ACCOUNT_EMAIL: L'indirizzo email del account di servizio. Ad esempio,my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.
Passaggi successivi
- Comprendi il ciclo di vita delle applicazioni in Gestisci applicazioni.
- Esegui il deployment di un'applicazione dalla console.