Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
AWS アカウントのルートユーザーログインアラート用の EventBridge ルールを作成する方法を教えてください。
アカウントのセキュリティの一環として、誰かが AWS マネジメントコンソールを使用して AWS アカウントのルートユーザーにアクセスしたときに E メール通知を受け取りたいです。
解決策
アカウントルートユーザーのログインアクティビティをモニタリングするには、AWS CloudTrail ログの UserIdentity 要素をモニタリングする Amazon EventBridge ルールを作成します。EventBridge ルールは Amazon Simple Notification Service (Amazon SNS) を使用して、ルートユーザーが AWS マネジメントコンソールにサインインしたときに通知を送信します。
CloudTrail が API コールを EventBridge に送信するには、EventBridge ルールと同じ AWS リージョンに証跡を作成する必要があります。証跡の管理イベントを設定して、[読み取りと書き込み] または [書き込み] のみにします。
EventBridge ルールと SNS トピックを作成するには、Amazon SNS と EventBridge を使用できます。または、AWS CloudFormation を使用します。
Amazon SNS と EventBridge を使用する
Amazon SNS トピックとサブスクリプションを作成する
次の手順を実行します。
- Amazon SNS トピックを作成します。
- トピックにエンドポイントをサブスクライブします。
- E メールの受信ボックスに AWS の確認メールが届いているか確認します。
- E メールで [サブスクリプションの確認] を選択して SNS サブスクリプションリクエストを確認します。「サブスクリプションが確認されました」というメッセージが送信されます。
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 からの通知を受信させたい E メールアドレスを入力します。
SNS の設定をテストする
次の手順を実行します。
- AWS マネジメントコンソールからサインアウトして、アカウントルートユーザーとして AWS マネジメントコンソールにサインインします。
- E メールの受信トレイで AWS の通知メッセージを確認します。
- ログインイベントの詳細を含む CloudTrail レコードのユーザーアイデンティティ、sourceIPAddress、MFAUsed に注意してください。
**注:**通知を受け取らないようにするには、作成した CloudFormation スタックを削除します。
関連情報
How to Receive Notifications When Your AWS Account’s Root Access Keys Are Used
- 言語
- 日本語
