Arquitectura de Defender para contenedores

Defender para contenedores está diseñado de forma diferente para cada entorno de Kubernetes con independencia de que se ejecuten en:

  • Azure Kubernetes Service (AKS): servicio administrado por Microsoft para desarrollar, implementar y administrar aplicaciones contenedorizadas.

  • Amazon Elastic Kubernetes Service (EKS) en una cuenta de Amazon Web Services (AWS) conectada: el servicio administrado de Amazon para ejecutar Kubernetes en AWS sin necesidad de instalar, operar y mantener sus propios nodos o plano de control de Kubernetes.

  • Google Kubernetes Engine (GKE) en un proyecto de Google Cloud Platform (GCP) conectado: el entorno administrado de Google para implementar, administrar y escalar aplicaciones mediante la infraestructura de GCP.

  • Una distribución de Kubernetes no administrada (mediante Kubernetes habilitado para Azure Arc): clústeres de Kubernetes certificados de Cloud Native Computing Foundation (CNCF) hospedados localmente o en IaaS.

Nota

La compatibilidad de Defender con contenedores con clústeres de Kubernetes habilitados para Arc (AWS EKS y GCP GKE) es una característica en versión preliminar.

Para proteger los contenedores de Kubernetes, Defender para contenedores recibe y analiza lo siguiente:

  • Registros de auditoría y eventos de seguridad del servidor de API
  • Información de configuración del clúster del plano de control
  • Configuración de la carga de trabajo de Azure Policy
  • Señales de seguridad y eventos desde el nivel de nodo

Para obtener más información sobre los detalles de implementación, como los sistemas operativos compatibles, la disponibilidad de características y el proxy de salida, consulte Disponibilidad de características de Defender para contenedores.

Arquitectura para cada entorno de Kubernetes

Diagrama de arquitectura de Defender for Cloud y clústeres de AKS

Cuando Defender for Cloud protege un clúster hospedado en Azure Kubernetes Service, la recopilación de datos de registro de auditoría es sin agente y se recopila automáticamente a través de la infraestructura de Azure sin ningún costo adicional ni consideraciones de configuración. Estos componentes son necesarios para recibir la protección completa que ofrece Microsoft Defender para contenedores:

  • Sensor de Defender: El DaemonSet implementado en cada nódulo que recopila señales de los hosts mediante tecnología eBPF y proporciona protección en tiempo de ejecución. El sensor se registra con un área de trabajo de Log Analytics y se usa como canalización de datos. Sin embargo, los datos del registro de auditoría no se almacenan en el área de trabajo de Log Analytics. El sensor de Defender se implementa como un perfil de seguridad de AKS.
  • Azure Policy para Kubernetes: Un pod que extiende Gatekeeper v3 de código abierto y se registra como un webhook en el control de admisión de Kubernetes, lo que permite exigir cumplimiento y aplicar medidas de seguridad en los clústeres y a escala, de una manera centralizada y coherente. El Azure Policy para el pod de Kubernetes se implementa como un complemento de AKS. Solo se instala en un nodo del clúster. Para más información, consulte Protección de las cargas de trabajo de Kubernetes y Descripción de Azure Policy para clústeres de Kubernetes.

Diagrama de arquitectura de alto nivel de la interacción entre Microsoft Defender for Containers, Azure Kubernetes Service y Azure Policy.

Detalles del componente del sensor de Defender

Nombre del pod Espacio de nombres Variante Descripción corta Funcionalidades Límites de recursos Salida requerida
microsoft-defender-collector-ds-* kube-system DaemonSet Conjunto de contenedores que se centran en la recopilación de eventos de inventario y seguridad del entorno de Kubernetes. SYS_ADMIN,
SYS_RESOURCE,
SYS_PTRACE
memoria: 296Mi

cpu: 360m
No
microsoft-defender-collector-misc-* kube-system Implementación Conjunto de contenedores que se centran en la recopilación de eventos de inventario y seguridad del entorno de Kubernetes que no están enlazados al nodo específico. N/D memory: 64Mi

cpu: 60m
No
microsoft-defender-publisher-ds-* kube-system DaemonSet Publique los datos recopilados en el servicio back-end de Microsoft Defender para contenedores, donde se procesarán y analizarán los datos. N/D memory: 200Mi

cpu: 60m
Https 443

Más información sobre los requisitos previos de acceso de salida

* Los límites de recursos no son configurables; más información sobre los límites de recursos de Kubernetes.

¿Cómo funciona la detección sin agente para Kubernetes en Azure?

El proceso de detección se basa en instantáneas tomadas en intervalos:

Diagrama de la arquitectura de permisos.

Al habilitar la extensión Detección sin agente para Kubernetes, se producirá el siguiente proceso:

  • Crear:

    • Si la extensión está habilitada desde Defender CSPM, Defender for Cloud crea una identidad en entornos de cliente denominados CloudPosture/securityOperator/DefenderCSPMSecurityOperator.
    • Si la extensión está habilitada desde Defender para contenedores, Defender for Cloud crea una identidad en entornos de cliente denominados CloudPosture/securityOperator/DefenderForContainersSecurityOperator.
  • Asignación: Defender for Cloud asigna un rol integrado llamado Operador sin agente de Kubernetes a esa identidad en el ámbito de suscripción. El rol contiene los siguientes permisos

    • Lectura AKS (Microsoft.ContainerService/managedClusters/read)
    • Acceso de confianza AKS con los siguientes permisos:
    • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/write
    • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/read
    • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/delete

    Más información sobre el Acceso de confianza AKS.

  • Descubrir: mediante la identidad asignada por el sistema, Defender for Cloud realiza un descubrimiento de los clústeres AKS en su entorno por medio de llamadas API al servidor API de AKS.

  • Enlazar: tras la detección de un clúster AKS, Defender for Cloud realiza una operación de enlace AKS creando un ClusterRoleBinding entre la identidad creada y el ClusterRole de Kubernetes aks:trustedaccessrole:defender-containers:microsoft-defender-operator. El ClusterRole es visible a través de la API y otorga a Defender for Cloud permiso de lectura del plano de datos dentro del clúster.

Nota:

La instantánea copiada permanece en la misma región que el clúster.

Pasos siguientes

En esta información general, ha obtenido información sobre la arquitectura de la seguridad de los contenedores en Microsoft Defender for Cloud. Para habilitar el plan, consulte: