Cloud Build te permite definir una política de organización (constraints/cloudbuild.allowedIntegrations
) para controlar qué servicios externos pueden invocar activadores de compilación. Por ejemplo, si tu activador está pendiente de los cambios en un repositorio de GitHub y GitHub está denegado en la política de la organización, el activador no se ejecutará. Puedes especificar cualquier número de valores permitidos o denegados para tu organización o proyecto.
En esta página se explica cómo configurar la política de organización (constraints/cloudbuild.allowedIntegrations
) para las integraciones mediante la consola Google Cloud y la herramienta de línea de comandos gcloud
.
Antes de empezar
-
Enable the Cloud Build and Organization Policy APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. Para usar los ejemplos de línea de comandos de esta guía, instala y configura el SDK de Google Cloud.
Para definir, cambiar o eliminar una política de organización, debes tener el rol de administrador de políticas de organización (
roles/orgpolicy.policyAdmin
). Para saber cómo añadir el rol a tu cuenta, consulta el artículo Añadir un administrador de políticas de la organización.
Configurar la política de la organización para las integraciones permitidas
En esta sección se explica cómo configurar la política de la organización (constraints/cloudbuild.allowedIntegrations
) para definir las compilaciones de las integraciones permitidas.
Consola
Abre la página Políticas de la organización en la consola de Google Cloud .
Haz clic en la fila que contiene la política Allowed Integrations (Cloud Build) (Integraciones permitidas [Cloud Build]).
Verá la página Detalles de la política.
Para editar la política, haz clic en Editar.
Verá la página Editar política.
En la sección Se aplica a, selecciona Personalizar para definir tu política.
En la sección Cumplimiento de las políticas, seleccione Sustituir para definir sus propias reglas de la política. De lo contrario, selecciona Combinar con el elemento superior para asegurarte de que las reglas del recurso de nivel superior se apliquen a tu configuración. Para obtener más información, consulta Información sobre la evaluación jerárquica.
En la sección Reglas, haga clic en Añadir regla para añadir una regla a su política.
En Valores de la política, selecciona Permitir todo para permitir compilaciones de todos los servicios, Denegar todo para denegar compilaciones de todos los servicios o Personalizar para permitir o denegar compilaciones de servicios específicos.
Si seleccionas Personalizado como valor, sigue estos pasos:
En la sección Tipo de política, selecciona Permitir o Denegar.
En la sección Valores personalizados, introduzca la URL de host de la instancia o el repositorio desde el que quiera permitir o denegar las compilaciones. Por ejemplo, para permitir o denegar compilaciones de GitHub, introduce tu URL como
github.com
owww.github.com
.También puedes introducir varias URLs separadas por un espacio. Por ejemplo,
github.com ghe.staging-test.com
.En función del evento, la URL de host que especifique será una de las siguientes:
- Evento RepoSync: el host es
source.developers.google.com
. - Evento de la aplicación GitHub: el host se deriva del campo
repository.html_url
de tu carga útil de JSON, que siempre esgithub.com
. - Evento de GitHub Enterprise: el host se deriva del campo
repository.html_url
de la carga útil de JSON. Por ejemplo,ghe.staging-test.com
. - Evento de Pub/Sub: el host se deriva de la fuente especificada en el activador. Si no se especifica ninguna fuente en el activador, no se realiza ninguna comprobación de la política de la organización.
- Evento de webhook: el host se deriva de la fuente especificada en el disparador. Si no se especifica ninguna fuente en el activador, se realiza una comprobación de la política de la organización.
- Evento RepoSync: el host es
Para guardar la regla, haz clic en Hecho.
Para añadir otra regla, haz clic en Añadir regla. De lo contrario, para guardar la política, haga clic en Guardar.
gcloud
Abre una ventana de terminal.
Si quieres permitir o denegar las compilaciones de todos los servicios, crea un archivo YAML con el siguiente contenido:
name: projects/PROJECT_NUMBER/policies/cloudbuild.allowedIntegrations spec: inheritFromParent: INHERIT rules: - ALLOW_OR_DENY: true
Donde:
PROJECT_NUMBER
es el número de tu proyecto.INHERIT
estrue
si quieres que las reglas de tu política se hereden del recurso superior. De lo contrario,false
.ALLOW_OR_DENY
esallowAll
si quieres permitir compilaciones de todas las URLs de host. De lo contrario,denyAll
.HOST_URL
es la URL de tu host. Por ejemplo,github.com
. También puede especificar URLs adicionales en las siguientes líneas.
Si quieres permitir o denegar compilaciones de servicios seleccionados, crea un archivo YAML con el siguiente contenido:
name: projects/PROJECT_NUMBER/policies/cloudbuild.allowedIntegrations spec: inheritFromParent: INHERIT rules: - values: ALLOW_OR_DENY: HOST_URL ...
Donde:
PROJECT_NUMBER
es el número de tu proyecto.INHERIT
estrue
si quieres que las reglas de tu política se hereden del recurso superior. De lo contrario,false
.ALLOW_OR_DENY
esallowedValues
si quieres especificar URLs de host para permitir compilaciones. De lo contrario,deniedValues
.HOST_URL
es la URL de tu host. Por ejemplo,github.com
. También puede especificar URLs adicionales en las siguientes líneas.
Define tu política de la organización ejecutando el siguiente comando, donde FILE_NAME es el nombre de tu archivo YAML:
gcloud org-policies set-policy FILE_NAME
Para confirmar que se ha definido la política, ejecuta el siguiente comando, donde PROJECT_ID es el ID de tu proyecto:
gcloud org-policies describe cloudbuild.allowedIntegrations --effective --project PROJECT_ID
Probar la política de organización de las integraciones permitidas
En esta sección se explica cómo puedes probar tu política de la organización
(constraints/cloudbuild.allowedIntegrations
) mediante activadores de compilación.
Si aún no lo ha hecho, cree un activador de compilación.
Aplica un cambio a tu fuente.
Si tu política está configurada para permitir compilaciones desde tu fuente, podrás ver las ejecuciones de compilación de tu activador en la página Historial de compilaciones. De lo contrario, la compilación no se ejecutará. Para ver el historial de las compilaciones restringidas por tu definición de política, consulta la página Explorador de registros para ver el motivo de la carga útil JSON y el motivo del rechazo.
Siguientes pasos
- Consulta cómo crear y gestionar activadores de compilación.
- Consulta cómo restringir el acceso a las compilaciones mediante aprobación.
- Consulta los permisos necesarios para ver los registros de compilación.
- Consulta información sobre los registros de auditoría creados por Cloud Build.