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

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

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

Antes de comenzar

  • Enable the Cloud Build and Organization Policy APIs.

    Enable the APIs

  • 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 Rol Administrador de políticas de la organización (roles/orgpolicy.policyAdmin). Para 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 las compilaciones integraciones permitidas.

Console

  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 Allowed Integrations (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 la política, selecciona Reemplazar para definir la 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 Información sobre la evaluación de jerarquías.

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

  7. En Valores de la política, selecciona Permitir todo para permitir compilaciones de todos los servicios, Rechazar todo para rechazar compilaciones de todos los servicios o Personalizado para permitir o rechazar compilaciones de servicios específicos.

    Si seleccionas Personalizado como 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 el repositorio desde el que deseas permitir o denegar compilaciones. Por ejemplo, para permitir o denegar compilaciones desde 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 host es source.developers.google.com.
      • Evento de la app de GitHub: El host se 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 se deriva de la fuente. especificadas en tu activador. Si no hay ninguna fuente especificada en el activador, no hay verificación de políticas.
      • Evento de webhook: El host se deriva de la fuente especificada en tu activador. Si no hay ninguna fuente especificada en el activador, verificación de políticas.
  8. Para guardar la regla, haz clic en Listo.

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

gcloud

  1. Abre una ventana de terminal.

  2. Si quieres 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
    

    Aquí:

    • PROJECT_NUMBER es tu número de proyecto.
    • INHERIT es true si quieres que tus reglas de políticas se hereden del recurso superior. De lo contrario, false.
    • Si quieres, ALLOW_OR_DENY cuesta allowAll. para 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 puedes especificar URLs adicionales en los siguientes a una línea de producción de datos.

    Si quieres permitir o rechazar 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
              ...
    

    Aquí:

    • PROJECT_NUMBER es tu número de proyecto.
    • INHERIT es true si deseas que las reglas de tu política se hereden del recurso superior. De lo contrario, false.
    • Si quieres, ALLOW_OR_DENY cuesta allowedValues. para especificar las URL de host desde las que se permitirán las compilaciones. De lo contrario, deniedValues.
    • HOST_URL es la URL de tu 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 de tu archivo YAML:

     gcloud org-policies set-policy FILE_NAME
    
  4. Para confirmar que se estableció la política, ejecuta el siguiente comando: En el ejemplo anterior, 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 tu 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, se te Podrás ver las ejecuciones de compilación desde tu activador en la página Historial de compilaciones. De lo contrario, no se ejecutará tu compilación. Para ver el historial de compilaciones restringidas por la definición de tu política, consulta la página Explorador de registros y busca el motivo de la carga útil de JSON y el motivo del rechazo.

¿Qué sigue?