Lorsque les développeurs prévisualisent et déploient des applications, ils peuvent utiliser un compte de service existant. L'App Design Center peut également créer automatiquement un compte de service. Si vous souhaitez que les développeurs utilisent votre compte de service, vous devez procéder comme suit :
- Ajoutez des liaisons de stratégie IAM au compte de service et au compte utilisateur.
- Attribuez au compte de service les rôles requis pour déployer chaque ressource.
- Ajoutez des autorisations au compte de service pour déployer en dehors du projet dans lequel il a été créé.
- Mettez à jour les règles de votre organisation pour autoriser l'utilisation des comptes de service dans plusieurs projets.
Pour configurer vos comptes de service, procédez comme suit :
Ajoutez une liaison de stratégie IAM pour le rôle
roles/iam.serviceAccountUserde l'agent de service à votre compte de service :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"Remplacez les éléments suivants :
SERVICE_ACCOUNT_EMAIL: adresse e-mail de votre compte de service. Exemple :my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.comSERVICE_ACCOUNT_PROJECT_ID: ID du projet contenant votre compte de service.SERVICE_ACCOUNT_PROJECT_NUMBER: numéro du projet contenant votre compte de service.
Ajoutez une liaison de stratégie IAM pour le rôle
roles/iam.serviceAccountUserd'un utilisateur à votre compte de service :gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"Remplacez les éléments suivants :
SERVICE_ACCOUNT_EMAIL: adresse e-mail de votre compte de service. Exemple :my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.comUSER_EMAIL: adresse e-mail de l'utilisateur qui effectue le déploiement.
Dans le projet qui contient votre compte de service, ajoutez des liaisons de stratégie IAM pour les rôles d'agent de service requis dans le projet de gestion qui contient votre espace :
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"Remplacez les éléments suivants :
SERVICE_ACCOUNT_PROJECT_ID: ID du projet contenant votre compte de service.MANAGEMENT_PROJECT_NUMBER: numéro de projet du projet de gestion contenant votre espace.
Dans le projet contenant votre compte de service, assurez-vous que la contrainte de règle d'administration
iam.disableCrossProjectServiceAccountUsagen'est pas appliquée. Cette contrainte est appliquée par défaut.Pour désactiver l'application de la contrainte de règle d'administration, exécutez la commande suivante :
gcloud resource-manager org-policies disable-enforce \ iam.disableCrossProjectServiceAccountUsage \ --project=SERVICE_ACCOUNT_PROJECT_IDRemplacez les éléments suivants :
SERVICE_ACCOUNT_PROJECT_ID: ID du projet contenant votre compte de service.
Attribuez à votre compte de service les rôles requis pour déployer des ressources dans les projets. Les rôles requis s'affichent lorsque les développeurs déploient des applications.
Par exemple, pour accorder le rôle
roles/run.admin, ajoutez la liaison de stratégie suivante :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"Remplacez les éléments suivants :
SERVICE_ACCOUNT_PROJECT_ID: ID du projet contenant votre compte de service.DEPLOYMENT_PROJECT_NUMBER: numéro du projet dans lequel vous déployez des ressources.
App Design Center utilise Infrastructure Manager pour déployer des applications dans la console. Pour utiliser votre propre compte de service afin de déployer des ressources avec Infrastructure Manager, suivez la procédure décrite dans Accorder l'accès aux projets.
Si l'application que vous déployez contient des composants privés que vous avez importés via une connexion Developer Connect, procédez comme suit :
Attribuez le rôle
roles/iam.serviceAccountTokenCreatorà votre compte de service dans le projet où vous l'avez créé.gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/iam.serviceAccountTokenCreator"Remplacez les éléments suivants :
SERVICE_ACCOUNT_PROJECT_ID: ID du projet contenant votre compte de service.SERVICE_ACCOUNT_EMAIL: adresse e-mail de votre compte de service. Exemple :my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com
Étapes suivantes
- Comprendre le cycle de vie des applications dans Gérer les applications.
- Déployez une application depuis la console.