Durante la implementación de la fuente de una función, Cloud Run aprovecha Cloud Build cuando se compila y se implementa la función.
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 de la función en tu nombre. Esta guía es relevante para los desarrolladores de plataformas que implementan funciones en Cloud Run y necesitan personalizar la cuenta de servicio de compilación que usa Cloud Build.
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
Para obtener los permisos que necesitas para implementar desde la fuente, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
- Desarrollador de origen de Cloud Run (
roles/run.sourceDeveloper
) -
Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
)
Para permitir que la cuenta de servicio que se usa para Cloud Build realice la compilación cuando se implemente una función, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu cuenta de servicio:
- Logs Writer (
roles/logging.logWriter
): Para almacenar registros de compilación en Cloud Logging. - Escritor de Artifact Registry (
roles/artifactregistry.writer
): Para almacenar imágenes de compilación en Artifact Registry. - Administrador de objetos de almacenamiento (
roles/storage.objectAdmin
): para recuperar la fuente de la función desde el bucket de Cloud Storage y almacenar imágenes de compilación en Artifact Registry.
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 de Google Cloud, como las bibliotecas cliente de Cloud, consulta la guía de configuración de identidades del servicio. Para obtener más información acerca de 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 una función desde la fuente, Cloud Build usa la cuenta de servicio de Cloud Build.
Como práctica recomendada para seguir el principio de privilegio mínimo para mejorar la postura de seguridad de tu función, te recomendamos que especifiques tu propia cuenta de servicio para ejecutar tus compilaciones cuando implementes una función desde la fuente.
gcloud
Puedes especificar una cuenta de servicio que se usará como la cuenta de servicio de Cloud Build durante la implementación de una función.
Para especificar la cuenta de servicio de Cloud Build cuando implementes una función desde el código fuente, haz lo siguiente:
gcloud beta run deploy SERVICE \ --source . \ --function FUNCTION_ENTRY_POINT \ --build-service-account BUILD_SERVICE_ACCOUNT
Reemplaza lo siguiente:
- SERVICE por el nombre de la función de Cloud Run.
- FUNCTION_ENTRY_POINT por el punto de entrada a tu función en tu código fuente. Omite la marca
--function
para especificar un servicio que se implementa desde la fuente. - BUILD_SERVICE_ACCOUNT por una cuenta de servicio especificada por el usuario.