En esta página se describe cómo asegurarse de que VM Manager esté habilitado en todas las instancias de Compute Engine, incluidas las VMs de Google Kubernetes Engine de una organización, una carpeta o un proyecto, mediante el servicio de políticas de la organización.
Esta guía está dirigida a los equipos de seguridad que quieran asegurarse de que todos los programas necesarios, como los agentes de seguridad y monitorizació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 organización, consulta esta guía. Para usar la configuración como código, usa Config Sync. Config Sync te permite configurar y controlar muchos aspectos de tus clústeres y te ofrece ventajas que van más allá de las políticas de la organización.
Antes de leer esta página, asegúrese de que ya conoce VM Manager y las restricciones de Resource Manager.
En esta guía se explica cómo aplicar el uso de Gestor de VMs en todos los proyectos de una organización o carpeta. En esta guía no se explica cómo configurar y usar Gestor de VMs con políticas de SO. Para ver esas instrucciones, consulta el artículo Crear una asignación de política de SO.
Acerca de VM Manager
VM Manager es un paquete de herramientas que sirve para gestionar los sistemas operativos de grandes flotas de máquinas virtuales que utilicen Windows o Linux en Compute Engine. Puedes usar VM Manager para aplicar políticas de 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 reutilizarla en varios recursos. VM Manager está inhabilitado de forma predeterminada en los proyectos deGoogle Cloud .
Puedes definir con mayor precisión dónde aplica VM Manager las políticas mediante OSPolicyAssignments
, que te permite acotar las políticas de SO a 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 una asignación de política de SO.
Políticas de organización y VM Manager
Si tu organización tiene varios niveles de jerarquía, como carpetas y subcarpetas, habilitar Gestor de VMs en todos estos proyectos manualmente puede provocar una sobrecarga de gestión innecesaria. Google Cloud Puedes requerir que todos los proyectos de las carpetas o de una organización habiliten VM Manager en todas las VMs mediante el servicio de políticas de la organización con la restricción constraints/compute.requireOsConfig
. Estas son algunas de las ventajas de
aplicar VM Manager mediante una política de organización:
- En todos los proyectos nuevos se añade la etiqueta de metadatos
enable-osconfig=TRUE
a cada proyecto y máquina virtual. - Si alguien intenta quitar esta etiqueta o asignarle un valor distinto de
true
, el cambio se rechazará. - Si alguien intenta crear o actualizar una VM de forma que se asigne a la clave de metadatos
enable-osconfig
un valor distinto detrue
, se rechazará el cambio.
Antes de empezar
Antes de empezar, asegúrate de haber realizado las siguientes tareas:
- Habilita la API de Google Kubernetes Engine. Habilitar la API de Google Kubernetes Engine
- Si quieres usar Google Cloud CLI para esta tarea, instálala y, a continuación, inicialízala. Si ya has instalado la gcloud CLI, obtén la versión más reciente ejecutando
gcloud components update
.
- Asegúrate de que ya estás usando VM Manager con políticas de SO y asignaciones de políticas de SO para ejecutar agentes en tus VMs. Para obtener instrucciones, consulta el artículo Crear una asignación de política de SO.
-
Enable the Cloud Resource Manager API, OS Config API APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
Limitaciones
La política de organización constraints/compute.requireOsConfig
tiene las siguientes limitaciones:
- Los recursos con infracciones anteriores no se ven afectados por la nueva política de la organización. Puedes definir los metadatos de la política manualmente o mediante
gcloud
en los recursos que ya tengas. - Cualquier persona que tenga permiso para cambiar los metadatos de las instancias de Compute Engine del proyecto puede inhabilitar el
osconfig-agent
en la VM configurando el campo de metadatososconfig-disabled-features
. - Si
osconfig-agent
no se está ejecutando, la VM aparece como no conforme en el panel de control de Gestor de VMs. Por ejemplo, esto puede ocurrir si un usuario ha inhabilitado el agente manualmente.
Roles obligatorios
Para obtener los permisos que necesitas para gestionar las políticas de la organización, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de políticas de la organización (roles/orgpolicy.policyAdmin
) en la organización.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Habilitar compute.requireOsConfig en una organización
Una vez que hayas habilitado VM Manager y hayas definido el ámbito de un
OSPolicyAssignment
en tus VMs, puedes asegurarte de que VM Manager
esté habilitado de forma predeterminada en los proyectos nuevos con la política de organización
constraints/compute.requireOsConfig
. La forma de aplicar constraints/compute.requireOsConfig
depende de la versión de la API que utilices.
API Organization Policy v2
Puedes aplicar la restricción constraints/compute.requireOsConfig
en un recursoGoogle Cloud , como una carpeta o una organización, mediante la CLI de gcloud o la consola Google Cloud .
gcloud
Confirma que la restricción
compute.requireOsConfig
no se ha aplicado ya:gcloud org-policies describe \ constraints/compute.requireOsConfig \ --organization=ORGANIZATION_ID
Sustituye
ORGANIZATION_ID
por tu ID de organización.Si no se ha definido ninguna política, este comando devuelve 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 aplicas una política nueva, se sobrescribirá la política actual, si la hay.
Crea un archivo temporal
/tmp/policy.yaml
para almacenar la política:name: organizations/ORGANIZATION_ID/policies/constraints/compute.requireOsConfig spec: rules: - enforce: true
Ejecuta el comando
set-policy
:gcloud org-policies set-policy /tmp/policy.yaml
Confirma que la nueva política se ha aplicado:
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
consola
En la Google Cloud consola, ve a la página Políticas de la organización.
En el selector de proyectos, selecciona el proyecto, la carpeta o la organización para los que quieras editar las políticas de la organización.
En la página Políticas de la organización, usa el filtro para buscar
compute.requireOsConfig
.Haz clic en el nombre de la política para abrir la página Detalles de la política.
Haz clic en Gestionar política para actualizar la política de la organización de este recurso.
En la página Editar política, selecciona Anular política del recurso superior.
Selecciona Añadir una regla.
En Cumplimiento, cambia el cumplimiento de esta política de la organización a activado.
Para aplicar la política, haz clic en Definir política.
API Resource Manager v1
Confirma que la restricción
compute.requireOsConfig
no se ha aplicado ya:gcloud resource-manager org-policies describe constraints/compute.requireOsConfig \ --organization ORGANIZATION_ID
Sustituye
ORGANIZATION_ID
por tu ID de organización.Si no se ha definido ninguna política, este comando devuelve 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 aplicas una política nueva, se sobrescribirá la política actual, si la hay.
Define la política que se aplicará 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=
Confirma que la nueva política se ha aplicado:
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 puede aplicar o sobre cómo modificar o eliminar políticas, consulte la documentación de Resource Manager.
Siguientes pasos
Consulta más información sobre los registros de auditoría de GKE.