Audita las cargas de trabajo automáticamente en busca de problemas de configuración


En esta página, se muestra cómo analizar de forma automática la configuración de las cargas de trabajo en busca de problemas de seguridad y obtener recomendaciones prácticas para mejorar la seguridad de los clústeres Autopilot y Standard de Google Kubernetes Engine (GKE). La auditoría de configuración de las cargas de trabajo es una función del panel de postura de seguridad. Para obtener más información, consulta Acerca de la auditoría de configuración de las cargas de trabajo.

Precios

El panel de postura de seguridad se ofrece sin cargo adicional en GKE a través de la API de seguridad de contenedores.

En las entradas que se agregan a Cloud Logging, se usan los precios de Cloud Logging.

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.

Requisitos

  • A fin de obtener los permisos que necesitas para usar la auditoría de configuración de las cargas de trabajo, pídele a tu administrador que te otorgue el rol de IAM de Visualizador de posturas de seguridad (roles/containersecurity.viewer) en tu proyecto de Google Cloud. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

    Este rol predefinido contiene los permisos necesarios para usar el de configuración de las cargas de trabajo. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

    Permisos necesarios

    Se requieren los siguientes permisos para usar el análisis de configuración de las cargas de trabajo:

    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • containersecurity.locations.list
    • containersecurity.locations.get
    • containersecurity.clusterSummaries.list
    • containersecurity.findings.list

    También puedes obtener estos permisos con funciones personalizadas o con otras funciones predefinidas

  • El análisis de la configuración de las cargas de trabajo requiere la versión 1.21 de GKE y las posteriores.

Habilita la auditoría de configuración de las cargas de trabajo

La auditoría de configuración de las cargas de trabajo está habilitada de forma predeterminada en los clústeres nuevos y estándar de Autopilot que ejecutan la versión 1.27 y posteriores. También puedes habilitar esta función de forma manual con la gcloud CLI o la consola de Google Cloud.

Habilita la auditoría de configuración en un clúster nuevo

gcloud

Crea un clúster de GKE nuevo mediante la gcloud CLI:

gcloud container clusters create-auto CLUSTER_NAME \
    --location=LOCATION \
    --security-posture=standard

Reemplaza lo siguiente:

Console

  1. Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.

    Ir a Google Kubernetes Engine
  2. Haz clic en Crear.
  3. En la sección GKE Autopilot, haz clic en Configurar.
  4. En el panel de navegación, haz clic en Configuración avanzada. Si creas un clúster de Standard, haz clic en Seguridad en su lugar.
  5. En la sección Seguridad, selecciona la casilla de verificación Auditoría de configuración.
  6. Configura otras opciones para tu clúster y haz clic en Crear cuando esté todo listo.

Habilita la auditoría de configuración en un clúster existente

gcloud

Actualiza el clúster:

gcloud container clusters update CLUSTER_NAME \
    --location=LOCATION \
    --security-posture=standard

Reemplaza lo siguiente:

Console

  1. Ve a la página Postura de seguridad en la consola de Google Cloud.

    Ir a Postura de seguridad
  2. Haz clic en la pestaña Configuración.
  3. En la sección Clústeres habilitados para la auditoría de configuración, haz clic en Seleccionar clústeres.
  4. Selecciona las casillas de verificación de los clústeres que deseas añadir.
  5. En el menú desplegable Seleccionar acción, selecciona Configurar como Básico.
  6. Haz clic en Aplicar.

Si usas la edición Enterprise de Google Kubernetes Engine (GKE) para administrar flotas de clústeres, también puedes establecer la configuración de auditoría de configuración a nivel de la flota que se aplica a todos los clústeres miembros. Para obtener instrucciones, consulta Configura las funciones del panel de postura de seguridad de GKE a nivel de la flota.

Implementa una carga de trabajo de prueba

Implementa una aplicación de ejemplo que infrinja de manera intencional los Estándares de seguridad de pods

  1. Guarda el siguiente manifiesto como misconfig-sample.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: helloweb
      labels:
        app: hello
    spec:
      selector:
        matchLabels:
          app: hello
          tier: web
      template:
        metadata:
          labels:
            app: hello
            tier: web
        spec:
          containers:
          - name: hello-app
            image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
            ports:
            - containerPort: 8080
            securityContext:
              runAsNonRoot: false
            resources:
              requests:
                cpu: 200m
    
  2. Implementa la aplicación en el clúster:

    kubectl apply -f misconfig-sample.yaml
    

Si deseas probar otros incumplimientos, modifica misconfig-sample.yaml con la configuración “incorrecta” correspondiente.

Visualiza y muestra los resultados de auditoría de la configuración

El análisis inicial puede tardar hasta 15 minutos en mostrar los resultados. GKE muestra los resultados en el panel de postura de seguridad y agrega entradas de forma automática a los registros del clúster.

Ver resultados

Para ver una descripción general de los problemas descubiertos en los clústeres y cargas de trabajo de tu proyecto, haz lo siguiente:

  1. Ve a la página Postura de seguridad en la consola de Google Cloud.

    Ir a Postura de seguridad

  2. Haz clic en la pestaña Problemas.

  3. En el panel Filtrar problemas, en la sección Tipo de problema, selecciona la casilla de verificación Configuración.

Visualiza los detalles y las recomendaciones de los problemas

Para ver información detallada sobre un problema de configuración específico, haz clic en la fila que contiene ese problema.

En el panel Problemas de configuración, se muestra la siguiente información:

  • Descripción: Una descripción del problema
  • Acción recomendada: Una descripción general de las acciones que puedes realizar para solucionar el problema de configuración. En esta sección, se incluyen los siguientes detalles:
    • Qué recursos necesitan la solución
    • Comandos de muestra que puedes ejecutar para aplicar la corrección a los recursos afectados
    • Instrucciones de la consola de Google Cloud, si corresponde, para solucionar el problema

Consulta los registros de los problemas que se descubrieron

GKE agrega entradas a Logging para cada problema descubierto.

  1. Ve al Explorador de registros en la consola de Google Cloud.

    Ir al Explorador de registros

  2. En el campo Consulta, ingresa la siguiente consulta:

    resource.type="k8s_cluster"
    jsonPayload.@type="type.googleapis.com/cloud.kubernetes.security.containersecurity_logging.Finding"
    jsonPayload.type="FINDING_TYPE_MISCONFIG"
    
  3. Haz clic en Ejecutar consulta.

Para recibir notificaciones cuando GKE agregue resultados nuevos a Logging, configura alertas basadas en registros para esta consulta. Para obtener más información, consulta Configurar alertas basadas en registros.

Limpia

  1. Borra la carga de trabajo de muestra que implementaste.

    kubectl delete deployment helloweb
    
  2. De manera opcional, borra el clúster que usaste.

    gcloud container clusters delete CLUSTER_NAME \
        --region=COMPUTE_REGION
    

Inhabilita la auditoría de configuración de las cargas de trabajo

Puedes inhabilitar la auditoría de configuración de las cargas de trabajo con la gcloud CLI o la consola de Google Cloud.

gcloud

Ejecuta el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
    --region=LOCATION \
    --security-posture=disabled

Reemplaza lo siguiente:

Console

  1. Ve a la página Postura de seguridad en la consola de Google Cloud.

    Ir a Postura de seguridad
  2. Haz clic en la pestaña Configuración.
  3. En la sección Clústeres habilitados para la auditoría de configuración, haz clic en Seleccionar clústeres.
  4. En la pestaña Auditoría habilitada, selecciona las casillas de verificación de los clústeres que deseas quitar.
  5. Haz clic en Inhabilitar auditoría y, luego, en Confirmar para inhabilitar la auditoría en esos clústeres.

Limitaciones de la auditoría de configuración de las cargas de trabajo

  • Los grupos de nodos de Windows Server no son compatibles.
  • El análisis de configuración de las cargas de trabajo no analiza las cargas de trabajo administradas por GKE, como las cargas de trabajo en el espacio de nombres kube-system.
  • La auditoría de configuración de las cargas de trabajo solo está disponible para clústeres con menos de 1,000 nodos.
  • El panel de postura de seguridad admite hasta 150,000 resultados de auditoría de configuración de las cargas de trabajo activas para cada clúster. Cuando la cantidad de resultados para un clúster supera este máximo, el panel de postura de seguridad deja de mostrar los resultados de configuración para ese clúster.

    Para resolver este problema, usa los registros en Logging para identificar problemas de configuración y, luego, implementar manifiestos actualizados. Cuando la cantidad de hallazgos de configuración es inferior a 150,000, el panel de estado de seguridad comienza a mostrar los hallazgos del clúster.

¿Qué sigue?