AWS 계정 루트 사용자 로그인 알림에 대한 EventBridge 규칙을 만들려면 어떻게 해야 합니까?
계정 보안의 일환으로 누군가가 AWS Management Console을 사용하여 내 AWS 계정 루트 사용자에 액세스할 때 이메일 알림을 받고 싶습니다.
해결 방법
계정 루트 사용자 로그인 활동을 모니터링하려면 AWS CloudTrail 로그의 userIdentity 요소를 모니터링하는 Amazon EventBridge 규칙을 만듭니다. EventBridge 규칙은 루트 사용자가 AWS Management Console에 로그인할 때 Amazon Simple Notification Service(Amazon SNS)를 사용하여 알림을 보냅니다.
CloudTrail이 API 호출을 EventBridge로 보내려면 EventBridge 규칙과 동일한 AWS 리전에 추적을 만들어야 합니다. 읽기 및 쓰기 또는 쓰기 전용으로 추적의 관리 이벤트를 구성합니다.
EventBridge 규칙 및 SNS 주제를 만들려면 Amazon SNS 및 EventBridge를 사용하면 됩니다. 또는 AWS CloudFormation을 사용합니다.
Amazon SNS 및 EventBridge 사용
Amazon SNS 주제 및 구독 만들기
다음 단계를 완료하십시오.
- Amazon SNS 주제를 만듭니다.
- 엔드포인트에서 주제를 구독합니다.
- 이메일 받은 편지함에서 AWS 확인 이메일을 확인합니다.
- 이메일에서 구독 확인을 선택하여 SNS 구독 요청을 확인합니다. 그러면 "Subscription confirmed!"라는 메시지가 표시됩니다.
EventBridge 규칙 만들기
다음 단계를 완료하십시오.
-
미국 동부(버지니아 북부) 리전에서 EventBridge 콘솔을 엽니다.
-
탐색 창에서 규칙를 선택한 다음, 규칙 생성을 선택합니다.
-
이름 및 설명에 규칙의 이름과 설명을 입력합니다.
-
규칙 유형에서 이벤트 패턴이 있는 규칙을 선택한 후 다음을 선택합니다.
-
이벤트 소스에서 AWS 이벤트 또는 EventBridge 파트너 이벤트를 선택합니다.
-
이벤트 패턴에서 **사용자 지정 패턴(JSON 편집기)**을 선택합니다.
-
이벤트 패턴 JSON 편집기에서 다음과 같은 루트 사용자 로그인 패턴을 입력합니다.
{ "detail-type": ["AWS Console Sign In via CloudTrail"], "detail": { "userIdentity": { "type": ["Root"] } } } -
다음을 선택합니다.
-
대상에 대해 다음과 같은 설정을 구성합니다.
대상 유형에서 AWS 서비스를 선택합니다.
대상 선택에서 SNS 주제를 선택합니다.
주제에서 만든 주제를 선택합니다. -
다음을 선택합니다.
-
(선택 사항) 역할에 태그를 추가합니다.
-
다음을 선택합니다.
-
규칙의 세부 정보를 검토한 다음 규칙 생성을 선택합니다.
CloudFormation 사용
CloudFormation 템플릿 만들기
EventBridge 규칙 및 SNS 주제를 만들려면 다음 YAML 템플릿을 텍스트 편집기에 입력한 다음 파일을 저장합니다.
# 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.
CloudFormation 스택 만들기
CloudFormation 콘솔을 사용하여 CloudFormation 스택을 만듭니다. 스택 생성 페이지에서 템플릿 파일 업로드를 선택하여 만든 템플릿을 업로드합니다. 스택 옵션 구성 페이지의 알림 옵션에서 AWS가 알림을 보내도록 할 이메일 주소를 입력합니다.
SNS 설정 테스트
다음 단계를 완료하십시오.
- AWS Management Console에서 로그아웃한 다음 계정 루트 사용자로 AWS Management Console에 로그인합니다.
- 이메일 받은 편지함에서 AWS 알림을 확인합니다.
- 로그인 이벤트에 대한 세부 정보가 포함된 userIdentity, sourceIPAddress 및 MFAUsed라는 CloudTrail 레코드를 확인합니다.
참고: 더 이상 알림을 받지 않으려면 만든 CloudFormation 스택을 삭제하십시오.
관련 정보
- 언어
- 한국어

관련 콘텐츠
- 질문됨 10달 전