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 puedes configurar la política de la organización (constraints/cloudbuild.allowedIntegrations) para integraciones con la consola de Google Cloud y la herramienta de línea de comandos de 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 para tu política.

  5. En la sección Aplicación de la política, selecciona Reemplazar para definir tus propias reglas para la política. De lo contrario, selecciona Combinar con elemento 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 Rules, haz clic en Add rule para agregar una regla nueva a tu política.

  7. En Valores de la política, selecciona Permitir todo para permitir compilaciones. de todos los servicios, selecciona Rechazar todo para denegar las compilaciones a todos servicios, o selecciona Personalizada para permitir o rechazar compilaciones 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 rechazar 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 organizador es source.developers.google.com.
      • Evento de la app de GitHub: El host se deriva del campo repository.html_url. en tu carga útil JSON, que siempre es github.com.
      • Evento de GitHub Enterprise: El host se 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. especificadas en tu activador. Si no se especifica ninguna fuente en el activador, se realiza una verificación de la política 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 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 deseas 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
              ...
    

    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 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 los siguientes a una línea de producción de datos.
  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, tu compilación no se ejecutará. Para ver el historial de compilaciones restringidas por tu definición de política, consulta el Explorador de registros del motivo de la carga útil de JSON y el motivo de la denegación.

¿Qué sigue?