Configura cuentas de servicio especificadas por el usuario

En esta página, se explica cómo configurar cuentas de servicio especificadas por el usuario para compilaciones.

De forma predeterminada, Cloud Build usa una cuenta de servicio especial para ejecutar compilaciones a tu nombre. Esta cuenta de servicio se denomina cuenta de servicio de Cloud Build y se crea automáticamente cuando habilitas la API de Cloud Build en un proyecto de Google Cloud. Esta cuenta de servicio tiene una serie de permisos de forma predeterminada, como la capacidad de actualizar compilaciones o escribir registros.

En lugar de utilizar la cuenta de servicio predeterminada de Cloud Build, puedes especificar tu propia cuenta de servicio para ejecutar las compilaciones en tu nombre. Puedes especificar cualquier cantidad de cuentas de servicio por proyecto. Mantener varias cuentas de servicio te permite otorgar permisos diferentes a estas cuentas de servicio según las tareas que realicen. Por ejemplo, puedes usar una cuenta de servicio para compilar y enviar imágenes a Container Registry y otra cuenta de servicio para compilar y enviar imágenes a Artifact Registry.

Limitaciones

  • Las cuentas de servicio especificadas por el usuario solo funcionan con las compilaciones manuales y no funcionan con activadores de compilación.
  • Debes crear la cuenta de servicio especificada por el usuario en el mismo proyecto de Cloud en el que ejecutas compilaciones.

Antes de comenzar

  • Habilita las API de Cloud Build and IAM.

    Habilita las API

  • Para usar los ejemplos de la línea de comandos de esta guía, instala y configura el SDK de Cloud.

  • Asegúrate de crear la cuenta de servicio que deseas usar.

Configura registros de compilación

A fin de especificar tu propia cuenta de servicio para las compilaciones, debes configurar el almacenamiento de tus registros de compilación en Cloud Logging o en tu propio depósito de Cloud Storage:

Permisos de IAM obligatorios

A fin de obtener instrucciones para otorgar funciones de IAM a una cuenta de servicio, consulta Configura el acceso para miembros del proyecto.

Ejecuta compilaciones

  1. En el directorio raíz del proyecto, crea un archivo de configuración de compilación de Cloud Build llamado cloudbuild.yaml o cloudbuild.json.

  2. En el archivo de configuración de compilación:

    • Agrega un campo serviceAccount que especifique la dirección de correo electrónico de tu cuenta de servicio.
    • Si almacenas los registros de compilación en tu depósito de Cloud Storage, agrega un campo logsBucket que apunte a tu depósito de Cloud Storage.

    YAML

    steps:
    - name: 'bash'
      args: ['echo', 'Hello world!']
    logsBucket: 'LOGS_BUCKET_LOCATION'
    serviceAccount: 'projects/PROJECT_NAME/serviceAccounts/SERVICE_ACCOUNT'
    

    JSON

    {
      "steps": [
      {
        "name": "bash",
        "args": [
          "echo",
          "Hello world!"
        ]
      }
      ],
      "logsBucket": "LOGS_BUCKET_LOCATION",
      "serviceAccount": "projects/PROJECT_NAME/serviceAccounts/SERVICE_ACCOUNT"
    }
    

    Reemplaza los valores de marcador de posición en tu archivo de configuración de compilación con lo siguiente:

    • LOGS_BUCKET_LOCATION: El depósito de Cloud Storage para almacenar los registros de compilación Por ejemplo, gs://mylogsbucket.
    • PROJECT_NAME: es el nombre del proyecto de Cloud en el que se ejecuta la compilación.
    • SERVICE_ACCOUNT: Dirección de correo electrónico o ID único de la cuenta de servicio que deseas especificar para las compilaciones.
  3. Usa este comando para comenzar a compilar con el archivo de configuración de compilación:

     gcloud builds submit --config CONFIG_FILE_PATH SOURCE_DIRECTORY
    

Reemplaza los valores de marcador de posición en los comandos anteriores por la siguiente información:

  • CONFIG_FILE_PATH: Ruta de acceso al archivo de configuración de compilación
  • SOURCE_DIRECTORY: Ruta de acceso o URL al código fuente.

Si no se especifican CONFIG_FILE_PATH y SOURCE_DIRECTORY en el comando gcloud builds submit, Cloud Build supone que el archivo de configuración de compilación y el código fuente están en el directorio de trabajo actual.

¿Qué sigue?