La puerta se basa en la política de la organización

Cloud Build te permite definir una política de la organización (constraints/cloudbuild.allowedIntegrations) para controlar qué servicios externos pueden invocar activadores de compilación. Por ejemplo, si tu activador detecta cambios en un repositorio de GitHub y GitHub se rechaza en la política de la organización, el activador no se ejecutará. Puedes especificar cualquier cantidad de valores permitidos o denegados para tu organización o proyecto.

En esta página, se explica cómo puedes configurar la política de la organización (constraints/cloudbuild.allowedIntegrations) para las integraciones mediante la consola de Google Cloud y la herramienta de línea de comandos de gcloud.

Antes de comenzar

  • Habilita las API de Cloud Build and Organization Policy.

    Habilita las API

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

  • Para configurar, cambiar o borrar una política de la organización, debes tener la función de administrador de políticas de la organización (roles/orgpolicy.policyAdmin). Para obtener información sobre cómo agregar el rol a tu cuenta, consulta Agrega un administrador de políticas de la organización.

Configura la política de la organización para las integraciones permitidas

En esta sección, se explica cómo puedes configurar la política de la organización (constraints/cloudbuild.allowedIntegrations) para definir compilaciones de integraciones permitidas.

Consola

  1. Abre la página Políticas de la organización en la consola de Google Cloud.

    Abrir la página Políticas de la organización

  2. Haz clic en la fila que contiene la política Integraciones permitidas (Cloud Build).

    Verás la página Detalles de la política.

  3. Para editar la política, haz clic en Editar.

    Verás la página Editar política.

  4. En la sección Se aplica a, selecciona Personalizar para establecer la definición de tu política.

  5. En la sección Aplicación de políticas, selecciona Reemplazar para definir tus propias reglas para la política. De lo contrario, selecciona Combinar con superior para asegurarte de que las reglas del recurso superior se apliquen a tu configuración. Para obtener más información, consulta Comprende la evaluación de jerarquías.

  6. En la sección Reglas, haz clic en Agregar regla para agregar una regla nueva a tu política.

  7. En Valores de políticas, selecciona Permitir todo para permitir compilaciones de todos los servicios, Rechazar todas para denegar compilaciones de todos los servicios o Personalizada si quieres permitir o rechazar compilaciones de servicios específicos.

    Si seleccionas Personalizado como tu valor, sigue estos pasos:

    1. En la sección Tipo de política, selecciona Permitir o Rechazar.

    2. En la sección Valores personalizados, ingresa la URL del host de la instancia o repositorio desde el que deseas permitir o rechazar las compilaciones. Por ejemplo, para permitir o rechazar compilaciones de GitHub, ingresa tu URL como github.com o www.github.com.

      También puedes ingresar varias URLs separadas por un espacio. Por ejemplo, github.com ghe.staging-test.com.

      Según el evento, la URL del host que especifiques es una de las siguientes:

      • Evento de RepoSync: El organizador es source.developers.google.com.
      • Evento de la app de GitHub: El host deriva del campo repository.html_url en tu carga útil de JSON, que siempre es github.com.
      • Evento de GitHub Enterprise: El host deriva del campo repository.html_url en la carga útil de JSON. Por ejemplo, ghe.staging-test.com
      • Evento de Pub/Sub: el host deriva de la fuente especificada en el activador. Si no hay una fuente especificada en tu activador, no hay verificación de las políticas de la organización.
      • Evento de webhook: el host deriva de la fuente especificada en el activador. Si no se especifica una fuente en el activador, se realizará una verificación de las políticas de la organización.
  8. Para guardar la regla, haz clic en Listo.

  9. Para agregar otra regla, haz clic en Agregar regla. De lo contrario, para guardar la política, haz clic en Guardar.

gcloud

  1. Abre una ventana de la terminal.

  2. Si deseas permitir o rechazar 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 tu número de proyecto.
    • INHERIT es true si deseas que las reglas de políticas se hereden del recurso superior. En caso contrario, es false.
    • ALLOW_OR_DENY es allowAll si deseas permitir compilaciones de todas las URLs del host. De lo contrario, denyAll.
    • HOST_URL es la URL del host. Por ejemplo, github.com También puedes especificar URLs adicionales en las siguientes líneas.

    Si deseas permitir o rechazar compilaciones de los 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 tu número de proyecto.
    • INHERIT es true si deseas que las reglas de políticas se hereden del recurso superior. En caso contrario, es false.
    • ALLOW_OR_DENY es allowedValues si deseas especificar las URLs de host para permitir las compilaciones. En caso contrario, es deniedValues.
    • HOST_URL es la URL del host. Por ejemplo, github.com También puedes especificar URLs adicionales en las siguientes líneas.
  3. Para establecer la política de la organización, ejecuta el siguiente comando, en el que FILE_NAME es el nombre del archivo YAML:

     gcloud org-policies set-policy FILE_NAME
    
  4. Para confirmar que se configuró la política, ejecuta el siguiente comando, en el que PROJECT_ID es el ID del proyecto:

     gcloud org-policies describe cloudbuild.allowedIntegrations --effective --project PROJECT_ID
    

Prueba la política de la organización para las integraciones permitidas

En esta sección, se explica cómo puedes probar la política de la organización (constraints/cloudbuild.allowedIntegrations) con activadores de compilación.

  1. Si aún no lo hiciste, crea un activador de compilación.

  2. Envía un cambio a tu fuente.

  3. Si tu política está configurada para permitir compilaciones de tu fuente, podrás ver las ejecuciones de compilación del activador en la página Historial de compilaciones. De lo contrario, tu compilación no se ejecutará. Para ver el historial de compilaciones restringidas por la definición de tu política, consulta la página Explorador de registros para conocer el motivo de la carga útil JSON y el motivo de la denegación.

¿Qué sigue?