Cambio de la cuenta de servicio de Cloud Build

Cloud Build selecciona automáticamente la cuenta de servicio de Cloud Build para ejecutar compilaciones en tu nombre, a menos que anules este comportamiento. Esta cuenta de servicio puede tener permisos que son innecesariamente amplios para tu caso de uso, como el acceso a Cloud Source Repositories y cualquier bucket de Cloud Storage en tu proyecto.

Cambiaremos el comportamiento predeterminado del modo en que Cloud Build usa cuentas de servicio en proyectos nuevos. Estamos lanzando estos cambios región por región durante varias semanas en mayo y junio de 2024. Estos cambios mejorarán la postura de seguridad predeterminada de nuestros clientes en el futuro. Para inhabilitar estos cambios, configura la restricción de la política de la organización.

Cómo se ven afectados tus proyectos depende de si formas parte de una organización. En general, después de que el cambio se haya lanzado en la región que estás usando, verás los siguientes cambios:

  • Proyectos sin una organización. Si habilitas la API de Cloud Build en tus proyectos después del cambio, usarás la cuenta de servicio de Compute Engine de forma predeterminada para las compilaciones enviadas con la API de Cloud Build o Google Cloud CLI. Estos proyectos no tendrán la opción de usar la cuenta de servicio heredada de Cloud Build, pero podrán usar una cuenta de servicio especificada por el usuario.

  • Proyectos con una organización. Si habilitas la API de Cloud Build en tus proyectos después del cambio, usarás la cuenta de servicio de Compute Engine de forma predeterminada para las compilaciones enviadas con la API de Cloud Build o Google Cloud CLI. Puedes usar una cuenta de servicio especificada por el usuario o inhabilitar el cambio si habilitas la cuenta de servicio de Cloud Build en tu organización.

  • Proyectos existentes sin una organización. Si habilitaste la API de Cloud Build en tus proyectos antes del cambio, continuarás con el comportamiento anterior y usarás la cuenta de servicio heredada de Cloud Build de forma predeterminada para todas tus compilaciones. Puedes continuar usando una cuenta de servicio especificada por el usuario, ya sea seleccionando la cuenta de servicio de Compute Engine o creando una propia.

  • Proyectos existentes con una organización. Si habilitaste la API de Cloud Build en tus proyectos antes del cambio, continuarás con el comportamiento anterior mediante el uso de la cuenta de servicio heredada de Cloud Build de forma predeterminada. También puedes seguir usando una cuenta de servicio especificada por el usuario.

  • Activación. Deberás especificar una cuenta de servicio cuando crees o actualices un activador, a menos que la cuenta de servicio predeterminada del proyecto sea la heredada de Cloud Build.

  • API. La API de Cloud Build también habilita la API de Identity and Access Management.

  • Nombre de la cuenta de servicio de Cloud Build: La cuenta de servicio de Cloud Build se denominará la cuenta de servicio de Cloud Build heredada.

¿Qué debe hacer?

Si formas parte de una organización, esta puede inhabilitar este cambio si estableces la siguiente restricción booleana de política de la organización:

  • No se aplicó: constraints/cloudbuild.disableCreateDefaultServiceAccount

Si no puedes o no deseas ajustar la política de la organización, y habilitas la API de Cloud Build después del lanzamiento del cambio, valida que la cuenta de servicio predeterminada de Compute Engine o la cuenta de servicio creada por el usuario tengan permisos suficientes para la compilación. En particular, el usuario que envía la compilación debe tener el permiso iam.serviceAccounts.actAs en la cuenta de servicio.

Configura la disponibilidad de la cuenta de servicio heredada de Cloud Build

Para ayudarte a configurar la disponibilidad de la cuenta de servicio heredada de Cloud Build cuando habilites la API de Cloud Build, Cloud Build introducirá la siguiente restricción de política booleana:

  • No se aplicó: constraints/cloudbuild.disableCreateDefaultServiceAccount. Permite el uso del servicio heredado de Cloud Build de forma predeterminada en los proyectos nuevos.

  • Aplicado: constraints/cloudbuild.disableCreateDefaultServiceAccount. Inhabilita el uso de la cuenta de servicio heredada de Cloud Build en proyectos nuevos. Este es el valor predeterminado de la restricción.

Para actualizar la restricción de la política, actualiza las reglas de aplicación:

Esta restricción solo afecta a los proyectos que habilitan la API de Cloud Build después de que se lanza el cambio. Si decides no aplicar la restricción de la política, el cambio es permanente para todos los proyectos que habilitan la API cuando esa configuración está activa. No puedes desactivar la disponibilidad de la cuenta de servicio heredada de Cloud Build en un proyecto en el que la cuenta de servicio estaba disponible antes.

Obtén la cuenta de servicio predeterminada actual de un proyecto

Para determinar qué cuenta de servicio usa Cloud Build de forma predeterminada para un proyecto, puedes usar Google Cloud CLI o la API de Cloud Build:

gcloud CLI

Ejecuta el siguiente comando para obtener la cuenta de servicio predeterminada del proyecto actual:

gcloud builds get-default-service-account

API de Cloud Build

Usa cURL para llamar a la API de Cloud Build:

curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/defaultServiceAccount

Reemplaza los valores de marcador de posición por los siguientes: