Ligar Microsoft Sentinel ao Amazon Web Services para ingerir registos EKS do AWS

Utilize o conector do Elastic Kubernetes Service (EKS) baseado em Amazon Web Services (AWS) S3 para importar para o Microsoft Sentinel os registos de auditoria do AWS EKS recolhidos em buckets do AWS S3. Os registos de auditoria do AWS EKS são registos detalhados de pedidos de servidor de API, decisões de autenticação e atividades de cluster nos clusters do Kubernetes. Estes registos contêm informações como a hora em que o pedido foi recebido, as especificidades do pedido, o utilizador que efetuou o pedido e a ação tomada. Esta análise de registos é essencial para manter a segurança e a conformidade das aplicações em contentores em execução em clusters do EKS.

Este conector inclui um script de inclusão baseado na CloudFormation do AWS para simplificar a criação dos recursos do AWS utilizados pelo conector.

Importante

Descrição geral

O conector de dados EKS S3 do Amazon Web Services serve os seguintes casos de utilização:

  • Monitorização de segurança e deteção de ameaças do Kubernetes: Analise os registos de auditoria do AWS EKS para ajudar a identificar e responder a ameaças de segurança, como acessos não autorizados, escalonamento de privilégios e chamadas APIs suspeitas dentro dos seus clusters Kubernetes. Ao ingerir estes registos no Microsoft Sentinel, pode utilizar a análise avançada e as informações sobre ameaças para detetar e investigar atividades maliciosas direcionadas para as cargas de trabalho em contentores.

  • Conformidade e auditoria para ambientes containerizados: Os registos de auditoria AWS EKS fornecem registos detalhados de todas as interações com servidores API, que são cruciais para fins de relatórios e auditorias de conformidade em ambientes contentorizados. O conector garante que estes registos de auditoria estão disponíveis no Microsoft Sentinel para facilitar o acesso e a análise, ajudando a cumprir os requisitos regulamentares para a segurança dos contentores.

  • DevSecOps e governação de clusters: Monitorize as atividades dos programadores, padrões de acesso a recursos e alterações de configuração dentro dos seus clusters EKS para garantir práticas adequadas de governação e segurança nos seus fluxos de trabalho DevSecOps.

Este artigo explica como configurar o conector Amazon Web Services S3 EKS. O processo de configuração tem duas partes: o lado do AWS e o lado Microsoft Sentinel. O processo de cada lado produz informações utilizadas pelo outro lado. A troca de detalhes de configuração entre a configuração AWS e a configuração do Microsoft Sentinel cria uma comunicação segura.

Pré-requisitos

  • Tem de ter permissão de escrita na área de trabalho Microsoft Sentinel.

  • Instale a solução Amazon Web Services a partir do Hub de Conteúdos no Microsoft Sentinel. Se já tiver instalado uma versão anterior da solução, atualize a solução no hub de conteúdos para garantir que tem a versão mais recente que inclui este conector. Para obter mais informações, consulte Detetar e gerir o conteúdo pronto a utilizar do Microsoft Sentinel.

  • Tem de ter um cluster do AWS EKS existente com o registo de auditoria ativado ou a capacidade de ativar o registo de auditoria no cluster do EKS durante o processo de configuração.

  • Tem de ter as permissões de IAM do AWS adequadas para:

    • Criar funções e políticas de IAM
    • Criar buckets do S3 e configurar políticas dos buckets
    • Criar filas SQS e configurar políticas de fila
    • Criar pilhas de CloudFormation
    • Configurar as definições de registo do cluster do EKS
    • Criar fluxos de entrega do Kinesis Data Firehose
    • Criar funções lambda

Ativar e configurar o conector Amazon Web Services S3 EKS

Para ativar e configurar o conector, conclua as seguintes tarefas:

  • No seu ambiente do AWS:

    A página do conector Amazon Web Services S3 EKS no Microsoft Sentinel fornece modelos de pilha AWS CloudFormation descarregáveis que automatizam as seguintes tarefas da AWS:

    • Configure o seu cluster do Amazon EKS para enviar registos de auditoria para CloudWatch Logs.

    • Crie um fluxo de entrega do Kinesis Data Firehose para transformar e entregar registos do CloudWatch para o S3.

    • Crie um S3 bucket para armazenar os registos de auditoria processados.

    • Crie uma fila do Simple Queue Service (SQS) para receber notificações sempre que forem criados novos ficheiros de registo no S3.

    • Crie um fornecedor de identidade Web para autenticar os utilizadores no AWS através do OpenID Connect (OIDC).

    • Crie uma função assumida para conceder permissões aos utilizadores autenticados pelo fornecedor de identidade Web OIDC para aceder aos seus recursos do AWS.

    • Anexe as políticas de permissões de IAM adequadas para conceder à função assumida acesso aos recursos adequados (registo S3, SQS).

    • Crie uma função Lambda para transformar os registos de auditoria do EKS no formato esperado pelo Microsoft Sentinel.

  • Em Microsoft Sentinel:

    • Configure o Conector S3 EKS do Amazon Web Services no portal do Microsoft Sentinel, adicionando coletores de registos que sondam a fila do SQS e obtêm dados de registo do bucket S3. Para mais informações, consulte Adicionar coletores de log.

Configurar o ambiente do AWS

Para simplificar o processo de integração, a página do conector Amazon Web Services S3 EKS no Microsoft Sentinel fornece modelos transferíveis para utilização com o serviço CloudFormation do AWS. O serviço CloudFormation utiliza estes modelos para criar automaticamente pilhas de recursos no AWS. Estas pilhas incluem os recursos descritos neste artigo, juntamente com credenciais, permissões e políticas.

Nota

Utilize o processo de configuração automática. Para casos especiais, veja as instruções de configuração manual.

Preparar os ficheiros de modelo

Para executar o script que configura o ambiente do AWS, utilize os seguintes passos:

  1. Na portal do Azure, no menu de navegação Microsoft Sentinel, expanda Configuração e selecione Conectores de dados.

    No portal do Defender, no menu de iniciação rápida, expanda Microsoft Sentinel > Configuração e selecione Conectores de dados.

  2. Selecione Amazon Web Services S3 EKS na lista de conectores de dados.

    Se não vir o conector, instale a solução Amazon Web Services no Hub de Conteúdos, em Gestão de conteúdos no Microsoft Sentinel, ou atualize a solução para a versão mais recente.

  3. No painel de detalhes do conector, selecione Abrir página do conector.

    Captura de ecrã da galeria de conectores de dados a mostrar o conector AWS S3 EKS.

  4. Na secção Configuração, em 1. Implementação do AWS CloudFormation, selecione a hiperligação AWS CloudFormation Stacks. Esta ação abre a consola do AWS num novo separador do browser.

  5. Volte ao separador do portal onde tem o Microsoft Sentinel aberto. Selecione Download em Modelo 1: implementação da autenticação OpenID Connect para transferir o modelo que cria o fornecedor de identidade web OIDC. O modelo é descarregado como um ficheiro JSON na pasta de transferências predefinida.

    Nota

    Se já tiver um fornecedor de identidade Web OIDC de uma configuração anterior do conector do AWS, ignore este passo.

  6. Selecione Transferirem Modelo 2: Implementação de recursos do AWS EKS para transferir o modelo que cria os outros recursos do AWS. O modelo é descarregado como um ficheiro JSON na pasta de transferências predefinida.

    Captura de ecrã da página de configuração do conector EKS do AWS S3.

Criar pilhas de CloudFormation do AWS

Regresse ao separador do browser AWS Console, que está aberto na página CloudFormation do AWS para criar uma pilha.

Se ainda não tiver sessão iniciada no AWS, inicie sessão agora. É redirecionado para a página CloudFormation do AWS.

Criar o fornecedor de identidade Web OIDC

Importante

Se já tiver o fornecedor de identidade Web OIDC de uma configuração anterior do conector do AWS, ignore este passo e avance para Criar os recursos do AWS restantes.
Se já tiver um fornecedor OIDC Connect configurado para o Microsoft Defender para a Cloud, adicione o Microsoft Sentinel como público ao seu fornecedor existente (Comercial: api://1462b192-27f7-4cb9-8523-0f4ecb54b47e, Governo: api://d4230588-5f84-4281-a9c7-2c15194b28f7). Não tente criar um novo fornecedor de OIDC para Microsoft Sentinel.

Siga as instruções na página da Consola da AWS para criar uma nova stack.

  1. Especifique um modelo e carregue um ficheiro de modelo.

  2. Selecione Escolher ficheiro e localize o Modelo 1: Autenticação do OpenID Connect deployment.json ficheiro que transferiu.

  3. Escolha um nome para a pilha.

  4. Prossiga pelas restantes etapas do processo e crie a stack.

Criar os recursos restantes do AWS

  1. Volte à página Pilhas do AWS CloudFormation e crie uma nova pilha.

  2. Selecione Escolher ficheiro e localize o ficheiro Modelo 2: implementação de recursos do AWS EKS.json que transferiu.

  3. Escolha um nome para a pilha.

  4. Quando lhe for pedido, introduza os seguintes parâmetros:

    • EKSClusterName: introduza o nome do cluster EKS existente.
    • ID da área de trabalho do Microsoft Sentinel: Para encontrar o ID da área de trabalho:
      • No portal do Azure, no menu de navegação Microsoft Sentinel, expanda Configuração e selecione Definições. Selecione o separador Definições do Espaço de Trabalho e encontre o ID do Espaço de Trabalho na página do Log Analytics.
      • No portal do Defender, no menu de iniciação rápida, expanda Sistema e selecione Definições. Selecione Microsoft Sentinel e, em seguida, selecione Definições do Log Analytics em Definições para [WORKSPACE_NAME]. Localize o ID da Área de Trabalho na página da área de trabalho do Log Analytics, que é aberta num novo separador do browser.
    • BucketName: introduza um nome exclusivo para o registo S3 onde os registos de auditoria do EKS estão armazenados.
    • SentinelSQSQueueName: introduza um nome para a fila do SQS (predefinição: MicrosoftSentinelEKSSqs).
    • AwsRoleName: introduza um nome para a função IAM (tem de começar com "OIDC_", predefinição: OIDC_MicrosoftSentinelRoleEKS).
  5. Prossiga pelas restantes etapas do processo e crie a stack.

  6. Depois de concluída a criação da pilha, aceda à secção Saídas da pilha CloudFormation e anote os seguintes valores:

    • SentinelRoleArn: o ARN da função do IAM criada para o acesso do Microsoft Sentinel.
    • SentinelSQSQueueURL: o URL da fila do SQS.
    • Step1EnableEKSAuditLogging: comando da CLI do AWS para ativar o registo de auditoria do EKS.
    • Step2CreateSubscriptionFilter: comando da CLI do AWS para criar o filtro de subscrição de Registos do CloudWatch.

Ativar o registo de auditoria do EKS e configurar o streaming de registos

Depois de criar as stacks do CloudFormation, ative o registo de auditoria no seu cluster EKS e configure a transmissão de registos:

  1. Se o registo de auditoria ainda não estiver ativado no cluster EKS, execute o comando fornecido no resultado Step1EnableEKSAuditLogging da stack do CloudFormation.

  2. Aguarde cerca de cinco minutos para que os registos de auditoria comecem a aparecer nos Registos do CloudWatch.

  3. Execute o comando fornecido na saída Step2CreateSubscriptionFilter para criar um filtro de subscrição que transmite os registos de auditoria do CloudWatch para o fluxo de entrega kinesis Data Firehose.

  4. A função Lambda transforma automaticamente os registos de auditoria do EKS no formato esperado pelo Microsoft Sentinel e entrega-os ao S3, onde acionam notificações SQS para ingestão.

Adicionar coletores de registos

Quando criar as pilhas de recursos e configurar o registo de auditoria do EKS, regresse ao separador do navegador aberto na página do conector de dados no Microsoft Sentinel e inicie a segunda parte do processo de configuração.

  1. Na secção Configuração , em 2. Ligue novos recoletores e selecione Adicionar novo recoletor.

    Captura de ecrã da segunda parte da configuração do conector EKS do AWS.

  2. Introduza o ARN da função da função IAM que criou. Utilize o valor da saída SentinelRoleArn da pilha CloudFormation (por exemplo, arn:aws:iam::{AWS_ACCOUNT_ID}:role/OIDC_MicrosoftSentinelRoleEKS).

  3. Introduza o URL da fila do SQS que criou. Utilize o valor da saída SentinelSQSQueueURL da pilha CloudFormation (por exemplo, https://sqs.{AWS_REGION}.amazonaws.com/{AWS_ACCOUNT_ID}/MicrosoftSentinelEKSSqs).

  4. Selecione Ligar para adicionar o recoletor. Esta ação cria uma regra de recolha de dados para o Agente do Azure Monitor recolher os registos e ingeri-los na tabela dedicada AWSEKSLogs_CL na sua área de trabalho do Log Analytics.

    Captura de ecrã a mostrar a adição de um novo recoletor para registos EKS.

Verificar a ingestão de dados

Use os seguintes passos para verificar se os dados do registo de auditoria EKS estão a ser ingeridos no seu espaço de trabalho Microsoft Sentinel.

  1. Depois de configurar o conector, aceda à página Registos (ou à página Investigação avançada no portal do Defender) e execute a seguinte consulta. Se obtiver resultados, o conector está a funcionar corretamente.

    AWSEKSLogs_CL
    | take 10
    
  2. Também pode executar consultas mais específicas para explorar os dados de auditoria do 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
    

Referência de esquema

Os registos de auditoria do EKS são ingeridos na tabela AWSEKSLogs_CL com o seguinte esquema:

Coluna Tipo Descrição
TimeGenerated datetime A hora em que o evento de auditoria foi gerado
AwsAccountId cadeia (de caracteres) ID da conta do AWS onde o cluster do EKS está localizado
Região cadeia (de caracteres) Região do AWS onde o cluster do EKS está localizado
ClusterName cadeia (de caracteres) Nome do cluster EKS
Verbo cadeia (de caracteres) O verbo HTTP associado ao pedido da API (GET, POST, PUT, DELETE, etc.)
Utilizador cadeia (de caracteres) Informações sobre o utilizador que está a fazer o pedido
IPs de origem dinâmico Matriz de endereços IP de origem a partir dos quais o pedido teve origem
UserAgent cadeia (de caracteres) Sequência do agente de utilizador do cliente que faz o pedido
ObjectRef cadeia (de caracteres) Referência ao objeto do Kubernetes que está a ser acedido
ResponseCode int Código de resposta HTTP para o pedido da API
Fase cadeia (de caracteres) Fase do processamento da solicitação (RequestReceived, ResponseStarted, ResponseComplete, Panic)
AuthDecision cadeia (de caracteres) Decisão de autorização tomada pelo servidor de API
RawEvent dinâmico Concluir dados de eventos de auditoria não processados para análise avançada

Resolução de Problemas

Problemas comuns e soluções

Os seguintes problemas e soluções comuns podem ajudá-lo a resolver problemas de configuração de conectores.

  • Não são apresentados dados na tabela AWSEKSLogs_CL:

    • Verifique se o registo de auditoria do EKS está ativado no cluster.
    • Verifique se o filtro de subscrição de Registos do CloudWatch está configurado corretamente.
    • Certifique-se de que a função Lambda processa os registos sem erros. Verifique os Registos do CloudWatch para ver se existem registos de funções do Lambda.
    • Verifique se as notificações do bucket S3 estão configuradas corretamente para desencadear o envio de mensagens para o SQS.
  • Falha na criação da pilha CloudFormation:

    • Certifique-se de que tem permissões de IAM suficientes para criar todos os recursos necessários.
    • Verifique se o nome do cluster EKS que forneceu existe na sua conta.
    • Verifique se o nome do bucket do S3 é globalmente único.
  • Erros de autenticação:

    • Verifique se o fornecedor de identidade Web OIDC está configurado corretamente.
    • Certifique-se de que as permissões da função IAM são suficientes para aceder aos recursos S3 e SQS.
    • Verifique se o ID da área de trabalho utilizado no modelo CloudFormation corresponde à área de trabalho Microsoft Sentinel.

Monitorização avançada

Se ainda não o fez, implemente a monitorização do estado de funcionamento do conector de dados para que possa saber quando é que os conectores não estão a receber dados ou se têm outros problemas. Para obter mais informações, veja Monitorizar o estado de funcionamento dos conectores de dados.