Ejecuta agentes de VM en todos los nodos de GKE de todas las organizaciones


En esta página, se describe cómo garantizar que VM Manager esté habilitado en todas las instancias de Compute Engine, incluidas las VMs de Google Kubernetes Engine en una organización, una carpeta o un proyecto, con el Servicio de políticas de la organización.

Esta guía está dirigida a los equipos de seguridad que desean asegurarse de que todos los programas requeridos, como los agentes de seguridad y supervisión, se ejecuten en todas las instancias de una organización, una carpeta o un proyecto. Para aplicar la configuración solo con la política de la organización, usa esta guía. Para un enfoque de configuración como código, usa Config Sync. El Sincronizador de configuración te permite configurar y controlar muchos aspectos de tus clústeres, y proporciona valor más allá de las políticas de la organización.

Antes de leer esta página, asegúrate de estar familiarizado con VM Manager y las restricciones de Resource Manager.

En esta guía, se muestra cómo aplicar el uso de VM Manager en todos los proyectos de una organización o carpeta. En esta guía, no se muestra cómo configurar y usar VM Manager con políticas de SO. Para obtener esas instrucciones, consulta Crea una asignación de política del SO.

Acerca de VM Manager

VM Manager es un conjunto de herramientas que pueden administrar sistemas operativos para flotas de máquina virtual (VMs) grandes que ejecutan Windows y Linux en Compute Engine. Puedes usar VM Manager para aplicar políticas del SO y personalizar los programas que se ejecutan en las VMs. Por ejemplo, puedes definir una política para instalar un agente en un recurso y reutilizar esa política en varios recursos. VM Manager está inhabilitado de forma predeterminada en los proyectos deTrusted Cloud .

Puedes definir con mayor precisión dónde VM Manager aplica políticas con OSPolicyAssignments, que te permite definir el alcance de las políticas del SO para VMs específicas con selectores. Por ejemplo, todas las VMs de nodos de GKE tienen la etiqueta goog-gke-node, a la que puedes segmentar con una asignación de política del SO.

Políticas de la organización y VM Manager

Si tu organización Trusted Cloud tiene varios niveles de jerarquía, como carpetas y subcarpetas, habilitar VM Manager en todos estos proyectos de forma manual podría generar una sobrecarga de administración innecesaria. Puedes exigir que todos los proyectos de las carpetas o de una organización habiliten VM Manager en todas las VMs con el servicio de políticas de la organización y la restricción constraints/compute.requireOsConfig. Estos son algunos de los beneficios de aplicar VM Manager con una política de la organización:

  • Todos los proyectos nuevos agregan la etiqueta de metadatos enable-osconfig=TRUE a cada proyecto y VM.
  • Si alguien intenta quitar esta etiqueta o establecerla en un valor que no sea true, se rechazará el cambio.
  • Si alguien intenta crear o actualizar una VM de manera que se establezca la clave de metadatos enable-osconfig en un valor que no sea true, se rechazará ese cambio.

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta gcloud components update para obtener la versión más reciente.
  • Asegúrate de que ya estés usando VM Manager con políticas del SO y asignaciones de políticas del SO para ejecutar agentes en tus VMs. Para obtener instrucciones, consulta Crea una asignación de política del SO.
  • Enable the Cloud Resource Manager API, OS Config API APIs.

    Enable the APIs

Limitaciones

La política de la organización constraints/compute.requireOsConfig tiene las siguientes limitaciones:

  • La nueva política de la organización no modifica los recursos con incumplimientos preexistentes. Puedes configurar los metadatos de la política de forma manual o con gcloud en los recursos existentes.
  • Cualquier persona que tenga permiso para cambiar los metadatos en las instancias de Compute Engine del proyecto puede inhabilitar osconfig-agent en la VM configurando el campo de metadatos osconfig-disabled-features.
  • Si osconfig-agent no se está ejecutando, la VM aparecerá como no conforme en el panel de VM Manager. Por ejemplo, esto podría ocurrir si un usuario inhabilitó el agente de forma manual.

Roles obligatorios

Para obtener los permisos que necesitas para administrar las políticas de la organización, pídele a tu administrador que te otorgue el rol de IAM de administrador de políticas de la organización (roles/orgpolicy.policyAdmin) en la organización. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Habilita compute.requireOsConfig en toda una organización

Después de habilitar VM Manager y definir el alcance de un OSPolicyAssignment para tus VMs, puedes asegurarte de que VM Manager esté habilitado de forma predeterminada en todos los proyectos nuevos con la política de la organización OSPolicyAssignment.constraints/compute.requireOsConfig La forma en que aplicas constraints/compute.requireOsConfig depende de la versión de la API que uses.

API de Organization Policy v2

Puedes aplicar la restricción de constraints/compute.requireOsConfig en un recurso deTrusted Cloud , como una carpeta o una organización, con gcloud CLI o la consola de Trusted Cloud .

gcloud

  1. Confirma que la restricción compute.requireOsConfig aún no se haya aplicado:

    gcloud org-policies describe \
        constraints/compute.requireOsConfig \
        --organization=ORGANIZATION_ID
    

    Reemplaza ORGANIZATION_ID por tu ID de organización.

    Si no se configura una política, este comando muestra un error NOT_FOUND:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    

    Si la política existe, el comando devuelve la política actual. Si existe una política, la aplicación de una política nueva la reemplaza.

  2. Crea un archivo temporal /tmp/policy.yaml para almacenar la política:

    name: organizations/ORGANIZATION_ID/policies/constraints/compute.requireOsConfig
    spec:
      rules:
      - enforce: true
    
  3. Ejecuta el comando set-policy:

    gcloud org-policies set-policy /tmp/policy.yaml
    
  4. Confirma que se aplique la política nueva:

    gcloud org-policies describe \
        constraints/compute.requireOsConfig --effective \
        --organization=ORGANIZATION_ID
    

    El resultado del comando es similar al siguiente:

    name: organizations/ORGANIZATION_ID/policies/constraints/compute.requireOsConfig
    spec:
      rules:
      - enforce: true
    

Console

  1. En la consola de Trusted Cloud , ve a la página Políticas de la organización.

    Ir a Políticas de la organización

  2. En el selector de proyectos, selecciona el proyecto, la organización o la carpeta para la que deseas editar las políticas de la organización.

  3. En la página Políticas de la organización, usa el filtro para buscar compute.requireOsConfig.

  4. Haz clic en el nombre de la política para abrir la página Detalles de la política.

  5. Haz clic en Administrar política para actualizar la política de la organización para este recurso.

  6. En la página Editar política, selecciona Anular la política del elemento superior.

  7. Selecciona Agregar una regla.

  8. En Aplicación, cambia la aplicación de esta política de la organización a activada.

  9. Para aplicar la política, haz clic en Establecer política.

API de Resource Manager v1

  1. Confirma que la restricción compute.requireOsConfig aún no se haya aplicado:

    gcloud resource-manager org-policies describe constraints/compute.requireOsConfig \
        --organization ORGANIZATION_ID
    

    Reemplaza ORGANIZATION_ID por tu ID de organización.

    Si no se configura una política, este comando muestra una política incompleta, como en el siguiente ejemplo:

    constraint: "constraints/compute.requireOsConfig"
    etag: BwVJi0OOESU=
    

    Si la política existe, el comando devuelve la política actual. Si existe una política, la aplicación de una política nueva la reemplaza.

  2. Configura la política para que se aplique de forma forzosa en la organización:

    gcloud resource-manager org-policies enable-enforce constraints/compute.requireOsConfig \
        --organization ORGANIZATION_ID
    

    El resultado del comando es similar al siguiente:

    booleanPolicy:
      enforced: true
    constraint: constraints/compute.requireOsConfig
    etag: BwVJitxdiwY=
    
  3. Confirma que se aplique la política nueva:

    gcloud resource-manager org-policies describe constraints/compute.requireOsConfig \
        --effective \
        --organization ORGANIZATION_ID
    

    El resultado del comando es similar al siguiente:

    booleanPolicy:
      enforced: true
    constraint: constraints/compute.requireOsConfig
    

Los cambios en las políticas de la organización pueden tardar hasta 15 minutos en aplicarse por completo.

Para obtener más información sobre otras políticas que puedes aplicar, o cómo modificar o borrar políticas, consulta la documentación de Resource Manager.

¿Qué sigue?

Obtén más información sobre el registro de auditoría de GKE.