En esta página, se detalla cómo invocar compilaciones automáticamente desde Secure Source Manager con archivos de configuración de Cloud Build y un archivo YAML de activadores en tu repositorio de Secure Source Manager.
De forma predeterminada, Secure Source Manager usa un agente de servicio administrado por Google para interactuar con Cloud Build y otros recursos. Para aislar los permisos del equipo, te recomendamos que configures una identidad por repositorio asociando una cuenta de servicio administrada por el usuario a tu repositorio. Secure Source Manager usa la cuenta de servicio administrada por el usuario asociada al repositorio para activar compilaciones.
A diferencia del agente de servicio predeterminado, puedes configurar una cuenta de servicio administrada por el usuario con el permiso iam.serviceAccounts.actAs en cuentas de servicio personalizadas de Cloud Build. Esto te permite ejecutar compilaciones con cuentas de servicio personalizadas y, al mismo tiempo, restringir los permisos de compilación a ese repositorio.
Antes de comenzar
- Crea una instancia de Secure Source Manager.
- Crea un repositorio de Secure Source Manager.
Configura una cuenta de servicio especificada por el usuario de Cloud Build. Para permitir que Cloud Build lea desde tu repositorio de Secure Source Manager, otorga a la cuenta de servicio de Cloud Build (ya sea la cuenta de servicio predeterminada o una cuenta de servicio administrada por el usuario) los siguientes roles:
- Acceso a instancias de Secure Source Manager (
roles/securesourcemanager.instanceAccessor) en la instancia de Secure Source Manager. - Lector de repositorios de Secure Source Manager en el repositorio
Según tu caso de uso, es posible que la cuenta de servicio de Cloud Build necesite roles adicionales, por ejemplo:
- Para almacenar registros de compilación en Cloud Logging, otorga el rol de escritor de registros (
roles/logging.logWriter) a la cuenta de servicio de Cloud Build. - Para acceder a los secretos en Secret Manager, otorga el rol de Descriptor de acceso a secretos de Secret Manager (
roles/secretmanager.secretAccessor) a la cuenta de servicio de Cloud Build.
Para obtener información sobre los registros de compilación, consulta Cómo configurar registros de compilación.
- Acceso a instancias de Secure Source Manager (
Si tus compilaciones se ejecutan en grupos de trabajadores, otorga a la cuenta de servicio administrada por el usuario del repositorio el rol Usuario de Cloud Build WorkerPool (
roles/cloudbuild.workerPoolUser) en el proyecto en el que se ejecutan las compilaciones.
Roles obligatorios
Para obtener los permisos que necesitas para conectar un repositorio de Secure Source Manager a Cloud Build, pídele a tu administrador que te otorgue los siguientes roles de IAM:
- Escritor de repositorio de Secure Source Manager (
roles/securesourcemanager.repoWriter) en tu repositorio - Secure Source Manager Instance Accessor (
roles/securesourcemanager.instanceAccessor) en la instancia de Secure Source Manager
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Para obtener información sobre cómo otorgar roles de Secure Source Manager, consulta Control de acceso con IAM y Cómo otorgar acceso a la instancia a los usuarios.
Roles de la cuenta de servicio requeridos
Para conectar Secure Source Manager a Cloud Build, debes configurar los permisos de IAM para una identidad por repositorio.
Configuración de identidad por repositorio
Para usar una identidad por repositorio, debes configurar los permisos.
- Usuario: El usuario que configura la cuenta de servicio del repositorio necesita el rol de usuario de cuenta de servicio (
roles/iam.serviceAccountUser) en la cuenta de servicio administrada por el usuario. Este permiso se verifica durante la creación o actualización del repositorio. Agente de servicio de Secure Source Manager: Otorga al agente de servicio de Secure Source Manager para el proyecto del repositorio el rol de Creador de tokens de cuenta de servicio (
roles/iam.serviceAccountTokenCreator) en la cuenta de servicio administrada por el usuario.El correo electrónico del agente de servicio de Secure Source Manager tiene el formato
service-REPOSITORY_PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com, en el queREPOSITORY_PROJECT_NUMBERes el número del proyecto que aloja el repositorio.Cuenta de servicio administrada por el usuario:
- Otorga a la cuenta de servicio administrada por el usuario el rol de Usuario de cuenta de servicio (
roles/iam.serviceAccountUser) en la cuenta de servicio personalizada de Cloud Build (en el proyecto del repositorio). - Otorga a la cuenta de servicio administrada por el usuario el rol de Editor de Cloud Build (
roles/cloudbuild.builds.editor) y el rol de Consumidor de Service Usage (roles/serviceusage.serviceUsageConsumer) en el proyecto en el que se ejecutan las compilaciones.
- Otorga a la cuenta de servicio administrada por el usuario el rol de Usuario de cuenta de servicio (
Para obtener información sobre cómo otorgar roles de IAM, consulta Otorga o revoca un solo rol.
Crea un archivo de configuración de compilación
Un archivo de configuración de compilación define los campos que Cloud Build necesita para realizar tus tareas de compilación. Puedes escribir el archivo de configuración de compilación con la sintaxis YAML.
Puedes crear archivos de configuración de compilación en la rama o las ramas desde las que deseas compilar.
Para crear un archivo de configuración de compilación, haz lo siguiente:
- En la interfaz web de Secure Source Manager, selecciona el repositorio que deseas conectar a Cloud Build.
- Selecciona la rama desde la que deseas compilar con Cloud Build.
Crea un archivo de configuración de compilación. Para obtener información sobre cómo crear archivos de configuración de compilación, sigue las instrucciones en Crea un archivo de configuración de compilación.
Confirma tus cambios en la rama.
Crea un archivo de activadores
El archivo de configuración de los activadores debe crearse en la rama predeterminada de tu repositorio.
Para crear un archivo de configuración de activadores, sigue estos pasos:
- En tu repositorio local o en la interfaz web de Secure Source Manager, cambia a la rama predeterminada.
Crea un archivo llamado
.cloudbuild/triggers.yaml.Configura el activador en el archivo
.cloudbuild/triggers.yaml:triggers: - name: TRIGGER_NAME project: PROJECT_ID configFilePath: CLOUD_BUILD_CONFIG_PATH eventType: EVENT_TYPE ignoredGitRefs: IGNORED_GIT_REFS includedGitRefs: INCLUDED_GIT_REFS serviceAccount: SERVICE_ACCOUNT includedFiles: INCLUDED_FILES ignoredFiles: IGNORED_FILES disabled: DISABLED_BOOL substitutions: _VARIABLE_NAME: VARIABLE_VALUE OVERRIDE_VARIABLE_NAME: OVERRIDE_VARIABLE_VALUEReemplaza lo siguiente:
TRIGGER_NAMEpor un nombre para tu activador. Los nombres de los activadores solo pueden contener caracteres alfanuméricos y guiones, y no pueden comenzar ni terminar con un guion. Los nombres de los activadores deben tener menos de 64 caracteres.PROJECT_IDpor el ID del proyecto en el que habilitaste Cloud Build. Google Cloud Este campo es opcional. El valor predeterminado es el proyecto de Secure Source Manager.CLOUD_BUILD_CONFIG_PATHcon la ruta de acceso al archivo de configuración de Cloud Build que deseas usar para este activador. Este campo es opcional. El valor predeterminado es.cloudbuild/cloudbuild.yaml.EVENT_TYPEcon el tipo de evento con el que deseas activar la compilación. Las opciones son las siguientes:pushpara activar la acción cuando se envíe a las ramas especificadaspull_requestpara activar una solicitud de extracción en las ramas especificadas
Este campo es opcional. El valor predeterminado es
push.INCLUDED_GIT_REFScon un formato de expresión regular RE2 opcional que coincida con las referencias de Git con las que deseas activar una compilación. El valor predeterminado es vacío. Un valor vacío indica que no hay restricciones.IGNORED_GIT_REFScon una expresión regular opcional que usa el formato de expresión regular RE2 que coincide con las referencias de Git que no quieres que activen una compilación. El valor predeterminado es vacío. Un valor vacío indica que no hay restricciones. El campoignoredGitRefsse verifica antes que el campoincludedGitRefs. Para obtener más información sobre estos campos, consulta Esquema del archivo de activadores.SERVICE_ACCOUNTcon la cuenta de servicio de Cloud Build que se usará para la compilación en el formatoprojects/PROJECT_ID/serviceAccounts/ACCOUNT. Reemplaza ACCOUNT por la dirección de correo electrónico o el ID único de la cuenta de servicio. Puedes usar la cuenta de servicio predeterminada de Cloud Build o una cuenta de servicio administrada por el usuario. No se puede usar la cuenta de servicio heredada de Cloud Build debido a sus limitaciones.INCLUDED_FILEScon una expresión regular de formato RE2 opcional que coincida con los archivos que deseas que activen una compilación.Si alguno de los archivos modificados no coincide con el campo de filtro
ignoredFilesy los archivos modificados coinciden con el campo de filtroincludedFiles, se activa una compilación. El valor predeterminado es vacío. Un valor vacío indica que no hay restricciones.IGNORED_FILEScon una expresión regular opcional en formato RE2 que coincida con los archivos que no quieres que activen una compilación.Si todos los archivos modificados en una confirmación coinciden con este campo de filtro, no se activa una compilación. El valor predeterminado es vacío. Un valor vacío indica que no hay restricciones.
DISABLED_BOOLcontruepara inhabilitar el activador ofalsepara habilitarlo Este campo es opcional. El valor predeterminado esfalse.VARIABLE_NAMEpor el nombre de una variable que deseas introducir en tu archivo de activadoresVARIABLE_VALUEcon el valor de la variable.OVERRIDE_VARIABLE_NAMEpor el nombre predeterminado de la variable de sustitución de Secure Source Manager. Para obtener información sobre las variables de sustitución predeterminadas disponibles, consulta la sección de sustituciones del esquema del archivo de activadores.OVERRIDE_VARIABLE_VALUEcon el valor con el que deseas anular el valor predeterminado de la variable de sustitución predeterminada.
Confirma el archivo de configuración del activador en tu rama predeterminada.
Después de confirmar el archivo de activadores, Secure Source Manager activará compilaciones según la configuración de tu archivo de activadores.
Secure Source Manager lee los archivos de configuración y el SHA de la confirmación o la referencia de Git asociados de los siguientes tipos de eventos:
- En el caso de los eventos
push, Secure Source Manager leerá el SHA de la confirmación o la referencia de Git cuando se complete la inserción. - En el caso de los eventos
pull_request, Secure Source Manager leerá el SHA de confirmación o la referencia de Git cuando se extraigan los cambios de la solicitud de extracción.
- En el caso de los eventos
Cómo ver el estado de la compilación
Cuando una compilación se activa por un evento de solicitud de extracción o envío, el estado de la confirmación y la compilación se muestra en la interfaz web de Secure Source Manager.
Los valores posibles para el estado de compilación son los siguientes:
SUCCESS: La compilación se completó correctamente.
ADVERTENCIA: Se produjo un problema al intentar compilar.
FAILURE: La compilación falló durante la ejecución.
Puedes evitar que las confirmaciones con compilaciones fallidas se combinen en ramas importantes si configuras una regla de protección de ramas para que requiera una verificación de estado exitosa de los activadores configurados en tu archivo de activadores. Para obtener más información sobre la protección de ramas, consulta la descripción general de la protección de ramas.
Para ver el estado de compilación de un evento de envío, haz lo siguiente:
En la interfaz web de Secure Source Manager, navega a tu repositorio.
Si el evento de envío más reciente activó una compilación, el estado se muestra junto al SHA de la confirmación. Para ver los detalles de ese estado, haz clic en él.
Para ver el estado de compilación de las confirmaciones anteriores, selecciona Confirmaciones para ver el historial de confirmaciones y, luego, haz clic en el estado del que deseas ver los detalles.
Para ver el estado de compilación de un evento de solicitud de extracción, haz lo siguiente:
- En la interfaz web de Secure Source Manager, haz clic en Pull requests.
Haz clic en la solicitud de extracción que quieras ver.
Si la solicitud de extracción activó compilaciones, verás una sección titulada All checks were successful o Some checks reported warnings.
Solucionar problemas
Si deseas encontrar métodos para diagnosticar y resolver errores de Cloud Build cuando se conecta con Secure Source Manager, consulta El archivo de activadores no activa la compilación.
¿Qué sigue?
- Obtén más información para ver los resultados de la compilación en Cloud Build.
- Obtén más información para solucionar errores de compilación.