Ansluta Microsoft Sentinel till Amazon Web Services för att mata in AWS EKS-loggar

Använd den AWS S3-baserade anslutningen för Elastic Kubernetes Service (EKS) för att importera AWS EKS-granskningsloggar som samlats in i AWS S3-bucketar till Microsoft Sentinel. AWS EKS-granskningsloggar är detaljerade poster för API-serverbegäranden, autentiseringsbeslut och klusteraktiviteter i dina Kubernetes-kluster. De här posterna innehåller information som tiden då begäran togs emot, detaljerna för begäran, användaren som gjorde begäran och den åtgärd som vidtogs. Den här logganalysen är viktig för att upprätthålla säkerheten och efterlevnaden för containerbaserade program som körs i EKS-kluster.

Den här anslutningsappen har ett AWS CloudFormation-baserat onboarding-skript för att effektivisera skapandet av de AWS-resurser som används av anslutningstjänsten.

Viktigt

Översikt

Amazon Web Services S3 EKS-dataanslutningen hanterar följande användningsfall:

  • Övervakning av Kubernetes-säkerhet och hotdetektering: Analysera AWS EKS-revisionsloggar för att hjälpa till att identifiera och hantera säkerhetshot som obehörig åtkomst, privilegieeeskalering och misstänkta API-anrop inom dina Kubernetes-kluster. Genom att mata in loggarna i Microsoft Sentinel kan du använda dess avancerade analys- och hotinformation för att identifiera och undersöka skadliga aktiviteter för dina containerbaserade arbetsbelastningar.

  • Efterlevnad och revision för containeriserade miljöer: AWS EKS-revisionsloggar tillhandahåller detaljerade register över alla API-serverinteraktioner, vilket är avgörande för efterlevnadsrapportering och granskning i containeriserade miljöer. Anslutningsappen säkerställer att dessa granskningsloggar är tillgängliga i Microsoft Sentinel för enkel åtkomst och analys, vilket hjälper till att uppfylla regelkrav för containersäkerhet.

  • DevSecOps och klusterstyrning: Övervaka utvecklaraktiviteter, resursåtkomstmönster och konfigurationsändringar inom dina EKS-kluster för att säkerställa korrekt styrning och säkerhetspraxis i dina DevSecOps-arbetsflöden.

Den här artikeln beskriver hur du konfigurerar Amazon Web Services S3 EKS-anslutningstjänsten. Processen för att konfigurera den har två delar: AWS-sidan och Microsoft Sentinel sidan. Varje sidas process skapar information som används av den andra sidan. Utbytet av konfigurationsdetaljer mellan AWS-uppsättningen och Microsoft Sentinel-uppsättningen skapar säker kommunikation.

Förhandskrav

  • Du måste ha skrivbehörighet på Microsoft Sentinel-arbetsytan.

  • Installera Amazon Web Services-lösningen från Innehållshubben i Microsoft Sentinel. Om du redan har installerat en tidigare version av lösningen uppdaterar du lösningen i innehållshubben så att du har den senaste versionen som innehåller den här anslutningsappen. Mer information finns i Upptäck och hantera färdigt innehåll i Microsoft Sentinel.

  • Du måste ha ett befintligt AWS EKS-kluster med granskningsloggning aktiverat eller möjlighet att aktivera granskningsloggning på EKS-klustret under konfigurationsprocessen.

  • Du måste ha rätt AWS IAM-behörigheter för att:

    • Skapa IAM-roller och principer
    • Skapa S3-bucketar och konfigurera bucketprinciper
    • Skapa SQS-köer och konfigurera köprinciper
    • Skapa CloudFormation-staplar
    • Konfigurera loggningsinställningar för EKS-kluster
    • Skapa Kinesis Data Firehose-leveransströmmar
    • Skapa Lambda-funktioner

Aktivera och konfigurera Amazon Web Services S3 EKS-anslutningsappen

Utför följande uppgifter för att aktivera och konfigurera anslutningsappen:

  • I din AWS-miljö:

    Amazon Web Services S3 EKS-anslutningsappsidan i Microsoft Sentinel innehåller nedladdningsbara AWS CloudFormation-stackmallar som automatiserar följande AWS-uppgifter:

    • Konfigurera ditt AWS EKS-kluster för att skicka granskningsloggar till CloudWatch-loggar.

    • Skapa en Kinesis Data Firehose-leveransström för att transformera och leverera loggar från CloudWatch till S3.

    • Skapa en S3-bucket för att lagra de bearbetade granskningsloggarna.

    • Skapa en kö för Simple Queue Service (SQS) för att ge ett meddelande när nya loggfiler skapas i S3.

    • Skapa en webbidentitetsprovider för att autentisera användare till AWS via OpenID Connect (OIDC).

    • Skapa en antagen roll för att bevilja behörigheter till användare som autentiseras av OIDC-webbidentitetsprovidern för att få åtkomst till dina AWS-resurser.

    • Bifoga lämpliga IAM-behörighetsprinciper för att ge den antagna rollen åtkomst till lämpliga resurser (S3-bucket, SQS).

    • Skapa en Lambda-funktion för att omvandla EKS-granskningsloggar till det format som förväntas av Microsoft Sentinel.

  • I Microsoft Sentinel:

    • Konfigurera Amazon Web Services S3 EKS Connector i Microsoft Sentinel-portalen genom att lägga till logginsamlare som avsöker SQS-kön och hämtar loggdata från S3-bucketen. Mer information finns i Lägga till logginsamlare.

Konfigurera AWS-miljön

För att förenkla registreringsprocessen tillhandahåller Amazon Web Services S3 EKS-anslutningsappsidan i Microsoft Sentinel nedladdningsbara mallar för användning med AWS CloudFormation-tjänsten. CloudFormation-tjänsten använder dessa mallar för att automatiskt skapa resursstackar i AWS. Dessa staplar innehåller de resurser som beskrivs i den här artikeln, tillsammans med autentiseringsuppgifter, behörigheter och principer.

Obs!

Använd den automatiska installationsprocessen. Särskilda fall finns i instruktionerna för manuell konfiguration.

Förbereda mallfilerna

Använd följande steg för att köra skriptet som konfigurerar AWS-miljön:

  1. I Azure Portal går du till navigeringsmenyn Microsoft Sentinel expanderar Konfiguration och väljer Dataanslutningar.

    I Defender-portalen går du till snabbstartsmenyn och expanderar Microsoft Sentinel > Konfiguration och väljer Dataanslutningar.

  2. Välj Amazon Web Services S3 EKS i listan över dataanslutningar.

    Om du inte ser anslutningsappen installerar du Amazon Web Services-lösningen från innehållshubben under Innehållshantering i Microsoft Sentinel eller uppdaterar lösningen till den senaste versionen.

  3. I detaljrutan för anslutningsprogrammet väljer du Öppna sidan för anslutningsprogrammet.

    Skärmbild av galleriet med dataanslutningar som visar AWS S3 EKS-anslutningen.

  4. I avsnittet Konfiguration, under 1. AWS CloudFormation Deployment, väljer du länken AWS CloudFormation Stacks. Den här åtgärden öppnar AWS-konsolen på en ny webbläsarflik.

  5. Gå tillbaka till fliken i portalen där du har Microsoft Sentinel öppet. Välj Ladda ned under Mall 1: Distribution av OpenID Connect-autentisering för att ladda ned mallen som skapar OIDC-webbidentitetsprovidern. Mallen laddas ned som en JSON-fil till din avsedda nedladdningsmapp.

    Obs!

    Om du redan har en OIDC-webbidentitetsprovider från en tidigare konfiguration av AWS-anslutningstjänsten hoppar du över det här steget.

  6. Välj Ladda ned under Mall 2: Distribution av AWS EKS-resurser för att ladda ned mallen som skapar de andra AWS-resurserna. Mallen laddas ned som en JSON-fil till din avsedda nedladdningsmapp.

    Skärmbild av konfigurationssidan för AWS S3 EKS-anslutningstjänsten.

Skapa AWS CloudFormation-staplar

Gå tillbaka till webbläsarfliken för AWS-konsolen, som är öppen på sidan AWS CloudFormation för att skapa en stack.

Om du inte redan är inloggad på AWS loggar du in nu. Du omdirigeras till sidan AWS CloudFormation.

Skapa OIDC-webbidentitetsprovider

Viktigt

Om du redan har OIDC-webbidentitetsprovidern från en tidigare konfiguration av AWS-anslutningstjänsten hoppar du över det här steget och fortsätter till Skapa återstående AWS-resurser.
Om du redan har en OIDC Connect-provider konfigurerad för Microsoft Defender för molnet lägger du till Microsoft Sentinel som målgrupp till din befintliga leverantör (Kommersiell: api://1462b192-27f7-4cb9-8523-0f4ecb54b47e, Myndigheter:api://d4230588-5f84-4281-a9c7-2c15194b28f7). Försök inte skapa en ny OIDC-provider för Microsoft Sentinel.

Följ anvisningarna på sidan AWS-konsol för att skapa en ny stack.

  1. Ange en mall och ladda upp en mallfil.

  2. Välj Välj fil och leta reda på filen Template 1: OpenID connect authentication deployment.json som du laddade ned.

  3. Välj ett namn för stacken.

  4. Gå vidare genom resten av processen och skapa stacken.

Skapa återstående AWS-resurser

  1. Gå tillbaka till sidan AWS CloudFormation-stackar och skapa en ny stack.

  2. Välj Välj fil och leta reda på filen Template 2: AWS EKS resources deployment.json som du laddade ned.

  3. Välj ett namn för stacken.

  4. Ange följande parametrar när du uppmanas till det:

    • EKSClusterName: Ange namnet på ditt befintliga EKS-kluster.
    • Microsoft Sentinel arbetsyte-ID: Så här hittar du ditt arbetsyte-ID:
      • I Azure Portal går du till navigeringsmenyn Microsoft Sentinel och expanderar Konfiguration och väljer Inställningar. Välj fliken Workspace-inställningar och hitta Workspace-ID på sidan Log Analytics workspace.
      • I Defender-portalen går du till snabbstartsmenyn och expanderar System och väljer Inställningar. Välj Microsoft Sentinel och välj sedan Log Analytics-inställningar under Inställningar för [WORKSPACE_NAME]. Leta upp arbetsyte-ID:t på sidan Log Analytics-arbetsyta, som öppnas i en ny webbläsarflik.
    • BucketName: Ange ett unikt namn för S3-bucketen där EKS-granskningsloggar lagras.
    • SentinelSQSQueueName: Ange ett namn för SQS-kön (standard: MicrosoftSentinelEKSSqs).
    • AwsRoleName: Ange ett namn för IAM-rollen (måste börja med "OIDC_", standard: OIDC_MicrosoftSentinelRoleEKS).
  5. Gå vidare genom resten av processen och skapa stacken.

  6. När stacken har skapats går du till avsnittet Utdata i CloudFormation-stacken och noterar följande värden:

    • SentinelRoleArn: Det ARN för den IAM-roll som skapats för åtkomst till Microsoft Sentinel.
    • SentinelSQSQueueURL: URL:en för SQS-kön.
    • Step1EnableEKSAuditLogging: AWS CLI-kommandot för att aktivera EKS-granskningsloggning.
    • Step2CreateSubscriptionFilter: AWS CLI-kommandot för att skapa CloudWatch Logs-prenumerationsfiltret.

Aktivera EKS-granskningsloggning och konfigurera loggströmning

När du har skapat CloudFormation-staplarna aktiverar du granskningsloggning på EKS-klustret och konfigurerar loggströmning:

  1. Om granskningsloggning inte redan är aktiverad på EKS-klustret, kör du kommandot i utdata från CloudFormation-stacken Step1EnableEKSAuditLogging.

  2. Vänta ungefär fem minuter tills granskningsloggarna börjar visas i CloudWatch-loggar.

  3. Kör kommandot som finns i utdata från Step2CreateSubscriptionFilter för att skapa ett prenumerationsfilter som skickar granskningsloggar från CloudWatch till leveransströmmen i Kinesis Data Firehose.

  4. Lambda-funktionen omvandlar automatiskt EKS-granskningsloggarna till det format som förväntas av Microsoft Sentinel och levererar dem till S3, där de utlöser SQS-meddelanden för inmatning.

Lägga till logginsamlare

När du skapar resursstackarna och konfigurerar EKS-granskningsloggning går du tillbaka till webbläsarfliken och öppnar sidan för dataanslutningsappen i Microsoft Sentinel och påbörjar den andra delen av konfigurationsprocessen.

  1. I avsnittet Konfiguration, under 2. Anslut nya datainsamlare, väljer du Lägg till ny datainsamlare.

    Skärmbild av den andra delen av konfigurationen av AWS EKS-anslutningstjänsten.

  2. Ange rollen ARN för den IAM-roll som du skapade. Använd värdet från utdata för SentinelRoleArn i din CloudFormation-stack (till exempel arn:aws:iam::{AWS_ACCOUNT_ID}:role/OIDC_MicrosoftSentinelRoleEKS).

  3. Ange url:en för SQS-kön som du skapade. Använd värdet från SentinelSQSQueueURL-utdata från din CloudFormation-stack (till exempel https://sqs.{AWS_REGION}.amazonaws.com/{AWS_ACCOUNT_ID}/MicrosoftSentinelEKSSqs).

  4. Välj Anslut för att lägga till insamlaren. Den här åtgärden skapar en datainsamlingsregel för Azure Monitor Agent för att hämta loggarna och mata in dem i den dedikerade AWSEKSLogs_CL-tabellen på Log Analytics-arbetsytan.

    Skärmbild när en ny insamlare för EKS-loggar läggs till.

Kontrollera datainhämtning

Använd följande steg för att verifiera att EKS-revisionsloggdata matas in i din Microsoft Sentinel-arbetsyta.

  1. När du har konfigurerat anslutningsappen går du till sidan Loggar (eller sidan Avancerad jakt i Defender-portalen) och kör följande fråga. Om du får några resultat, fungerar anslutningen som den ska.

    AWSEKSLogs_CL
    | take 10
    
  2. Du kan också köra mer specifika frågor för att utforska dina EKS-granskningsdata.

    // 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
    

Referens för schema

EKS-granskningsloggarna matas in i tabellen AWSEKSLogs_CL med följande schema:

Kolumn Typ Beskrivning
TimeGenerated Datum och tid Tiden då granskningshändelsen genererades
AwsAccountId sträng AWS-konto-ID där EKS-klustret finns
Region sträng AWS-region där EKS-klustret finns
Klusternamn sträng Namnet på EKS-klustret
Verb sträng HTTP-verbet som är associerat med API-begäran (GET, POST, PUT, DELETE osv.)
Användare sträng Information om användaren som skickar begäran
Käll-IP-adresser dynamisk Matris med käll-IP-adresser som begäran kommer från
UserAgent sträng User agent-sträng för klienten som skickar begäran
ObjectRef sträng Referens till Kubernetes-objektet som används
ResponseCode int HTTP-svarskod för API-begäran
Steg sträng Stadium i behandlingen av förfrågan (RequestReceived, ResponseStarted, ResponseComplete, Panic)
AuthDecision sträng Auktoriseringsbeslut som fattats av API-servern
RawEvent dynamisk Fullständiga rådata för granskningshändelser för avancerad analys

Felsökning

Vanliga problem och lösningar

Följande vanliga problem och lösningar kan hjälpa dig att felsöka problem med anslutningsinställningar.

  • Inga data visas i AWSEKSLogs_CL tabell:

    • Kontrollera att EKS-granskningsloggning är aktiverat i klustret.
    • Kontrollera att CloudWatch Logs-prenumerationsfiltret är korrekt konfigurerat.
    • Se till att Lambda-funktionen bearbetar loggar utan fel. Kontrollera CloudWatch-loggar för Lambda-funktionsloggar.
    • Kontrollera att S3-bucketmeddelanden har konfigurerats korrekt för att utlösa SQS-meddelanden.
  • Det går inte att skapa CloudFormation-stacken:

    • Se till att du har tillräcklig IAM-behörighet för att skapa alla nödvändiga resurser.
    • Kontrollera att DET EKS-klusternamn som du angav finns i ditt konto.
    • Kontrollera att S3-bucketnamnet är globalt unikt.
  • Autentiseringsfel:

    • Kontrollera att OIDC-webbidentitetsprovidern är korrekt konfigurerad.
    • Se till att IAM-rollbehörigheterna är tillräckliga för åtkomst till S3- och SQS-resurser.
    • Kontrollera att arbetsyte-ID:t som används i CloudFormation-mallen matchar din Microsoft Sentinel arbetsyta.

Avancerad övervakning

Om du inte redan har gjort det, implementera hälsövervakning av dataanslutningar så att du vet när anslutningar inte tar emot data eller har andra problem. Mer information finns i Övervaka hälsotillståndet för dina dataanslutningar.