Connettere Microsoft Sentinel ad Amazon Web Services per inserire i log di AWS EKS

Usare il connettore EKS (Elastic Kubernetes Service) basato su Amazon Web Services (AWS) S3 per inserire i log di controllo di AWS EKS, raccolti in bucket AWS S3, per Microsoft Sentinel. I log di controllo di AWS EKS sono record dettagliati delle richieste del server API, delle decisioni di autenticazione e delle attività del cluster all'interno dei cluster Kubernetes. Questi record contengono informazioni quali l'ora di ricezione della richiesta, le specifiche della richiesta, l'utente che effettua la richiesta e l'azione eseguita. Questa analisi dei log è essenziale per mantenere la sicurezza e la conformità delle applicazioni in contenitori in esecuzione nei cluster del servizio Azure Kubernetes.

Questo connettore è dotato di uno script di onboarding basato su AWS CloudFormation per semplificare la creazione delle risorse AWS usate dal connettore.

Importante

Panoramica

Il connettore dati EKS di Amazon Web Services S3 gestisce i casi d'uso seguenti:

  • Monitoraggio della sicurezza di Kubernetes e rilevamento delle minacce: Analizzare i log di controllo di AWS EKS per identificare e rispondere alle minacce alla sicurezza, ad esempio l'accesso non autorizzato, l'escalation dei privilegi e le chiamate API sospette all'interno dei cluster Kubernetes. Inserendo questi log in Microsoft Sentinel, è possibile usare l'analisi avanzata e l'intelligence sulle minacce per rilevare e analizzare le attività dannose destinate ai carichi di lavoro in contenitori.

  • Conformità e controllo per gli ambienti in contenitori: I log di controllo di AWS EKS forniscono record dettagliati di tutte le interazioni con il server API, che sono fondamentali per la creazione di report e il controllo della conformità negli ambienti in contenitori. Il connettore garantisce che questi log di controllo siano disponibili all'interno di Microsoft Sentinel per semplificare l'accesso e l'analisi, contribuendo a soddisfare i requisiti normativi per la sicurezza dei contenitori.

  • DevSecOps e governance del cluster: Monitorare le attività degli sviluppatori, i modelli di accesso alle risorse e le modifiche di configurazione all'interno dei cluster del servizio Azure Kubernetes per garantire procedure di governance e sicurezza appropriate nei flussi di lavoro DevSecOps.

Questo articolo illustra come configurare il connettore EKS di Amazon Web Services S3. Il processo di configurazione ha due parti: il lato AWS e il lato Microsoft Sentinel. Il processo di ogni lato produce informazioni usate dall'altro lato. Questa autenticazione bidirezionale crea una comunicazione sicura.

Prerequisiti

  • È necessario disporre dell'autorizzazione di scrittura per l'area di lavoro Microsoft Sentinel.

  • Installare la soluzione Amazon Web Services dall'hub contenuti in Microsoft Sentinel. Se è già stata installata una versione precedente della soluzione, aggiornare la soluzione nell'hub contenuto per assicurarsi di avere la versione più recente che include questo connettore. Per altre informazioni, vedere Individuare e gestire Microsoft Sentinel contenuto predefinito.

  • È necessario disporre di un cluster AWS EKS esistente con la registrazione di controllo abilitata o la possibilità di abilitare la registrazione di controllo nel cluster del servizio Azure Kubernetes durante il processo di installazione.

  • È necessario disporre delle autorizzazioni IAM AWS appropriate per:

    • Creare criteri e ruoli IAM
    • Creare bucket S3 e configurare i criteri bucket
    • Creare code SQS e configurare i criteri delle code
    • Creare stack CloudFormation
    • Configurare le impostazioni di registrazione del cluster del servizio Azure Kubernetes
    • Creare flussi di recapito di Kinesis Data Firehose
    • Creare funzioni Lambda

Abilitare e configurare il connettore EKS di Amazon Web Services S3

Per abilitare e configurare il connettore, completare le attività seguenti:

  • Nell'ambiente AWS:

    La pagina connettore del servizio Azure Kubernetes di Amazon Web Services S3 in Microsoft Sentinel offre modelli di stack CLOUDFormation AWS scaricabili che automatizzano le attività AWS seguenti:

    • Configurare il cluster AWS EKS per inviare i log di controllo ai log di CloudWatch.

    • Creare un flusso di recapito di Kinesis Data Firehose per trasformare e distribuire i log da CloudWatch a S3.

    • Creare un bucket S3 per archiviare i log di controllo elaborati.

    • Creare una coda SQS (Simple Queue Service) per fornire una notifica quando vengono creati nuovi file di log in S3.

    • Creare un provider di identità Web per autenticare gli utenti in AWS tramite OpenID Connect (OIDC).

    • Creare un ruolo assunto per concedere le autorizzazioni agli utenti autenticati dal provider di identità Web OIDC per accedere alle risorse AWS.

    • Allegare i criteri di autorizzazioni IAM appropriati per concedere l'accesso al ruolo assunto alle risorse appropriate (bucket S3, SQS).

    • Creare una funzione Lambda per trasformare i log di controllo del servizio Azure Kubernetes nel formato previsto da Microsoft Sentinel.

  • In Microsoft Sentinel:

    • Configurare Amazon Web Services S3 EKS Connector nel portale di Microsoft Sentinel aggiungendo agenti di raccolta log che eseguono il polling della coda SQS e recuperano i dati di log dal bucket S3. Vedere le istruzioni seguenti.

Configurare l'ambiente AWS

Per semplificare il processo di onboarding, la pagina connettore EKS di Amazon Web Services S3 in Microsoft Sentinel fornisce modelli scaricabili da usare con il servizio AWS CloudFormation. Il servizio CloudFormation usa questi modelli per creare automaticamente stack di risorse in AWS. Questi stack includono le risorse descritte in questo articolo, oltre a credenziali, autorizzazioni e criteri.

Nota

Usare il processo di installazione automatica. Per i casi speciali, vedere le istruzioni di configurazione manuale.

Preparare i file modello

Per eseguire lo script che configura l'ambiente AWS, seguire questa procedura:

  1. Nel portale di Azure, dal menu di spostamento Microsoft Sentinel espandere Configurazione e selezionare Connettori dati.

    Nel portale di Defender, dal menu di avvio rapido, espandere Microsoft Sentinel > Configurazione e selezionare Connettori dati.

  2. Selezionare Amazon Web Services S3 EKS dall'elenco dei connettori dati.

    Se il connettore non viene visualizzato, installare la soluzione Amazon Web Services dall'hub contenuti in Gestione dei contenuti in Microsoft Sentinel o aggiornare la soluzione alla versione più recente.

  3. Nel riquadro dei dettagli per il connettore selezionare Apri pagina connettore.

    Screenshot della raccolta di connettori dati che mostra il connettore AWS S3 EKS.

  4. Nella sezione Configurazione , sotto 1. AWS CloudFormation Deployment( Distribuzione di AWS CloudFormation), selezionare il collegamento AWS CloudFormation Stacks (Stack di modulo AWS ). Questa azione apre la console AWS in una nuova scheda del browser.

  5. Tornare alla scheda del portale in cui è Microsoft Sentinel aperto. Selezionare Scarica in Modello 1: Distribuzione dell'autenticazione OpenID Connect per scaricare il modello che crea il provider di identità Web OIDC. Il modello viene scaricato come file JSON nella cartella download designata.

    Nota

    Se si dispone già di un provider di identità Web OIDC da una configurazione precedente del connettore AWS, ignorare questo passaggio.

  6. Selezionare Scarica in Modello 2: Distribuzione delle risorse AWS EKS per scaricare il modello che crea le altre risorse AWS. Il modello viene scaricato come file JSON nella cartella download designata.

    Screenshot della pagina di configurazione del connettore AWS S3 EKS.

Creare stack AWS CloudFormation

Tornare alla scheda del browser aws console, aperta alla pagina AWS CloudFormation per la creazione di uno stack.

Se non è già stato eseguito l'accesso ad AWS, accedere ora. Si viene reindirizzati alla pagina AWS CloudFormation.

Creare il provider di identità Web OIDC

Importante

Se si dispone già del provider di identità Web OIDC da una configurazione precedente del connettore AWS, ignorare questo passaggio e procedere con Creare le risorse AWS rimanenti.
Se è già stato configurato un provider OIDC Connect per Microsoft Defender per cloud, aggiungere Microsoft Sentinel come gruppo di destinatari al provider esistente (Commerciale: api://1462b192-27f7-4cb9-8523-0f4ecb54b47e, Per enti pubblici:api://d4230588-5f84-4281-a9c7-2c15194b28f7). Non provare a creare un nuovo provider OIDC per Microsoft Sentinel.

Seguire le istruzioni nella pagina della console AWS per la creazione di un nuovo stack.

  1. Specificare un modello e caricare un file di modello.

  2. Selezionare Scegli file e individuare il file template 1: OpenID connect authentication (Modello 1: OpenID connect authentication) deployment.json file scaricato.

  3. Scegliere un nome per lo stack.

  4. Passare attraverso il resto del processo e creare lo stack.

Creare le risorse AWS rimanenti

  1. Tornare alla pagina stack AWS CloudFormation e creare un nuovo stack.

  2. Selezionare Scegli file e individuare il file modello 2: risorse AWS EKS deployment.json file scaricato.

  3. Scegliere un nome per lo stack.

  4. Quando richiesto, immettere i parametri seguenti:

    • EKSClusterName: immettere il nome del cluster del servizio Azure Kubernetes esistente.
    • Microsoft Sentinel ID area di lavoro: per trovare l'ID area di lavoro:
      • Nel portale di Azure, nel menu di spostamento Microsoft Sentinel espandere Configurazione e selezionare Impostazioni. Selezionare la scheda Impostazioni area di lavoro e trovare l'ID area di lavoro nella pagina Dell'area di lavoro Log Analytics.
      • Nel portale di Defender, nel menu di avvio rapido, espandere Sistema e selezionare Impostazioni. Selezionare Microsoft Sentinel, quindi selezionare Impostazioni di Log Analytics in Impostazioni per [WORKSPACE_NAME]. Trovare l'ID area di lavoro nella pagina dell'area di lavoro Log Analytics, visualizzata in una nuova scheda del browser.
    • BucketName: immettere un nome univoco per il bucket S3 in cui sono archiviati i log di controllo del servizio Azure Kubernetes.
    • SentinelSQSQueueName: immettere un nome per la coda SQS (impostazione predefinita: MicrosoftSentinelEKSSqs).
    • AwsRoleName: immettere un nome per il ruolo IAM (deve iniziare con "OIDC_", impostazione predefinita: OIDC_MicrosoftSentinelRoleEKS).
  5. Passare attraverso il resto del processo e creare lo stack.

  6. Al termine della creazione dello stack, passare alla sezione Output dello stack CloudFormation e prendere nota dei valori seguenti:

    • SentinelRoleArn: ARN del ruolo IAM creato per l'accesso Microsoft Sentinel.
    • SentinelSQSQueueURL: URL della coda SQS.
    • Passaggio 1EnableEKSAuditLogging: comando dell'interfaccia della riga di comando di AWS per abilitare la registrazione di controllo del servizio Azure Kubernetes.
    • Step2CreateSubscriptionFilter: comando dell'interfaccia della riga di comando di AWS per creare il filtro di sottoscrizione dei log di CloudWatch.

Abilitare la registrazione di controllo del servizio Azure Kubernetes e configurare lo streaming dei log

Dopo aver creato gli stack CloudFormation, abilitare la registrazione di controllo nel cluster del servizio Azure Kubernetes e configurare lo streaming di log:

  1. Se la registrazione di controllo non è già abilitata nel cluster del servizio Azure Kubernetes, eseguire il comando fornito nell'output Step1EnableEKSAuditLogging dallo stack CloudFormation.

  2. Attendere circa cinque minuti prima che i log di controllo inizino a essere visualizzati nei log di CloudWatch.

  3. Eseguire il comando fornito nell'output Step2CreateSubscriptionFilter per creare un filtro di sottoscrizione che trasmette i log di controllo da CloudWatch al flusso di recapito di Kinesis Data Firehose.

  4. La funzione Lambda trasforma automaticamente i log di controllo del servizio Azure Kubernetes nel formato previsto da Microsoft Sentinel e li recapita a S3, dove attivano le notifiche SQS per l'inserimento.

Aggiungere agenti di raccolta log

Quando si creano gli stack di risorse e si configura la registrazione di controllo del servizio Azure Kubernetes, tornare alla scheda del browser aperta alla pagina del connettore dati in Microsoft Sentinel e iniziare la seconda parte del processo di configurazione.

  1. Nella sezione Configurazione , in 2. Connettere nuovi agenti di raccolta, selezionare Aggiungi nuovo agente di raccolta.

    Screenshot della seconda parte della configurazione del connettore AWS EKS.

  2. Immettere il ruolo ARN del ruolo IAM creato. Usare il valore dell'output SentinelRoleArn dello stack CloudFormation, arn:aws:iam::{AWS_ACCOUNT_ID}:role/OIDC_MicrosoftSentinelRoleEKSad esempio .

  3. Immettere l'URL della coda SQS creato. Usare il valore dell'output SentinelSQSQueueURL dello stack CloudFormation, https://sqs.{AWS_REGION}.amazonaws.com/{AWS_ACCOUNT_ID}/MicrosoftSentinelEKSSqsad esempio .

  4. Selezionare Connetti per aggiungere l'agente di raccolta. Questa azione crea una regola di raccolta dati per l'agente di monitoraggio Azure per recuperare i log e inserirli nella tabella AWSEKSLogs_CL dedicata nell'area di lavoro Log Analytics.

    Screenshot dell'aggiunta di un nuovo agente di raccolta per i log del servizio Azure Kubernetes.

Verificare l'inserimento dei dati

  1. Dopo aver configurato il connettore, passare alla pagina Log (o alla pagina Ricerca avanzata nel portale di Defender) ed eseguire la query seguente. Se si ottengono risultati, il connettore funziona correttamente.

    AWSEKSLogs_CL
    | take 10
    
  2. È anche possibile eseguire query più specifiche per esplorare i dati di controllo del servizio Azure Kubernetes.

    // View recent EKS audit events by verb (API action)
    AWSEKSLogs_CL
    | where TimeGenerated > ago(1h)
    | summarize count() by Verb
    | order by count_ desc
    
    // Monitor authentication decisions
    AWSEKSLogs_CL
    | where TimeGenerated > ago(24h)
    | where AuthDecision != ""
    | summarize count() by AuthDecision, User
    | order by count_ desc
    
    // Track failed requests (non-200 response codes)
    AWSEKSLogs_CL
    | where TimeGenerated > ago(24h)
    | where ResponseCode != 200
    | project TimeGenerated, User, Verb, ObjectRef, ResponseCode, SourceIPs
    | order by TimeGenerated desc
    

Informazioni di riferimento sullo schema

I log di controllo del servizio Azure Kubernetes vengono inseriti nella tabella AWSEKSLogs_CL con lo schema seguente:

Colonna Tipo Descrizione
TimeGenerated datetime Ora in cui è stato generato l'evento di controllo
AwsAccountId stringa ID account AWS in cui si trova il cluster del servizio Azure Kubernetes
Area geografica stringa Area AWS in cui si trova il cluster del servizio Azure Kubernetes
ClusterName stringa Nome del cluster del servizio Azure Kubernetes
Verbo stringa Verbo HTTP associato alla richiesta API (GET, POST, PUT, DELETE e così via)
Utente stringa Informazioni sull'utente che effettua la richiesta
SourceIPs Dinamico Matrice di indirizzi IP di origine da cui è originata la richiesta
UserAgent stringa Stringa dell'agente utente del client che effettua la richiesta
ObjectRef stringa Riferimento all'oggetto Kubernetes a cui si accede
ResponseCode int Codice di risposta HTTP per la richiesta API
Fase stringa Fase dell'elaborazione della richiesta (RequestReceived, ResponseStarted, ResponseComplete, Panic)
AuthDecision stringa Decisione di autorizzazione presa dal server API
RawEvent Dinamico Completare i dati degli eventi di controllo non elaborati per l'analisi avanzata

Risoluzione dei problemi

Problemi e soluzioni comuni

  • Nella tabella AWSEKSLogs_CL non sono visualizzati dati:

    • Verificare che la registrazione di controllo del servizio Azure Kubernetes sia abilitata nel cluster.
    • Verificare che il filtro di sottoscrizione log CloudWatch sia configurato correttamente.
    • Assicurarsi che la funzione Lambda elabori i log senza errori. Controllare i log di CloudWatch per i log delle funzioni Lambda.
    • Verificare che le notifiche del bucket S3 siano configurate correttamente per attivare i messaggi SQS.
  • La creazione dello stack CloudFormation non riesce:

    • Assicurarsi di disporre di autorizzazioni IAM sufficienti per creare tutte le risorse necessarie.
    • Verificare che il nome del cluster del servizio Azure Kubernetes specificato esista nell'account.
    • Verificare che il nome del bucket S3 sia univoco a livello globale.
  • Errori di autenticazione:

    • Verificare che il provider di identità Web OIDC sia configurato correttamente.
    • Assicurarsi che le autorizzazioni del ruolo IAM siano sufficienti per accedere alle risorse S3 e SQS.
    • Verificare che l'ID dell'area di lavoro usato nel modello CloudFormation corrisponda all'area di lavoro Microsoft Sentinel.

Monitoraggio avanzato

Se non è già stato fatto, implementare il monitoraggio dell'integrità del connettore dati in modo da sapere quando i connettori non ricevono dati o hanno altri problemi. Per altre informazioni, vedere Monitorare l'integrità dei connettori dati.

Passaggi successivi

In questo documento si è appreso come connettere i log di controllo di AWS EKS a Microsoft Sentinel per un monitoraggio completo della sicurezza di Kubernetes. Per altre informazioni su Microsoft Sentinel, vedere gli articoli seguenti: