Conectar o Microsoft Azure Sentinel com o Amazon Web Services para ingerir dados de log de serviço do AWS

Use os conectores da AWS (Amazon Web Services) para efetuar pull dos logs de serviço da AWS no Microsoft Sentinel. Esses conectores funcionam permitindo ao Microsoft Sentinel acesso aos logs de recursos da AWS. A configuração do conector estabelece uma relação de confiança entre o Amazon Web Services e o Microsoft Sentinel. Isso é feito no AWS criando uma função que concede permissão ao Microsoft Sentinel para acessar os logs do AWS.

Este conector está disponível em duas versões: o conector legado para gerenciamento e logs de dados do CloudTrail e a nova versão que pode ingerir logs dos seguintes serviços da AWS, extraindo-os de um bucket S3 (os links são para a documentação da AWS):

Esta guia explica como configurar o conector do AWS S3. O processo de configuração tem duas partes: o lado da AWS e o lado do Microsoft Sentinel. O processo de cada lado produz informações usadas pelo outro lado. Essa autenticação bidirecional cria uma comunicação segura.

Pré-requisitos

  • Verifique se os logs do serviço AWS selecionado usam o formato aceito pelo Microsoft Sentinel:

    • Amazon VPC: arquivo .csv em formato GZIP com cabeçalhos; delimitador: espaço.
    • Amazon GuardDuty: formatos json-line e GZIP.
    • AWS CloudTrail: arquivo .json em um formato GZIP.
    • CloudWatch: arquivo .csv em um formato GZIP sem um cabeçalho. Se você precisar converter seus logs para esse formato, poderá usar essa função lambda do CloudWatch.
  • Você precisa ter permissão de gravação no espaço de trabalho do Microsoft Sentinel.

  • Instale a solução Amazon Web Services do Hub de Conteúdo no Microsoft Sentinel. Para obter mais informações, consulte Descobrir e gerenciar o conteúdo pronto para uso do Microsoft Sentinel.

Visão geral da arquitetura

Este gráfico e o texto a seguir mostram como as partes dessa solução de conector interagem.

Screenshot of A W S S 3 connector architecture.

  • Os serviços AWS são configurados para enviar logs ao buckets de armazenamento do S3 (Simple Storage Service).

  • O bucket S3 envia mensagens de notificação à fila de mensagens do SQS (Simple Queue Service) sempre que recebe novos logs.

  • O conector do AWS S3 do Microsoft Sentinel sonda a fila do SQS em intervalos regulares e frequentes. Se houver uma mensagem na fila, ela conterá o caminho para os arquivos de log.

  • O conector lê a mensagem com o caminho e busca os arquivos do bucket S3.

  • Para se conectar à fila SQS e ao bucket S3, o Microsoft Sentinel usa um provedor de identidade web federado (Microsoft Entra ID) para autenticação com AWS por meio do OpenID Connect (OIDC) e assumindo uma função AWS IAM. A função é configurada com uma política de permissões que lhe dá acesso a esses recursos.

Conectar o conector S3

  • Em seu ambiente da AWS:

    • Configure seus serviços AWS para enviar logs a um bucket S3.

    • Crie uma fila do SQS (Simple Queue Service) para fornecer notificação.

    • Crie um provedor de identidade web para autenticar usuários na AWS por meio do OpenID Connect (OIDC).

    • Crie uma função assumida para conceder permissões a usuários autenticados pelo provedor de identidade da web OIDC para acessar seus recursos da AWS.

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

    Disponibilizamos no repositório do GitHub, um script que automatiza o lado da AWS desse processo. Confira as instruções de instalação automática mais adiante neste documento.

  • No Microsoft Sentinel:

Configuração automática

Para simplificar o processo de integração, o Microsoft Sentinel forneceu um script do PowerShell para automatizar a configuração do lado da AWS do conector, ou seja, os recursos, as credenciais e as permissões da AWS necessários.

O script toma as seguintes ações:

  • Cria um provedor de identidade da web OIDC para autenticar usuários do Microsoft Entra ID na AWS.

  • Cria uma função assumida pelo IAM com as permissões mínimas necessárias, para conceder aos usuários autenticados pelo OIDC acesso aos seus logs em um determinado bucket S3 e fila SQS.

  • Permite que os serviços AWS especificados enviem logs para esse bucket S3 e mensagens de notificação para essa fila do SQS.

  • Se necessário, cria esse bucket S3 e essa fila do SQS para essa finalidade.

  • Configura as políticas de permissões de IAM necessárias e aplica-as à função de IAM criada acima.

Para nuvens do Microsoft Azure Governamental, um script especializado cria um fornecedor de identidade web OIDC diferente, ao qual atribui a função assumida pelo IAM.

Pré-requisitos para configuração automática

Instruções

Para executar o script a fim de configurar o conector, siga as seguintes etapas:

  1. No menu de navegação do Microsoft Sentinel, selecione Conectores de dados.

  2. Selecione Amazon Web Services S3 na galeria de conectores de dados.

    Se você não vir o conector, instale a solução Amazon Web Services do Hub de Conteúdo no Microsoft Sentinel.

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

  4. Na seção Configuração, em 1. Configurar o ambiente da AWS, expanda Instalação com o script do PowerShell (recomendado).

  5. Siga as instruções na tela para baixar e extrair o Script de Instalação do AWS S3 (o link baixa um arquivo zip que contém o script de instalação principal e scripts auxiliares) da página do conector.

    Observação

    Para ingerir logs da AWS em uma nuvem do Azure Governamental, baixe e extraia esse script de instalação do AWS S3 Gov especializado.

  6. Antes de executar o script, execute o comando aws configure na linha de comando do PowerShell e insira as informações relevantes conforme solicitadas. Confira a Interface da linha de comando da AWS | Noções básicas de configuração (da documentação da AWS) para obter detalhes.

  7. Agora, execute o script. Copie o comando da página do conector (em "Executar script para configurar o ambiente") e copie-o na linha de comando.

  8. O script solicitará que você insira sua ID do workspace. Essa ID aparece na página do conector. Copie-o e cole-o no prompt do script.

    Screenshot of command to run setup script and workspace ID.

  9. Quando a execução do script terminar, copie o ARN da Função e a URL do SQS da saída do script (veja o exemplo na primeira captura de tela abaixo) e copie-os nos respectivos campos na página do conector em 2. Adicionar conexão (confira a segunda captura de tela abaixo).

    Screenshot of output of A W S connector setup script.

    Screenshot of pasting the A W S role information from the script, to the S3 connector.

  10. Selecione um tipo de dados na lista suspensa Tabela de destino. Isso informa ao conector com quais logs do serviço AWS essa conexão está sendo estabelecida para coletar e em qual tabela do Log Analytics armazenará os dados ingeridos. Depois, selecione Adicionar conexão.

Observação

O script pode levar até 30 minutos para concluir a execução.

Instalação manual

A Microsoft recomenda usar o script de instalação automática para implantar esse conector. Se, por qualquer motivo, você não quiser aproveitar essa facilidade, siga as etapas abaixo para configurar o conector manualmente.

Prepare seus recursos da AWS

  1. Crie um bucket do S3 para o qual enviará os logs dos serviços da AWS – VPC, GuardDuty, CloudTrail ou CloudWatch.

  2. Crie uma fila de mensagens padrão do Simple Queue Service (SQS) na qual o bucket S3 publicará notificações.

  3. Configure o bucket S3 para enviar mensagens de notificação para sua fila do SQS.

Instalar o conector de dados da AWS e preparar o ambiente

  1. No Microsoft Sentinel, selecione Conectores de dados no menu de navegação.

  2. Selecione Amazon Web Services S3 na galeria de conectores de dados.

    Se você não vir o conector, instale a solução Amazon Web Services do Hub de Conteúdo no Microsoft Sentinel. Para obter mais informações, consulte Descobrir e gerenciar o conteúdo pronto para uso do Microsoft Sentinel.

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

  4. Em Configuração, expanda a Instalação com o script do PowerShell (recomendado) e copie a ID Externa (ID do workspace) para a área de transferência.

Crie um provedor de identidade da web Open ID Connect (OIDC) e uma função assumida pela AWS

  1. Em outra janela ou guia do navegador, abra o console da AWS.

  2. Crie um provedor de identidade da Web. Siga estas instruções na documentação da AWS:
    Criando provedores de identidade do OpenID Connect (OIDC).

    Parâmetro Seleção/Valor Comentários
    ID do Cliente - Ignore isso, você já tem. Veja a linha Público-alvo abaixo.
    Tipo de provedor OpenID Connect Em vez do SAML padrão.
    URL do provedor Comercial:
    sts.windows.net/33e01921-4d64-4f8c-a055-5bdaffd5e33d/

    Governo:
    sts.windows.net/cab8a31a-1906-4287-a0d8-4eef66b95f6e/
    Impressão Digital 626d44e704d1ceabe3bf0d53397464ac8080142c Se criado no console do IAM, selecionar Obter impressão digital deverá fornecer esse resultado.
    Público-alvo Comercial:
    api://1462b192-27f7-4cb9-8523-0f4ecb54b47e

    Governo:
    api://d4230588-5f84-4281-a9c7-2c15194b28f7
  3. Crie uma função IAM assumida. Siga estas instruções na documentação da AWS:
    Criando uma função para identidade da Web ou Federação do OpenID Connect.

    Use os valores dessa tabela para a Nuvem Comercial do Azure.

    Parâmetro Seleção/Valor Comentários
    Tipo de entidade confiável Identidade da Web Em vez do serviço da AWS padrão.
    Provedor de identidade sts.windows.net/33e01921-4d64-4f8c-a055-5bdaffd5e33d/ O provedor que você criou na etapa anterior.
    Público-alvo api://1462b192-27f7-4cb9-8523-0f4ecb54b47e O público-alvo definido para o provedor de identidade na etapa anterior.
    Permissões para atribuir
    • AmazonSQSReadOnlyAccess
    • AWSLambdaSQSQueueExecutionRole
    • AmazonS3ReadOnlyAccess
    • ROSAKMSProviderPolicy
    • Políticas adicionais para ingestão de diferentes tipos de logs de serviço da AWS
    Para obter informações sobre essas políticas, veja a página de políticas de permissões do conector AWS S3, no repositório GitHub do Microsoft Sentinel.
    Nome Exemplo: "OIDC_MicrosoftSentinelRole". Escolha um nome significativo que inclua uma referência ao Microsoft Sentinel.

    O nome deve incluir o prefixo exato OIDC_, caso contrário o conector não funcionará corretamente.

    Use os valores nessa tabela para a Nuvem Microsoft Azure Governamental.

    Parâmetro Seleção/Valor Comentários
    Tipo de entidade confiável Identidade da Web Em vez do serviço da AWS padrão.
    Provedor de identidade sts.windows.net/cab8a31a-1906-4287-a0d8-4eef66b95f6e/ O provedor que você criou na etapa anterior.
    Público-alvo api://d4230588-5f84-4281-a9c7-2c15194b28f7 O público-alvo definido para o provedor de identidade na etapa anterior.
    Permissões para atribuir
    • AmazonSQSReadOnlyAccess
    • AWSLambdaSQSQueueExecutionRole
    • AmazonS3ReadOnlyAccess
    • ROSAKMSProviderPolicy
    • Políticas adicionais para ingerir os diferentes tipos de logs de serviço da AWS.
    Para obter informações sobre essas políticas, confira a página de políticas de permissões de conector do AWS S3 para o Governo, no repositório GitHub do Microsoft Sentinel.
    Nome Exemplo: "OIDC_MicrosoftSentinelRole". Escolha um nome significativo que inclua uma referência ao Microsoft Sentinel.

    O nome deve incluir o prefixo exato OIDC_, caso contrário o conector não funcionará corretamente.
  4. Edite a política de confiança da nova função e adicione outra condição:
    "sts:RoleSessionName": "MicrosoftSentinel_{WORKSPACE_ID)"

    Importante

    O valor do parâmetro sts:RoleSessionName deve ter o prefixo MicrosoftSentinel_ exato, caso contrário, o conector não funcionará corretamente.

    A política de confiança concluída deve ter esta aparência:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Federated": "arn:aws:iam::XXXXXXXXXXXX:oidc-provider/sts.windows.net/cab8a31a-1906-4287-a0d8-4eef66b95f6e/"
          },
          "Action": "sts:AssumeRoleWithWebIdentity",
          "Condition": {
            "StringEquals": {
              "sts.windows.net/cab8a31a-1906-4287-a0d8-4eef66b95f6e/:aud": "api://d4230588-5f84-4281-a9c7-2c15194b28f7",
              "sts:RoleSessionName": "MicrosoftSentinel_XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
            }
          }
        }
      ]
    }
    
    • XXXXXXXXXXXX é a ID da Conta da AWS.
    • XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX é sua ID do workspace do Microsoft Sentinel.

    Atualize (salve) a política quando terminar de editar.

Adicionar a função da AWS e as informações da fila ao conector de dados S3

  1. Na guia do navegador aberta para o console da AWS, insira o serviço Gerenciamento de Identidade e Acesso (IAM) e navegue até a lista de Funções. Selecione a função que você criou acima.

  2. Copie o ARN para sua área de transferência.

  3. Insira o Serviço de Fila Simples, selecione a fila do SQS que você criou e copie o URL da fila para a área de transferência.

  4. Retorne à guia do navegador do Microsoft Sentinel, que deve estar aberta na página do conector de dados do Amazon Web Services S3 (Versão prévia). Em 2. Adicionar conexão:

    1. Cole o ARN da função de IAM que você copiou duas etapas atrás no campo Função a ser adicionada.
    2. Cole a URL da fila SQS que você copiou na última etapa no campo URL do SQS.
    3. Selecione um tipo de dados na lista suspensa Tabela de destino. Isso informa ao conector com quais logs do serviço AWS essa conexão está sendo estabelecida para coletar e em qual tabela do Log Analytics armazenará os dados ingeridos.
    4. Selecione Adicionar conexão.

    Screenshot of adding an A W S role connection to the S3 connector.

Configurar um serviço AWS para exportar logs para um bucket S3

Confira a documentação da Amazon Web Services (link abaixo) para obter as instruções para enviar cada tipo de log para o bucket S3:

Problemas conhecidos e soluções de problemas

Problemas conhecidos

  • Tipos diferentes de logs podem ser armazenados no mesmo bucket S3, mas não devem ser armazenados no mesmo caminho.

  • Cada fila do SQS deve apontar para um tipo de mensagem, portanto, se você quiser ingerir as conclusões do GuardDuty e os logs de fluxo do VPC, configure filas separadas para cada tipo.

  • Da mesma forma, uma só fila do SQS pode atender apenas a um caminho em um bucket S3, portanto, se por algum motivo você estiver armazenando logs em vários caminhos, cada caminho exigirá a própria fila do SQS dedicada.

Solução de problemas

Saiba como solucionar problemas do conector do Amazon Web Services S3.

Próximas etapas

Neste documento, você aprendeu a se conectar com os recursos da AWS para ingerir os respectivos logs no Microsoft Sentinel. Para saber mais sobre o Microsoft Sentinel, confira os seguintes artigos: