Ejecuta agentes de VM en cada nodo de GKE en 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, mediante el uso del Servicio de políticas de la organización.

Esta guía está destinada a los equipos de seguridad que desean asegurarse de que todos los programas necesarios, 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 el Sincronizador de configuración. 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 las políticas del SO. Para obtener esas instrucciones, consulta Crea una asignación de política del SO.

Acerca de VM Manager

VM Manager es un paquete de herramientas que puede 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 volver a usar esa política en varios recursos. VM Manager está inhabilitado de forma predeterminada en Google Cloud los proyectos.

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

Políticas de la organización y VM Manager

Si tu Google Cloud organización tiene varios niveles de jerarquía como carpetas y subcarpetas, habilitar VM Manager en todos estos proyectos de forma manual puede causar una sobrecarga de administración innecesaria. Puedes exigir que todos los proyectos de las carpetas o una organización habiliten VM Manager en todas las VMs con el Servicio de políticas de la organización con 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 rechaza el cambio.
  • Si alguien intenta crear o actualizar una VM de manera que establezca la clave de metadatos enable-osconfig en un valor que no sea true, se rechaza el 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 el comando gcloud components update para obtener la versión más reciente. Es posible que las versiones anteriores de gcloud CLI no admitan la ejecución de los comandos de este documento.
  • 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.
  • Habilita la API de Resource Manager y las APIs de la API de configuración del SO.

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

    Habilitar las API

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 si configura el campo de metadatos osconfig-disabled-features.
  • Si osconfig-agent no se está ejecutando, la VM aparece como no conforme en el panel de VM Manager. Por ejemplo, esto puede suceder 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 a través de roles personalizados o cualquier otro rol predefinido.

Habilita compute.requireOsConfig en una organización

Después de habilitar VM Manager y definir el alcance de una OSPolicyAssignment para tus VMs, puedes asegurarte de que VM Manager esté habilitado de forma predeterminada en cualquier proyecto nuevo con la política de la organización 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 constraints/compute.requireOsConfig en un Google Cloud recurso, como una carpeta o una organización, con la gcloud CLI o la Google Cloud consola de Google Cloud.

gcloud

  1. Confirma que la restricción compute.requireOsConfig aún no esté aplicada:

    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 muestra la política actual. Si existe una política, la aplicación de una política nueva la anula.

  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 aplicó 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 Google Cloud consola de Google Cloud, accede 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 de 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 esté aplicada:

    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 muestra la política actual. Si existe una política, la aplicación de una política nueva la anula.

  2. Configura la política para que se aplique 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 aplicó 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.