Gate se basa en la política de organización

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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  • 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

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

    Abre la página Políticas de organización.

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

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

    Verá la página Editar política.

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

  5. 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.

  6. En la sección Reglas, haga clic en Añadir regla para añadir una regla a su política.

  7. 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:

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

    2. 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 o www.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 es github.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.
  8. Para guardar la regla, haz clic en Hecho.

  9. Para añadir otra regla, haz clic en Añadir regla. De lo contrario, para guardar la política, haga clic en Guardar.

gcloud

  1. Abre una ventana de terminal.

  2. 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 es true si quieres que las reglas de tu política se hereden del recurso superior. De lo contrario, false.
    • ALLOW_OR_DENY es allowAll 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 es true si quieres que las reglas de tu política se hereden del recurso superior. De lo contrario, false.
    • ALLOW_OR_DENY es allowedValues 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.
  3. 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
    
  4. 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.

  1. Si aún no lo ha hecho, cree un activador de compilación.

  2. Aplica un cambio a tu fuente.

  3. 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