Cuando los desarrolladores previsualizan y despliegan aplicaciones, pueden usar una cuenta de servicio o bien App Design Center puede crear automáticamente una cuenta de servicio. Si quieres que los desarrolladores usen tu cuenta de servicio, debes hacer lo siguiente:
- Añade enlaces de políticas de IAM a la cuenta de servicio y a la cuenta de usuario.
- Asigna a la cuenta de servicio los roles necesarios para desplegar cada recurso.
- Añade permisos a la cuenta de servicio para que se pueda implementar fuera del proyecto en el que se creó.
- Actualiza tus políticas de organización para permitir que se usen cuentas de servicio en varios proyectos.
Para configurar tus cuentas de servicio, sigue estos pasos:
Añade un enlace de política de gestión de identidades y accesos para el rol
roles/iam.serviceAccountUserdel agente de servicio a tu cuenta de servicio: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"Haz los cambios siguientes:
SERVICE_ACCOUNT_EMAIL: el correo de tu cuenta de servicio. Por ejemplo,my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.SERVICE_ACCOUNT_PROJECT_ID: el ID del proyecto que contiene tu cuenta de servicio.SERVICE_ACCOUNT_PROJECT_NUMBER: el número del proyecto que contiene tu cuenta de servicio.
Añade un enlace de política de gestión de identidades y accesos para el rol de
roles/iam.serviceAccountUsera un usuario de tu cuenta de servicio:gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"Haz los cambios siguientes:
SERVICE_ACCOUNT_EMAIL: el correo de tu cuenta de servicio. Por ejemplo,my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.USER_EMAIL: el correo del usuario que realiza la implementación.
En el proyecto que tenga tu cuenta de servicio, añade enlaces de políticas de gestión de identidades y accesos para los roles de agente de servicio necesarios en el proyecto de gestión que contenga tu espacio:
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"Haz los cambios siguientes:
SERVICE_ACCOUNT_PROJECT_ID: el ID del proyecto que contiene tu cuenta de servicio.MANAGEMENT_PROJECT_NUMBER: número del proyecto de gestión que contiene tu espacio.
En el proyecto que tiene tu cuenta de servicio, comprueba que no se haya aplicado la
iam.disableCrossProjectServiceAccountUsagerestricción de la política de organizacióniam.disableCrossProjectServiceAccountUsage. Esta restricción se aplica de forma predeterminada.Para inhabilitar la aplicación de la restricción de política de organización, ejecuta el siguiente comando:
gcloud resource-manager org-policies disable-enforce \ iam.disableCrossProjectServiceAccountUsage \ --project=SERVICE_ACCOUNT_PROJECT_IDHaz los cambios siguientes:
SERVICE_ACCOUNT_PROJECT_ID: el ID del proyecto que contiene tu cuenta de servicio.
Concede a tu cuenta de servicio los roles necesarios para desplegar recursos en proyectos. Los roles obligatorios se muestran cuando los desarrolladores implementan aplicaciones.
Por ejemplo, para asignar el rol
roles/run.admin, añade el siguiente enlace de política: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"Haz los cambios siguientes:
SERVICE_ACCOUNT_PROJECT_ID: el ID del proyecto que contiene tu cuenta de servicio.DEPLOYMENT_PROJECT_NUMBER: el número del proyecto en el que vas a implementar los recursos.
El Centro de diseño de aplicaciones usa Infrastructure Manager para implementar aplicaciones en la consola. Para usar tu propia cuenta de servicio para implementar con Infrastructure Manager, sigue los pasos que se indican en Conceder acceso a proyectos.
Si la aplicación que vas a implementar contiene componentes privados que has importado a través de una conexión de Developer Connect, haz lo siguiente:
Asigna a tu cuenta de servicio el rol
roles/iam.serviceAccountTokenCreatoren el proyecto en el que la has creado.gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/iam.serviceAccountTokenCreator"Haz los cambios siguientes:
SERVICE_ACCOUNT_PROJECT_ID: el ID del proyecto que contiene tu cuenta de servicio.SERVICE_ACCOUNT_EMAIL: el correo de tu cuenta de servicio. Por ejemplo,my-service-account@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com.
Siguientes pasos
- Consulta el ciclo de vida de las aplicaciones en Gestionar aplicaciones.
- Desplegar una aplicación desde la consola.