En este documento se explica cómo configurar tu cuenta de servicio de Cloud Build para suplantar cuentas de servicio de Runtime, Compute Engine o App Engine, de forma que puedas desplegar imágenes en servicios gestionados.
Información general
Cuando se implementa una imagen en servicios gestionados específicos, la imagen se ejecuta con la identidad de la cuenta de servicio de ese servicio gestionado. Como Cloud Build puede desplegar nuevas instancias o versiones automáticamente, la cuenta de servicio de Cloud Build que hayas especificado o la cuenta de servicio de Cloud Build predeterminada deben poder suplantar la cuenta de servicio de tu servicio gestionado. Este requisito se aplica al implementar en los siguientes servicios gestionados:
Servicio administrado | Cuenta de servicio |
---|---|
App Engine | Cuenta de servicio de App Engine |
Cloud Run Functions | Cuenta de servicio de tiempo de ejecución |
Cloud Run | Identidad de servicio |
Compute Engine | Cuenta de servicio de Compute Engine |
Configurar la suplantación de identidad de cuenta de servicio
Para configurar tu cuenta de servicio de Cloud Build para que suplante la identidad de otra cuenta de servicio, haz lo siguiente:
consola
Ve a la página settings Cloud Build Permisos.
Selecciona tu cuenta de servicio de Cloud Build.
Habilita el rol de gestión de identidades y accesos necesario para tu servicio gestionado:
Servicio administrado Rol obligatorio App Engine Administrador de App Engine ( roles/appengine.appAdmin
)Cloud Run Functions Desarrollador de Cloud Functions ( roles/cloudfunctions.developer
)Cloud Run Administrador de Cloud Run ( roles/run.admin
)Compute Engine Administrador de instancias de Compute v1 ( roles/compute.instanceAdmin.v1
)Cloud Build muestra el panel Asignar rol de usuario de cuenta de servicio.
Elige la cuenta de servicio cuya identidad quieras usar. Por ejemplo, si tienes previsto desplegar en Compute Engine y has habilitado el rol Administrador de instancias de Compute (v. 1), debes elegir la cuenta de servicio de Compute Engine que quieras que suplante tu cuenta de servicio de Cloud Build.
Haz clic en Conceder permiso.
CLI de gcloud
En Google Cloud CLI, escribe lo siguiente:
gcloud iam service-accounts add-iam-policy-binding \
SERVICE_ACCOUNT_TO_IMPERSONATE \
--member="CLOUD_BUILD_SERVICE_ACCOUNT" \
--role="roles/iam.serviceAccountUser"
Donde:
- SERVICE_ACCOUNT_TO_IMPERSONATE es la cuenta de servicio que quieres suplantar.
- CLOUD_BUILD_SERVICE_ACCOUNT es tu cuenta de servicio de Cloud Build.
Cloud Build asigna a tu cuenta de servicio de Cloud Build el rol Usuario de cuenta de servicio (roles/iam.serviceAccountUser
) en la cuenta de servicio que quieras suplantar.
El rol Usuario de cuenta de servicio permite que un principal asigne una cuenta de servicio a un recurso, lo que permite que tu cuenta de servicio de Cloud Build suplante la identidad de la cuenta de servicio gestionada que elijas. Para obtener más información, consulta los artículos Rol Usuario de cuenta de servicio y Asociar cuentas de servicio a recursos de la documentación de Gestión de Identidades y Accesos.