Połącz Microsoft Sentinel z usługą Amazon Web Services, aby pozyskiwać dzienniki AWS EKS

Użyj łącznika usługi Elastic Kubernetes Service (EKS) opartego na usłudze Amazon Web Services (AWS) S3, aby pozyskiwać do rozwiązania Microsoft Sentinel dzienniki inspekcji AWS EKS zebrane w zasobnikach AWS S3. Dzienniki audytu AWS EKS to szczegółowe zapisy żądań do serwera API, decyzji związanych z uwierzytelnianiem oraz aktywności w klastrach Kubernetes. Te rekordy zawierają informacje, takie jak czas odebrania żądania, szczegóły żądania, użytkownik wysyłający żądanie i podjęta akcja. Ta analiza dzienników jest niezbędna do utrzymania bezpieczeństwa i zgodności konteneryzowanych aplikacji działających w klastrach EKS.

Ten łącznik zawiera skrypt dołączania oparty na platformie AWS CloudFormation w celu usprawnienia tworzenia zasobów platformy AWS używanych przez łącznik.

Ważna

Omówienie

Łącznik danych usługi Amazon Web Services S3 EKS obsługuje następujące przypadki użycia:

  • Monitorowanie bezpieczeństwa i wykrywanie zagrożeń w Kubernetes: Analizuj logi audytowe AWS EKS, aby pomóc zidentyfikować i reagować na zagrożenia, takie jak nieautoryzowany dostęp, eskalacja uprawnień oraz podejrzane wywołania API w klastrze Kubernetes. Po zaimportowaniu tych dzienników do Microsoft Sentinel możesz użyć jego zaawansowanych funkcji analitycznych i analizy zagrożeń, aby wykrywać i badać złośliwe działania wymierzone w obciążenia kontenerowe.

  • Zgodność i audyt środowisk konteneryzowanych: Dzienniki audytowe AWS EKS dostarczają szczegółowych zapisów wszystkich interakcji z serwerami API, co jest kluczowe dla raportowania zgodności i audytu w środowiskach konteneryzowanych. Łącznik zapewnia, że te dzienniki inspekcji są dostępne w ramach Microsoft Sentinel w celu ułatwienia dostępu i analizy, co pomaga spełnić wymagania prawne dotyczące zabezpieczeń kontenerów.

  • DevSecOps i zarządzanie klastrami: Monitoruj działania deweloperów, wzorce dostępu do zasobów oraz zmiany konfiguracji w klastrze EKS, aby zapewnić właściwe zarządzanie i praktyki bezpieczeństwa w procesach DevSecOps.

W tym artykule wyjaśniono, jak skonfigurować łącznik EKS usług Amazon Web Services S3. Proces jego konfigurowania obejmuje dwie części: stronę platformy AWS i stronę Microsoft Sentinel. Proces każdej ze stron generuje informacje używane przez drugą stronę. Wymiana szczegółów konfiguracji między konfiguracją AWS a konfiguracją Microsoft Sentinel tworzy bezpieczną komunikację.

Wymagania wstępne

  • Musisz mieć uprawnienia do zapisu do obszaru roboczego Microsoft Sentinel.

  • Zainstaluj rozwiązanie Amazon Web Services z centrum zawartości w Microsoft Sentinel. Jeśli masz już zainstalowaną wcześniejszą wersję rozwiązania, zaktualizuj rozwiązanie w centrum zawartości, aby upewnić się, że masz najnowszą wersję, która zawiera ten łącznik. Aby uzyskać więcej informacji, zobacz Odnajdywanie zawartości Microsoft Sentinel out-of-the-box i zarządzanie nią.

  • Musisz mieć istniejący klaster usługi AWS EKS z włączonym rejestrowaniem inspekcji lub możliwość włączania rejestrowania inspekcji w klastrze EKS podczas procesu konfiguracji.

  • Musisz mieć odpowiednie uprawnienia usługi AWS IAM do:

    • Utwórz role i zasady IAM
    • Tworzenie zasobników S3 i konfigurowanie zasad zasobnika
    • Tworzenie kolejek SQS i konfigurowanie zasad kolejki
    • Utwórz stosy CloudFormation
    • Konfigurowanie ustawień rejestrowania klastra EKS
    • Tworzenie strumieni dostarczania Kinesis Data Firehose
    • Tworzenie funkcji lambda

Włączanie i konfigurowanie łącznika usługi Amazon Web Services S3 EKS

Aby włączyć i skonfigurować łącznik, wykonaj następujące zadania:

  • W środowisku platformy AWS:

    Na stronie łącznika Amazon Web Services S3 EKS w Microsoft Sentinel są dostępne do pobrania szablony stosów AWS CloudFormation, które automatyzują następujące zadania w AWS:

    • Skonfiguruj klaster usługi AWS EKS w celu wysyłania dzienników inspekcji do dzienników usługi CloudWatch.

    • Utwórz strumień dostarczania danych Kinesis Data Firehose, aby przekształcać i dostarczać logi z CloudWatch do S3.

    • Utwórz zasobnik S3 do przechowywania przetworzonych dzienników inspekcji.

    • Utwórz kolejkę usługi Simple Queue Service (SQS), aby zapewnić powiadomienie o utworzeniu nowych plików dziennika w S3.

    • Utwórz dostawcę tożsamości internetowej w celu uwierzytelniania użytkowników na platformie AWS za pośrednictwem programu OpenID Connect (OIDC).

    • Utwórz założoną rolę , aby udzielić uprawnień użytkownikom uwierzytelnionym przez dostawcę tożsamości internetowej OIDC w celu uzyskania dostępu do zasobów platformy AWS.

    • Dołącz odpowiednie zasady uprawnień usługi IAM , aby udzielić przypisanej roli dostępu do odpowiednich zasobów (zasobnik S3, SQS).

    • Utwórz funkcję lambda, aby przekształcić dzienniki inspekcji EKS w format oczekiwany przez Microsoft Sentinel.

  • W Microsoft Sentinel:

    • Skonfiguruj łącznik EKS usługi Amazon Web Services S3 w portalu Microsoft Sentinel, dodając moduły zbierające dzienniki, które sondują kolejkę SQS i pobierają dane dziennika z zasobnika S3. Aby uzyskać więcej informacji, zobacz Dodawanie modułów zbierających dzienniki.

Konfigurowanie środowiska platformy AWS

Aby uprościć proces wdrażania, strona konektora Amazon Web Services S3 EKS w Microsoft Sentinel udostępnia szablony do pobrania, przeznaczone do użycia z usługą AWS CloudFormation. Usługa CloudFormation używa tych szablonów do automatycznego tworzenia stosów zasobów na platformie AWS. Te stosy obejmują zasoby opisane w tym artykule, wraz z danymi uwierzytelniającymi, uprawnieniami i zasadami dostępu.

Uwaga

Użyj automatycznego procesu konfiguracji. W szczególnych przypadkach zapoznaj się z instrukcjami instalacji ręcznej.

Przygotowywanie plików szablonu

Aby uruchomić skrypt, który konfiguruje środowisko platformy AWS, wykonaj następujące kroki:

  1. W witrynie Azure Portal w menu nawigacji usługi Microsoft Sentinel rozwiń pozycję Konfiguracja, a następnie wybierz pozycję Łączniki danych.

    W portalu Defender w menu szybkiego uruchamiania rozwiń pozycję Konfiguracja rozwiązania Microsoft Sentinel > i wybierz pozycję Łączniki danych.

  2. Wybierz pozycję Amazon Web Services S3 EKS z listy łączników danych.

    Jeśli nie widzisz łącznika, zainstaluj rozwiązanie amazon web services z centrum zawartości w obszarze Zarządzanie zawartością w Microsoft Sentinel lub zaktualizuj rozwiązanie do najnowszej wersji.

  3. W okienku szczegółów łącznika wybierz pozycję Otwórz stronę łącznika.

    Zrzut ekranu przedstawiający galerię łączników danych z łącznikiem AWS S3 EKS.

  4. W sekcji Konfiguracja, w obszarze 1. Wdrożenie AWS CloudFormation, wybierz łącze Stosy AWS CloudFormation. Ta akcja powoduje otwarcie konsoli platformy AWS na nowej karcie przeglądarki.

  5. Wróć do karty portalu, na której masz otwarty program Microsoft Sentinel. Wybierz pozycję Pobierz w obszarze Szablon 1: Wdrożenie uwierzytelniania programu OpenID Connect , aby pobrać szablon, który tworzy dostawcę tożsamości internetowej OIDC. Szablon jest pobierany jako plik JSON do wyznaczonego folderu pobierania.

    Uwaga

    Jeśli masz już dostawcę tożsamości internetowej OIDC z poprzedniej konfiguracji łącznika platformy AWS, pomiń ten krok.

  6. Wybierz pozycję Pobierz w obszarze Szablon 2: Wdrażanie zasobów usługi AWS EKS , aby pobrać szablon, który tworzy inne zasoby platformy AWS. Szablon jest pobierany jako plik JSON do wyznaczonego folderu pobierania.

    Zrzut ekranu przedstawiający stronę konfiguracji łącznika AWS S3 EKS.

Utwórz stosy AWS CloudFormation

Wróć do karty przeglądarki Konsoli AWS, otwartej na stronie AWS CloudFormation służącej do tworzenia stosu.

Jeśli jeszcze nie zalogowano się do platformy AWS, zaloguj się teraz. Nastąpi przekierowanie do strony AWS CloudFormation.

Utwórz dostawcę tożsamości sieci Web OIDC

Ważna

Jeśli masz już dostawcę tożsamości internetowej OIDC z poprzedniej konfiguracji łącznika platformy AWS, pomiń ten krok i przejdź do sekcji Tworzenie pozostałych zasobów platformy AWS.
Jeśli masz już skonfigurowanego dostawcę OpenID Connect (OIDC) dla usługi Microsoft Defender dla Chmury, dodaj Microsoft Sentinel jako odbiorcę do istniejącego dostawcy (Komercyjne: api://1462b192-27f7-4cb9-8523-0f4ecb54b47e, Rządowe: api://d4230588-5f84-4281-a9c7-2c15194b28f7). Nie próbuj tworzyć nowego dostawcy OIDC dla Microsoft Sentinel.

Postępuj zgodnie z instrukcjami na stronie Konsoli AWS, aby utworzyć nowy stos.

  1. Określ szablon i przekaż plik szablonu.

  2. Wybierz Wybierz plik i znajdź pobrany plik Template 1: OpenID connect authentication deployment.json.

  3. Wybierz nazwę stosu.

  4. Przejdź przez pozostałe etapy procesu i utwórz stos.

Tworzenie pozostałych zasobów platformy AWS

  1. Wróć do strony stosów CloudFormation platformy AWS i utwórz nowy stos.

  2. Wybierz opcję Choose file i odszukaj pobrany plik Template 2: AWS EKS resources deployment.json.

  3. Wybierz nazwę stosu.

  4. Po wyświetleniu monitu wprowadź następujące parametry:

    • EKSClusterName: wprowadź nazwę istniejącego klastra EKS.
    • Identyfikator obszaru roboczego Microsoft Sentinel: Aby znaleźć identyfikator obszaru roboczego:
      • W portalu Azure, w menu nawigacyjnym Microsoft Sentinel, rozwiń element Konfiguracja i wybierz pozycję Ustawienia. Wybierz zakładkę Ustawienia Workspace i znajdź ID Workspace na stronie Log Analytics workspace.
      • W portalu Defender, w menu szybkiego uruchamiania, rozwiń sekcję System i wybierz pozycję Ustawienia. Wybierz Microsoft Sentinel, a następnie wybierz Ustawienia usługi Log Analytics w sekcji Ustawienia dla [WORKSPACE_NAME]. Znajdź identyfikator obszaru roboczego na stronie obszaru roboczego usługi Log Analytics, która zostanie otwarta na nowej karcie przeglądarki.
    • BucketName: wprowadź unikatową nazwę zasobnika S3, w którym są przechowywane dzienniki inspekcji EKS.
    • SentinelSQSQueueName: wprowadź nazwę kolejki SQS (domyślnie: MicrosoftSentinelEKSSqs).
    • AwsRoleName: wprowadź nazwę roli IAM (musi zaczynać się od "OIDC_", domyślnie: OIDC_MicrosoftSentinelRoleEKS).
  5. Przejdź przez pozostałe etapy procesu i utwórz stos.

  6. Po zakończeniu tworzenia stosu przejdź do sekcji Dane wyjściowe stosu CloudFormation i zanotuj następujące wartości:

    • SentinelRoleArn: ARN roli IAM utworzonej na potrzeby dostępu usługi Microsoft Sentinel.
    • SentinelSQSQueueURL: adres URL kolejki SQS.
    • Step1EnableEKSAuditLogging: polecenie AWS CLI umożliwiające włączenie rejestrowania audytu EKS.
    • Step2CreateSubscriptionFilter: polecenie interfejsu wiersza polecenia platformy AWS w celu utworzenia filtru subskrypcji dzienników usługi CloudWatch.

Włącz rejestrowanie inspekcji EKS i skonfiguruj strumieniowe przesyłanie dzienników

Po utworzeniu stosów CloudFormation włącz rejestrowanie audytu w klastrze EKS i skonfiguruj strumieniowanie dzienników:

  1. Jeśli rejestrowanie inspekcji nie jest jeszcze włączone w klastrze EKS, uruchom polecenie podane w danych wyjściowych Step1EnableEKSAuditLogging ze stosu CloudFormation.

  2. Poczekaj około pięciu minut na rozpoczęcie wyświetlania dzienników inspekcji w dziennikach usługi CloudWatch.

  3. Uruchom polecenie podane w danych wyjściowych Step2CreateSubscriptionFilter, aby utworzyć filtr subskrypcji, który przesyła strumieniowo dzienniki audytu z usługi CloudWatch do strumienia dostarczania Kinesis Data Firehose.

  4. Funkcja Lambda automatycznie przekształca dzienniki inspekcji EKS do formatu oczekiwanego przez Microsoft Sentinel i przesyła je do S3, gdzie wyzwalają one powiadomienia SQS na potrzeby pozyskania danych.

Dodawanie modułów zbierających dzienniki

Podczas tworzenia stosów zasobów i konfigurowania rejestrowania inspekcji EKS wróć do karty przeglądarki otwartej na stronie łącznika danych w Microsoft Sentinel i rozpocznij drugą część procesu konfiguracji.

  1. W sekcji Konfiguracja w obszarze 2. Połącz nowe moduły zbierające, wybierz pozycję Dodaj nowy moduł zbierający.

    Zrzut ekranu przedstawiający drugą część konfiguracji łącznika usługi AWS EKS.

  2. Wprowadź identyfikator ARN roli IAM, którą utworzyłeś. Użyj wartości z danych wyjściowych SentinelRoleArn stosu CloudFormation (na przykład arn:aws:iam::{AWS_ACCOUNT_ID}:role/OIDC_MicrosoftSentinelRoleEKS).

  3. Wprowadź utworzony adres URL kolejki SQS. Użyj wartości z danych wyjściowych SentinelSQSQueueURL stosu CloudFormation (na przykład https://sqs.{AWS_REGION}.amazonaws.com/{AWS_ACCOUNT_ID}/MicrosoftSentinelEKSSqs).

  4. Wybierz pozycję Połącz , aby dodać moduł zbierający. Ta akcja powoduje utworzenie reguły zbierania danych dla agenta Azure Monitor w celu pobrania dzienników i pobrania ich do dedykowanej tabeli AWSEKSLogs_CL w obszarze roboczym usługi Log Analytics.

    Zrzut ekranu przedstawiający dodawanie nowego modułu zbierającego dla dzienników EKS.

Weryfikowanie pozyskiwania danych

Skorzystaj z poniższych kroków, aby zweryfikować, czy dane z dziennika audytu EKS są wprowadzane do Twojej przestrzeni roboczej Microsoft Sentinel.

  1. Po skonfigurowaniu łącznika przejdź do strony Dzienniki (lub strony Zaawansowane wyszukiwanie zagrożeń w portalu usługi Defender) i uruchom następujące zapytanie. Jeśli uzyskasz jakiekolwiek wyniki, łącznik działa prawidłowo.

    AWSEKSLogs_CL
    | take 10
    
  2. Możesz również uruchamiać bardziej szczegółowe zapytania, aby eksplorować dane inspekcji EKS.

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

Dokumentacja referencyjna schematu

Dzienniki inspekcji EKS są pozyskiwane do tabeli AWSEKSLogs_CL przy użyciu następującego schematu:

Kolumna Typ Opis
TimeGenerated data/godzina Czas wygenerowania zdarzenia inspekcji
AwsAccountId ciąg Identyfikator konta platformy AWS, w którym znajduje się klaster EKS
Region ciąg Region usług AWS, w którym znajduje się klaster EKS
Nazwa klastra ciąg Nazwa klastra EKS
Czasownik ciąg Zlecenie HTTP skojarzone z żądaniem interfejsu API (GET, POST, PUT, DELETE itp.)
Użytkownik ciąg Informacje o użytkowniku wysyłającym żądanie
Źródłowe adresy IP Dynamiczne Tablica źródłowych adresów IP, z których pochodzi żądanie
UserAgent ciąg Ciąg identyfikatora klienta użytkownika wysyłającego żądanie
ObiektRef ciąg Odwołanie do obiektu Kubernetes, do którego jest uzyskiwany dostęp
Kod odpowiedzi Int Kod odpowiedzi HTTP dla żądania interfejsu API
Etapie ciąg Faza przetwarzania żądania (RequestReceived, ResponseStarted, ResponseComplete, Panic)
AuthDecision ciąg Decyzja o autoryzacji podjęta przez serwer interfejsu API
RawEvent Dynamiczne Uzupełnianie nieprzetworzonych danych zdarzeń inspekcji na potrzeby analizy zaawansowanej

Rozwiązywanie problemów

Typowe problemy i rozwiązania

Poniższe typowe problemy i rozwiązania mogą pomóc Ci w rozwiązywaniu problemów z konfiguracją złącza.

  • W tabeli AWSEKSLogs_CL nie są wyświetlane żadne dane:

    • Sprawdź, czy rejestrowanie inspekcji EKS jest włączone w klastrze.
    • Sprawdź, czy filtr subskrypcji dzienników usługi CloudWatch jest poprawnie skonfigurowany.
    • Upewnij się, że funkcja Lambda przetwarza dzienniki bez błędów. Sprawdź dzienniki usługi CloudWatch, aby uzyskać dzienniki funkcji lambda.
    • Sprawdź, czy powiadomienia zasobnika S3 są poprawnie skonfigurowane do wyzwalania komunikatów SQS.
  • Tworzenie stosu CloudFormation kończy się niepowodzeniem:

    • Upewnij się, że masz wystarczające uprawnienia IAM, aby utworzyć wszystkie wymagane zasoby.
    • Sprawdź, czy podana nazwa klastra EKS istnieje na Twoim koncie.
    • Sprawdź, czy nazwa zasobnika S3 jest unikalna w skali globalnej.
  • Błędy uwierzytelniania:

    • Sprawdź, czy dostawca tożsamości internetowej OIDC jest poprawnie skonfigurowany.
    • Upewnij się, że uprawnienia roli IAM są wystarczające do uzyskiwania dostępu do zasobów S3 i SQS.
    • Sprawdź, czy identyfikator obszaru roboczego używany w szablonie CloudFormation jest zgodny z obszarem roboczym w usłudze Microsoft Sentinel.

Zaawansowane monitorowanie

Jeśli jeszcze tego nie zrobiono, zaimplementuj monitorowanie kondycji łącznika danych, aby wiedzieć, kiedy łączniki nie odbierają danych lub występują inne problemy. Aby uzyskać więcej informacji, zobacz Monitorowanie kondycji łączników danych.