Architettura di Defender per contenitori

Defender per contenitori è progettato in modo diverso per ogni ambiente Kubernetes, indipendentemente dal fatto che si tratti di servizi eseguiti in:

  • Servizio Azure Kubernetes: servizio gestito da Microsoft per lo sviluppo, la distribuzione e la gestione di applicazioni in contenitori.

  • Amazon Elastic Kubernetes Service (EKS) in un account Amazon Web Services (AWS) connesso: il servizio gestito di Amazon per l'esecuzione di Kubernetes in AWS senza dover installare, eseguire e gestire un piano di controllo o nodi Kubernetes personalizzati.

  • Google Kubernetes Engine (GKE) in un progetto GCP (Google Cloud Platform) connesso, l'ambiente gestito da Google per la distribuzione, la gestione e il ridimensionamento delle applicazioni tramite l'infrastruttura GCP.

  • Una distribuzione Kubernetes non gestita (con Kubernetes con abilitazione di Azure Arc): cluster Kubernetes certificati CNCF (Cloud Native Computing Foundation) ospitati in locale o in un'infrastruttura distribuita come servizio (IaaS).

Nota

Il supporto di Defender per contenitori per i cluster Kubernetes abilitati per Arc (AWS EKS e GCP GKE) è una funzionalità di anteprima.

Per proteggere i contenitori Kubernetes, Defender per contenitori riceve e analizza:

  • Log di controllo ed eventi di sicurezza dal server API
  • Informazioni di configurazione del cluster dal piano di controllo
  • Configurazione del carico di lavoro da Criteri di Azure
  • Segnali di sicurezza ed eventi dal livello del nodo

Per altre informazioni sui dettagli di implementazione, ad esempio sistemi operativi supportati, disponibilità delle funzionalità, proxy in uscita, vedere Disponibilità delle funzionalità di Defender per contenitori.

Architettura per ogni ambiente Kubernetes

Diagramma dell'architettura dei cluster Defender per il cloud e servizio Azure Kubernetes

Quando Defender per il cloud protegge un cluster ospitato in servizio Azure Kubernetes, la raccolta dei dati di log di controllo è senza agente e viene raccolta automaticamente tramite l'infrastruttura di Azure senza costi aggiuntivi o considerazioni sulla configurazione. Questi sono i componenti necessari per ricevere la protezione completa offerta da Microsoft Defender per contenitori:

  • Sensore defender: DaemonSet distribuito in ogni nodo, raccoglie i segnali dagli host usando la tecnologia eBPF e fornisce la protezione di runtime. Il sensore viene registrato in un'area di lavoro Log Analytics e usato come pipeline di dati. Tuttavia, i dati del log di controllo non vengono archiviati nell'area di lavoro Log Analytics. Il sensore defender viene distribuito come profilo di sicurezza del servizio Azure Kubernetes.
  • Criteri di Azure per Kubernetes: un pod che estende gatekeeper v3 open source e si registra come web hook al controllo di ammissione Kubernetes che consente di applicare le imposizione su larga scala e le misure di sicurezza nei cluster in modo centralizzato e coerente. Il pod di Criteri di Azure per Kubernetes viene distribuito come componente aggiuntivo del servizio Azure Kubernetes. È installato solo in un nodo del cluster. Per altre informazioni, vedere Proteggere i carichi di lavoro Kubernetes e Comprendere Criteri di Azure per i cluster Kubernetes.

Diagramma dell'architettura generale dell'interazione tra Microsoft Defender per contenitori, servizio Azure Kubernetes e Criteri di Azure.

Dettagli del componente del sensore Defender

Nome pod Spazio dei nomi Tipologia Breve descrizione Capabilities Limiti delle risorse Uscita obbligatoria
microsoft-defender-collector-ds-* kube-system DaemonSet Set di contenitori incentrati sulla raccolta di eventi di inventario e sicurezza dall'ambiente Kubernetes. SYS_ADMIN,
SYS_RESOURCE,
SYS_PTRACE
memoria: 296Mi

cpu: 360m
No
microsoft-defender-collector-misc-* kube-system Distribuzione Set di contenitori incentrati sulla raccolta di eventi di inventario e sicurezza dall'ambiente Kubernetes che non sono associati a un nodo specifico. N/D memoria: 64Mi

cpu: 60m
No
microsoft-defender-publisher-ds-* kube-system DaemonSet Pubblicare i dati raccolti nel servizio back-end di Microsoft Defender per contenitori, in cui i dati verranno elaborati e analizzati. N/D memoria: 200Mi

cpu: 60m
Https 443

Altre informazioni sui prerequisiti di accesso in uscita

* I limiti delle risorse non sono configurabili; Altre informazioni sui limiti delle risorse kubernetes.

Come funziona l'individuazione senza agente per Kubernetes in Azure?

Il processo di individuazione si basa sugli snapshot creati a intervalli:

Diagramma dell'architettura delle autorizzazioni.

Quando si abilita l'individuazione senza agente per l'estensione Kubernetes, si verifica il processo seguente:

  • Creazione:

    • Se l'estensione è abilitata da Defender CSPM, Defender per il cloud crea un'identità negli ambienti dei clienti denominata CloudPosture/securityOperator/DefenderCSPMSecurityOperator.
    • Se l'estensione è abilitata da Defender per contenitori, Defender per il cloud crea un'identità negli ambienti dei clienti denominati CloudPosture/securityOperator/DefenderForContainersSecurityOperator.
  • Assegna: Defender per il cloud assegna un ruolo predefinito denominato Operatore senza agente Kubernetes a tale identità nell'ambito della sottoscrizione. Il ruolo contiene le autorizzazioni seguenti:

    • Lettura del servizio Azure Kubernetes (Microsoft.ContainerService/managedClusters/read)
    • Servizio Azure Kubernetes Accesso attendibile con le autorizzazioni seguenti:
    • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/write
    • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/read
    • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/delete

    Altre informazioni sull'accesso attendibile del servizio Azure Kubernetes.

  • Individuare: Usando l'identità assegnata dal sistema, Defender per il cloud esegue un'individuazione dei cluster del servizio Azure Kubernetes nell'ambiente usando le chiamate API al server API del servizio Azure Kubernetes.

  • Bind: dopo l'individuazione di un cluster del servizio Azure Kubernetes, Defender per il cloud esegue un'operazione di associazione del servizio Azure Kubernetes creando un oggetto ClusterRoleBinding tra l'identità creata e il servizio Azure Kubernetes ClusterRoleaks:trustedaccessrole:defender-containers:microsoft-defender-operator. è visibile tramite l'API ClusterRole e fornisce Defender per il cloud'autorizzazione di lettura del piano dati all'interno del cluster.

Nota

Lo snapshot copiato rimane nella stessa area del cluster.

Passaggi successivi

In questa panoramica è stata illustrata l'architettura della sicurezza dei contenitori in Microsoft Defender per il cloud. Per abilitare il piano, vedere: