Cuenta de servicio predeterminada de Cloud Build

En función de la configuración de tu organización, Cloud Build puede usar la cuenta de servicio predeterminada de Compute Engine o la cuenta de servicio antigua de Cloud Build para ejecutar compilaciones por ti.

Las cuentas de servicio predeterminadas pueden tener permisos innecesariamente amplios para tu caso práctico. Puedes mejorar tu estrategia de seguridad siguiendo el principio de mínimos accesos. Como parte de este principio, te recomendamos que crees tu propia cuenta de servicio para ejecutar compilaciones en tu nombre. Esto puede reducir el impacto potencial de las configuraciones incorrectas o los usuarios malintencionados.

Para saber cómo conceder o revocar permisos a las cuentas de servicio predeterminadas de Cloud Build, consulta Configurar el acceso a la cuenta de servicio predeterminada de Cloud Build.

Acerca de la cuenta de servicio predeterminada de Compute Engine

Las políticas de tu organización pueden definir que la cuenta de servicio predeterminada de Cloud Build sea la cuenta de servicio predeterminada de Compute Engine. La dirección de correo de esta cuenta de servicio es
PROJECT_NUMBER-compute@developer.gserviceaccount.com.

Para obtener información sobre la cuenta de servicio predeterminada de Compute Engine, consulta el artículo Cuenta de servicio predeterminada de Compute Engine.

Información sobre la cuenta de servicio antigua de Cloud Build

Es posible que las políticas de tu organización definan la cuenta de servicio predeterminada de Cloud Build como la cuenta de servicio antigua. El correo de la cuenta de servicio de Cloud Build antigua es
PROJECT_NUMBER@cloudbuild.gserviceaccount.com

En esta sección se explican todos los permisos que tiene de forma predeterminada la cuenta de servicio de la versión antigua de Cloud Build.

Permisos predeterminados de la cuenta de servicio de Cloud Build antigua

Si la configuración de tu proyecto permite el uso de la cuenta de servicio antigua de Cloud Build, se le asignará el rol Cuenta de servicio de Cloud Build (roles/cloudbuild.builds.builder) a la cuenta de servicio antigua para los recursos del proyecto. Este rol contiene varios permisos, como la capacidad de actualizar compilaciones o escribir registros. La cuenta de servicio solo usa estos permisos cuando es necesario para realizar acciones al ejecutar tu compilación. Por ejemplo, la cuenta de servicio usa el permiso artifactregistry.dockerimages.get para obtener una imagen de Docker de Artifact Registry si tu compilación está configurada para hacerlo.

Si no tienes previsto realizar ninguna acción como parte del proceso de compilación, te recomendamos que revoques el permiso correspondiente de la cuenta de servicio para cumplir el principio de seguridad de los privilegios mínimos.

En la siguiente tabla se indican los permisos que contiene el rol Cuenta de servicio de Cloud Build (roles/cloudbuild.builds.builder) y el motivo por el que la cuenta de servicio de Cloud Build antigua usa estos permisos.

Permiso Descripción Finalidad del permiso
cloudbuild.builds.create Permiso para crear compilaciones y activadores. Requisitos:
  • Usar activadores de compilación.
  • Permiso para crear, listar, obtener o cancelar compilaciones.
cloudbuild.builds.update Permiso para actualizar compilaciones y activadores.
cloudbuild.builds.list Permiso para enumerar compilaciones y activadores.
cloudbuild.builds.get Puede obtener una compilación y un activador
cloudbuild.workerpools.use Puede usar un grupo privado Es obligatorio para ejecutar compilaciones en un grupo privado.
logging.logEntries.create Puede escribir registros Se necesita para crear y enumerar registros de compilación en Cloud Logging.
logging.logEntries.list Puede mostrar registros
logging.views.access Puede ver los registros
pubsub.topics.create Puede crear temas de Pub/Sub Es necesario para enviar actualizaciones de compilación a Pub/Sub.
pubsub.topics.publish Puede publicar en Pub/Sub
remotebuildexecution.blobs.get Puede obtener acceso para aprobar o rechazar compilaciones. rowspan=3>Necesario para aprobar o rechazar versiones pendientes
resourcemanager.projects.get Puede obtener información del proyecto
resourcemanager.projects.list Puede mostrar proyectos
source.repos.get Puede leer el código fuente de los repositorios de Cloud Source Repositories Requisitos:
  • Usa activadores de Bitbucket y Cloud Source Repositories.
  • Extrae el código fuente de Cloud Source Repositories.
source.repos.list Puede enumerar repositorios en Cloud Source Repositories
storage.buckets.create Puede crear segmentos de Cloud Storage Requisitos:
  • Almacena y obtiene artefactos en Cloud Storage.
  • Envía compilaciones manualmente con gcloud builds submit.
  • Almacena los registros de compilación en un segmento de registros creado por el usuario.
storage.buckets.get Puede obtener segmentos de Cloud Storage
storage.buckets.list Puede enumerar segmentos de Cloud Storage
storage.objects.list Puede enumerar objetos de Cloud Storage
storage.objects.update Puede actualizar objetos de Cloud Storage
storage.objects.create Puede escribir objetos de Cloud Storage
storage.objects.delete Puede eliminar objetos de Cloud Storage
storage.objects.get Puede leer objetos de Cloud Storage
artifactregistry.repositories.uploadArtifacts Puede subir artefactos a repositorios de Artifact Registry Necesario para gestionar artefactos en Artifact Registry.
artifactregistry.repositories.downloadArtifacts Puede descargar artefactos de un repositorio en Artifact Registry