Durante las implementaciones de origen, Cloud Run aprovecha Cloud Build cuando se compila y se implementa el servicio de Cloud Run.
En esta página, se muestra cómo configurar una cuenta de servicio especificada por el usuario para que Cloud Build la use cuando ejecute compilaciones del servicio en tu nombre.
Esta guía es relevante para los desarrolladores de plataformas que implementan
servicios o
funciones de Cloud Run con Google Cloud CLI y necesitan personalizar la
cuenta de servicio de compilación que usa Cloud Build. La marca de la CLI de gcloud de la cuenta del servicio de compilación es compatible con las implementaciones de origen (--source
), pero no con las implementaciones de imágenes de contenedor (--image
).
Antes de comenzar
Habilita la API de Cloud Build:
gcloud services enable cloudbuild.googleapis.com
Crea una cuenta de servicio, o ten una existente, para usarla como cuenta de servicio de Cloud Build.
Roles obligatorios
Tú o tu administrador deben otorgar a la cuenta del implementador y a la cuenta de servicio de Cloud Build los siguientes roles de IAM.
Haz clic para ver los roles necesarios para la cuenta del implementador
Para obtener los permisos que necesitas para compilar e implementar desde la fuente, pídele a tu administrador que te otorgue los siguientes roles de IAM:
- Desarrollador de origen de Cloud Run (
roles/run.sourceDeveloper
) en tu proyecto - Consumidor de Service Usage (
roles/serviceusage.serviceUsageConsumer
) en tu proyecto - Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser
) en la identidad del servicio de Cloud Run
Haz clic para ver los roles necesarios para la cuenta de servicio de Cloud Build
Para permitir que la cuenta de servicio de Cloud Build realice la compilación cuando se implemente una función, pídele a tu administrador que otorgue el rol de Creador de Cloud Run (roles/run.builder
) a la cuenta de servicio de Cloud Build del proyecto.
Para obtener una lista de los roles y los permisos de IAM asociados con Cloud Run, consulta los roles de IAM de Cloud Run y los permisos de IAM de Cloud Run. Si tu servicio de Cloud Run interactúa con las APIs deGoogle Cloud , como las bibliotecas cliente de Cloud, consulta la guía de configuración de identidades del servicio. Para obtener más información sobre cómo otorgar roles, consulta permisos de implementación y administra el acceso.
Especifica una cuenta de servicio de Cloud Build
De forma predeterminada, si no se especifica una cuenta de servicio de Cloud Build cuando se implementa un servicio o una función desde la fuente, Cloud Build usa la cuenta de servicio predeterminada de Cloud Build.
Como práctica recomendada para seguir el principio de privilegio mínimo para mejorar la postura de seguridad de tu servicio, te recomendamos que especifiques tu propia cuenta de servicio para ejecutar tus compilaciones cuando implementes un servicio desde la fuente.
gcloud
Para especificar la cuenta de servicio de Cloud Build cuando implementes un servicio desde el código fuente, usa la marca --build-service-account
:
gcloud run deploy SERVICE \ --source . \ --build-service-account projects/PROJECT_ID/serviceAccounts/BUILD_SERVICE_ACCOUNT
Reemplaza lo siguiente:
- SERVICE por el nombre de tu servicio de Cloud Run.
- PROJECT_ID es el ID del proyecto en el que se crea la cuenta de servicio de compilación.
- BUILD_SERVICE_ACCOUNT por una cuenta de servicio especificada por el usuario.
Si implementas una función, agrega la marca --function
con el punto de entrada de la función desde tu código fuente.