Ir para o conteúdo

Como faço para criar uma regra do EventBridge para alertas de login de usuário-raiz na conta da AWS?

5 minuto de leitura
0

Como parte da segurança da minha conta, quero receber notificações por e-mail quando alguém usa o Console de Gerenciamento da AWS para acessar o usuário-raiz da minha conta da AWS.

Resolução

Para monitorar a atividade de login do usuário-raiz da conta, crie uma regra do Amazon EventBridge que monitore o elemento userIdentity nos logs do AWS CloudTrail. A regra do EventBridge usa o Amazon Simple Notification Service (Amazon SNS) para enviar notificações quando o usuário-raiz faz login no Console de Gerenciamento da AWS.

Para que o CloudTrail envie chamadas de API para o EventBridge, você deve criar uma trilha na mesma região da AWS que a regra do EventBridge. Configure os eventos de gerenciamento da trilha como Leitura e Gravação ou somente Gravação.

Para criar a regra do EventBridge e o tópico do SNS, é possível usar o Amazon SNS e o EventBridge. Ou use o AWS CloudFormation.

Use o Amazon SNS e o EventBridge

Crie um tópico e uma assinatura do Amazon SNS

Conclua as etapas a seguir:

  1. Crie um tópico do Amazon SNS.
  2. Inscreva um endpoint no tópico.
  3. Verifique sua caixa de entrada de e-mail para encontrar o e-mail de confirmação da AWS.
  4. No e-mail, clique em Confirmar inscrição para confirmar a solicitação de inscrição do SNS. Você receberá uma mensagem “Inscrição confirmada!”.

Crie uma regra do EventBridge

Conclua as etapas a seguir:

  1. Abra o console do EventBridge na região leste dos EUA (Norte da Virgínia).

  2. No painel de navegação, clique em Regras e, em seguida, Criar regra.

  3. Em Nome and Descrição, insira um nome e uma descrição para a regra.

  4. Em Tipo de regra, selecione Regra com um padrão de evento e, em seguida, clique em Avançar.

  5. Em Origem do evento, selecione eventos da AWS ou eventos de parceiros do EventBridge.

  6. Em Padrão de evento, clique em Padrão personalizado (editor JSON).

  7. No editor JSON do Padrão de evento, insira o seguinte padrão de login do usuário-raiz:

    {
    
    "detail-type": ["AWS Console Sign In via CloudTrail"],
    
    "detail": {
    
    "userIdentity": {
    
    "type": ["Root"]
    
    }
    
    }
    
    }
  8. Selecione Avançar.

  9. Defina as seguintes configurações para seu destino:
    Para Tipos de destino, escolha Serviço da AWS.
    Em Selecionar um destino, escolha Tópico do SNS.
    Em Tópico, selecione o tópico que você criou.

  10. Selecione Avançar.

  11. (Opcional) Adicione tags à regra.

  12. Selecione Avançar.

  13. Revise os detalhes da regra e clique em Criar regra.

Use o CloudFormation

Crie o modelo do CloudFormation

Para criar a regra do EventBridge e o tópico do SNS, insira o seguinte modelo YAML em um editor de texto e salve o arquivo:

# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

AWSTemplateFormatVersion: '2010-09-09'
Description: ROOT-AWS-Console-Sign-In-via-CloudTrail
Metadata:
  AWS::CloudFormation::Interface:
    ParameterGroups:
    - Label:
        default: Amazon SNS parameters
      Parameters:
      - Email Address
Parameters:
  EmailAddress:
    Type: String
    ConstraintDescription: Email address required.
    Description: Enter an email address you want to subscribe to the Amazon SNS topic
      that will send notifications if your account's AWS root user logs in.
Resources:
  RootActivitySNSTopic:
    Type: AWS::SNS::Topic
    Properties:
      DisplayName: ROOT-AWS-Console-Sign-In-via-CloudTrail
      Subscription:
      - Endpoint:
          Ref: EmailAddress
        Protocol: email
      TopicName: ROOT-AWS-Console-Sign-In-via-CloudTrail
  EventsRule:
    Type: AWS::Events::Rule
    Properties:
      Description: Events rule for monitoring root AWS Console Sign In activity
      EventPattern:
        detail-type:
        - AWS Console Sign In via CloudTrail
        detail:
          userIdentity:
            type:
            - Root
      Name:
        Fn::Sub: "${AWS::StackName}-RootActivityRule"
      State: ENABLED
      Targets:
      - Arn:
          Ref: RootActivitySNSTopic
        Id: RootActivitySNSTopic
    DependsOn:
    - RootActivitySNSTopic
  RootPolicyDocument:
    Type: AWS::SNS::TopicPolicy
    Properties:
      PolicyDocument:
        Id: RootPolicyDocument
        Version: '2012-10-17'
        Statement:
        - Sid: RootPolicyDocument
          Effect: Allow
          Principal:
            Service: events.amazonaws.com
          Action: sns:Publish
          Resource:
          - Ref: RootActivitySNSTopic
      Topics:
      - Ref: RootActivitySNSTopic
Outputs:
  EventsRule:
    Value:
      Ref: EventsRule
    Export:
      Name:
        Fn::Sub: "${AWS::StackName}-RootAPIMonitorEventsRule"
    Description: Event Rule ID.

Crie a pilha do CloudFormation

Use o console do CloudFormation para criar a pilha do CloudFormation. Na página Criar pilha, clique em Fazer upload de um arquivo de modelo para carregar o modelo que você criou. Na página Configurar opções de pilha, em Opções de notificações, insira o endereço de e-mail para o qual você deseja que a AWS envie notificações.

Teste sua configuração do SNS

Conclua as etapas a seguir:

  1. Saia do Console de Gerenciamento da AWS e, em seguida, entre no Console de Gerenciamento da AWS como usuário-raiz da conta.
  2. Verifique se há uma notificação da AWS em sua caixa de entrada de e-mail.
  3. Observe os registros do CloudTrail userIdentity, sourceIPAddress e MFAUsed que contêm detalhes sobre o evento de login.

Observação: para não receber mais notificações, exclua a pilha do CloudFormation que você criou.

Informações relacionadas

How to receive notifications when your AWS account's root access keys are used (Como receber notificações quando as chaves de acesso raiz da sua conta da AWS são usadas)

Monitorar e notificar sobre a atividade do usuário raiz da conta da AWS

AWS::CloudWatch::Alarm