Auditar automáticamente las cargas de trabajo para detectar problemas de configuración

En esta página se explica cómo auditar automáticamente las configuraciones de tus cargas de trabajo para detectar problemas de seguridad y obtener recomendaciones prácticas para mejorar la seguridad de tus clústeres Autopilot y estándar de Google Kubernetes Engine (GKE). En este artículo se explica cómo habilitar la auditoría de configuración de cargas de trabajo, implementar una carga de trabajo de prueba, ver y aplicar los resultados de la auditoría de configuración, y cómo inhabilitar la auditoría de configuración de cargas de trabajo. También se tratan los precios, los requisitos y las limitaciones de la auditoría de configuración de cargas de trabajo.

Esta página está dirigida a especialistas en seguridad que monitorizan la seguridad de sus clústeres de GKE y quieren obtener más información sobre cómo auditar automáticamente las configuraciones de las cargas de trabajo en clústeres Autopilot y Standard de GKE. Para obtener más información sobre los roles habituales y las tareas de ejemplo a las que hacemos referencia en el contenido, consulta Roles y tareas habituales de los usuarios de GKE. Trusted Cloud by S3NS

Antes de leer esta página, como la auditoría de la configuración de cargas de trabajo es una función del panel de control de postura de seguridad, asegúrate de que conoces los siguientes conceptos:

Precios

El panel de control de postura de seguridad se ofrece sin coste adicional en GKE a través de la API Container Security.

Las entradas añadidas a Cloud Logging se rigen por los precios de Cloud Logging.

Antes de empezar

Antes de empezar, asegúrate de que has 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.

Requisitos

  • Para obtener los permisos que necesitas para usar la auditoría de configuración de cargas de trabajo, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Visor de postura de seguridad (roles/containersecurity.viewer) en tu proyecto Trusted Cloud . Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

    Este rol predefinido contiene los permisos necesarios para usar la auditoría de configuración de cargas de trabajo. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

    Permisos obligatorios

    Para usar la auditoría de configuración de cargas de trabajo, se necesitan los siguientes permisos:

    • 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 roles personalizados u otros roles predefinidos.

  • Para auditar la configuración de cargas de trabajo, se necesita GKE 1.21 o una versión posterior.

Habilitar la auditoría de configuración de cargas de trabajo

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

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

gcloud

Actualiza el clúster:

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

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre de tu clúster.
  • CONTROL_PLANE_LOCATION: la ubicación del plano de control de tu clúster. Proporciona una región para los clústeres regionales Standard y Autopilot, o una zona para los clústeres zonales Standard.

Consola

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

    Ir a Postura de seguridad
  2. Haz clic en la pestaña Configuración.
  3. En la sección Clústeres con auditoría de configuración habilitada, haga clic en Seleccionar clústeres.
  4. Marque las casillas de los clústeres que quiera añadir.
  5. En el menú desplegable Seleccionar acción, selecciona Definir como básico.
  6. Haz clic en Aplicar.

También puede configurar los ajustes de auditoría de configuración a nivel de flota que se aplican a todos los clústeres miembros. Para obtener instrucciones, consulta Configurar las funciones del panel de control de la postura de seguridad de GKE a nivel de flota.

Desplegar una carga de trabajo de prueba

Despliega una aplicación de muestra que infringe intencionadamente los estándares de seguridad de pods.

  1. Guarda el siguiente archivo de 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. Despliega la aplicación en tu clúster:

    kubectl apply -f misconfig-sample.yaml
    

Si quieres probar otras infracciones, modifica misconfig-sample.yaml con la configuración "incorrecta" correspondiente.

Ver y tomar medidas en función de los resultados de la auditoría de configuración

La auditoría inicial tarda hasta 15 minutos en devolver los resultados. GKE muestra los resultados en el panel de control de la postura de seguridad y añade automáticamente entradas a los registros del clúster.

Ver resultados

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

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

    Ir a Postura de seguridad

  2. Haz clic en la pestaña Preocupaciones.

  3. En el panel Filtrar incidencias, en la sección Tipo de incidencia, selecciona la casilla Configuración.

Ver los detalles de los problemas y las recomendaciones

Para ver información detallada sobre un problema de configuración concreto, haz clic en la fila que lo contenga.

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

  • Descripción: una descripción del problema.
  • Acción recomendada: resumen de las acciones que puede llevar a cabo para solucionar el problema de configuración. Esta sección incluye los siguientes detalles:
    • Qué recursos necesitan la corrección
    • Ejemplos de comandos que puedes ejecutar para aplicar la corrección a los recursos afectados
    • Las Trusted Cloud instrucciones de la consola, si procede, para solucionar el problema

Ver los registros de los problemas detectados

GKE añade entradas al _Default contenedor de registro de Logging por cada problema detectado. Estos registros solo se conservan durante un periodo específico. Para obtener más información, consulta Periodos de conservación de los registros.

  1. En la Trusted Cloud consola, ve al Explorador de registros:

    Ir a Explorador de registros
  2. En el campo Consulta, especifica 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 Realizar una consulta.

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

Limpieza

  1. Elimina la carga de trabajo de ejemplo que has implementado.

    kubectl delete deployment helloweb
    
  2. Si quieres, elimina el clúster que has usado.

    gcloud container clusters delete CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION
    

Inhabilitar la auditoría de la configuración de cargas de trabajo

Puedes inhabilitar la auditoría de la configuración de cargas de trabajo mediante la CLI de gcloud o la consola de Trusted Cloud .

gcloud

Ejecuta el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --security-posture=disabled

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre de tu clúster.
  • CONTROL_PLANE_LOCATION: la ubicación del plano de control de tu clúster. Proporciona una región para los clústeres regionales Standard y Autopilot, o una zona para los clústeres zonales Standard.

Consola

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

    Ir a Postura de seguridad
  2. Haz clic en la pestaña Configuración.
  3. En la sección Clústeres con auditoría de configuración habilitada, haga clic en Seleccionar clústeres.
  4. En la pestaña Auditoría habilitada, marque las casillas de los clústeres que quiera quitar.
  5. Haz clic en Inhabilitar auditoría y, a continuación, en Confirmar para inhabilitar la auditoría en esos clústeres.

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

  • No se admiten grupos de nodos de Windows Server.
  • La auditoría de configuración de cargas de trabajo no analiza las cargas de trabajo gestionadas por GKE, como las cargas de trabajo del espacio de nombres kube-system.
  • La auditoría de la configuración de cargas de trabajo solo está disponible para clústeres con menos de 1000 nodos.
  • El panel de control de postura de seguridad admite hasta 150.000 resultados de auditoría de configuración de cargas de trabajo activas por clúster. Cuando el número de resultados de un clúster supera este máximo, el panel de control de postura de seguridad deja de mostrar los resultados de configuración de ese clúster.

    Para resolver este problema, utilice los registros de Logging para identificar problemas de configuración e implementar manifiestos actualizados. Cuando el número de resultados de configuración sea inferior a 150.000, el panel de control de postura de seguridad empezará a mostrar los resultados del clúster.

Siguientes pasos