

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# チュートリアル: Amazon EventBridge を使用して、組織の重要な変更をモニタリングする
<a name="orgs_tutorials_cwe"></a>

このチュートリアルでは、組織の変更をモニタリングできるように Amazon EventBridge (旧 Amazon CloudWatch Events) を設定する方法を紹介します。まず、ユーザーが特定の AWS Organizations 操作を呼び出したときにトリガーされるルールを設定します。次に、ルールがトリガーされたときに AWS Lambda 関数を実行するように Amazon EventBridge を設定し、イベントに関する詳細を含む E メールを送信するように Amazon SNS を設定します。

次の図は、チュートリアルの主なステップを示しています。

**[ステップ 1: 証跡およびイベントセレクターを設定する](#tutorial-cwe-step1)**  
証*跡*と呼ばれるログを作成します AWS CloudTrail。すべての API コールをキャプチャするように設定します。

**[ステップ 2: Lambda 関数を設定する](#tutorial-cwe-step2)**  
イベントの詳細を S3 バケットに記録する AWS Lambda 関数を作成します。

**[ステップ 3: 受信者に E メールを送信する Amazon SNS トピックを作成する](#tutorial-cwe-step3)**  
受信者に E メールを送信する Amazon SNS トピックを作成し、自分自身でトピックをサブスクライブします。

**[ステップ 4: Amazon EventBridge ルールを作成する](#tutorial-cwe-step4)**  
指定された API コールの詳細を Lambda 関数および SNS トピックのサブスクライバーに渡すよう Amazon EventBridge に指示するルールを作成します。

**[ステップ 5: Amazon EventBridge ルールをテストする](#tutorial-cwe-step5)**  
監視対象の操作の 1 つを実行して新しいルールをテストします。このチュートリアルでは、監視対象の操作で、組織単位 (OU) を作成しています。Lambda 関数が作成するログエントリを表示し、Amazon SNS が受信者に送信する E メールを表示します。

**ヒント**  
このチュートリアルを、アカウントの作成が完了した際のメール通知を送信など、類似したオペレーションを設定するガイドとして使用することもできます。アカウントの作成は非同期オペレーションであるため、デフォルトでは完了時に通知されません。 AWS CloudTrail と Amazon EventBridge を で使用する方法の詳細については AWS Organizations、「」を参照してください[でのログ記録とモニタリング AWS Organizations](orgs_security_incident-response.md)。

## 前提条件
<a name="tutorial-cwe-prereqs"></a>

このチュートリアルでは、次のことを前提としています。
+ 組織内の管理アカウントから IAM ユーザー AWS マネジメントコンソール として にサインインできます。IAM ユーザーには、CloudTrail のログ、Lambda の関数、Amazon SNS のトピック、Amazon EventBridge のルールを作成および設定するためのアクセス許可が必要です。アクセス許可を付与する方法の詳細については、*IAM ユーザーガイド*の「[アクセス管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)」または、アクセスを設定するサービスのガイドを参照してください。
+ ステップ 1 で設定した CloudTrail ログを受信するための既存の Amazon Simple Storage Service (Amazon S3) バケットにアクセスできます (または、バケットを作成するアクセス許可があります)。

**重要**  
現在、 AWS Organizations は米国東部 (バージニア北部) リージョンでのみホストされています (グローバルに利用可能ですが）。このチュートリアルのステップを実行するには、そのリージョンを使用する AWS マネジメントコンソール ように を設定する必要があります。

## ステップ 1: 証跡およびイベントセレクターを設定する
<a name="tutorial-cwe-step1"></a>

このステップでは、管理アカウントにサインインして、 AWS CloudTrailでログ (*証跡*と呼ばれる) を設定します。また、Amazon EventBridge がトリガーを呼び出すように、証跡でイベントセレクターを設定し、すべての読み取り/書き込み API コールをキャプチャします。

**証跡を作成するには**

1. 組織の管理アカウントの管理者 AWS として にサインインし、 で CloudTrail コンソールを開きます[https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/)。

1. コンソールウィンドウの右上隅にあるナビゲーションバーで、**米国東部 (バージニア北部)** リージョンを選択します。別のリージョンを選択した場合、Amazon EventBridge 設定にはオプションとして表示 AWS Organizations されず、CloudTrail は情報をキャプチャしません AWS Organizations。

1. ナビゲーションペインで、**[Trails]** (追跡) を選択します。

1. **[追跡の作成]**を選択します。

1. **[Trail name]** (証跡名) に、**My-Test-Trail** と入力します。

1. CloudTrail がログを配信する場所を指定するには、次のいずれかのオプションを実行します。
   + バケットを作成する必要がある場合は、**[Create a new S3 bucket]** (新しい S3 バケットの作成) を選択し、**[Trail log bucket and folder]** (Trail ログバケットとフォルダ) に新しいバケットの名前を入力します。
**注記**  
S3 バケット名は、***グローバルに*** 一意である必要があります。
   + 既にバケットがある場合、[**Use existing S3 bucket**] (既存の S3 バケットを使用) を選択し、次に **S3 バケット** リストからバケット名を選択します。

1. [**次へ**] を選択します。

1. **[Choose log events]** (ログイベントの選択) ページの **[Management events]** (管理イベント) セクションで、**[Read]** (読み取り) と **[Write]** (書き込み) を選択します。

1. [**次へ**] を選択します。

1. 場所を確認して **[Create function]** (関数の作成) を選択します。

Amazon EventBridge では、アラームルールが着信 API コールと一致したときに、アラートを送信する複数の異なる方法から選択できます。このチュートリアルでは、2 つの方法について説明します。API コールをログに記録できる Lambda 関数を呼び出す方法、およびトピックの受信者へ E メールまたはテキストメッセージを送信する Amazon SNS トピックに情報を送信する方法です。次の 2 つのステップでは、必要なコンポーネントである Lambda 関数および Amazon SNS トピックを作成します。

## ステップ 2: Lambda 関数を設定する
<a name="tutorial-cwe-step2"></a>

このステップでは、後で設定する Amazon EventBridge ルールによって送信される API アクティビティをログに記録する Lambda 関数を作成します。

**Amazon EventBridge イベントをログに記録する Lambda 関数を作成するには**

1. で AWS Lambda コンソールを開きます[https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)。

1. Lambda を初めて利用する場合は、ようこそページの **[Get Started Now]** (今すぐ始める) を選択するか、**[Create function]** (関数を作成) を選択します。

1. [**Create function**] (関数の作成) ページで、[**Blueprints**] (設計図) を選択します。

1. [**設計図**] 検索ボックスでは、フィルターに **hello** を入力し、[**hello-world**] 設計図を選択します。

1. [**設定**] を選択します。

1. [**基本的な情報**] ページでは、以下を実行します。

   1. [**Name**] (名前) テキストボックスに、Lambda 関数名として **LogOrganizationEvents** を入力します。

   1. [**Role**] で、[**Create a new role with basic Lambda permissions**] を選択します。このロールは、必要なデータにアクセスし、出力ログを書き込むために Lambda 関数にアクセス許可を付与します。

1. 次の例に示すように、 Lambda 関数のコードを編集します。

   ```
   console.log('Loading function');
   
   exports.handler = async (event, context) => {
       console.log('LogOrganizationsEvents');
       console.log('Received event:', JSON.stringify(event, null, 2));
       return event.key1;  // Echo back the first key value
       // throw new Error('Something went wrong');
   };
   ```

   このサンプルコードでは、「**LogOrganizationEvents**」マーカー文字列の後にイベントを構成する JSON 文字列を続けてイベントをログに記録します。

1. [**関数の作成**] を選択してください。

## ステップ 3: 受信者に E メールを送信する Amazon SNS トピックを作成する
<a name="tutorial-cwe-step3"></a>

このステップでは、受信者に E メールで情報を送信する Amazon SNS トピックを作成します。このトピックを、後で作成する Amazon EventBridge ルールのターゲットにします。

**受信者に E メールを送信する Amazon SNS トピックを作成するには**

1. [https://console.aws.amazon.com/sns/v3/](https://console.aws.amazon.com/sns/v3/) で Amazon SNS コンソールを開きます。

1. ナビゲーションペインで、[**トピック**] を選択します。

1. [**Create new topic**] を選択します。

   1. [**トピック名**] に **OrganizationsCloudWatchTopic** と入力します。

   1. [**Display name (表示名)**] に **OrgsCWEvnt** と入力します。

   1. **[トピックを作成]** を選択します。

1. トピックのサブスクリプションを作成できるようになりました。先ほど作成したトピックの ARN を選択します。

1. [**Create subscription**] を選択してください。

   1. [**Create subscription**] ページの [**Protocol**] で [**Email**] を選択します。

   1. [**エンドポイント**] に E メールアドレスを入力します。

   1. **サブスクリプションの作成** を選択します。 AWS は、前のステップで指定した E メールアドレスに E メールを送信します。E メールが送信されたら、[**サブスクリプションを確認**] リンクを選択して、E メールを正常に受信したことを確認します。

   1. コンソールに戻り、ページを更新します。[**Pending confirmation**] メッセージが表示されなくなり、現在有効なサブスクリプション ID に置き換えられます。

## ステップ 4: Amazon EventBridge ルールを作成する
<a name="tutorial-cwe-step4"></a>

必要な Lambda 関数がアカウントに存在するようになったので、ルールの基準が満たされた場合にそのルールを呼び出す Amazon EventBridge ルールを作成します。

**EventBridge ルールを作成するには**

1. [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) で[Amazon EventBridge console] (Amazon EventBridge コンソール) を開きます。

1. コンソールを**米国東部 (バージニア北部)**リージョンに設定しないと、Organizations に関する情報は利用できません。コンソールウィンドウの右上隅にあるナビゲーションバーで、**米国東部 (バージニア北部)** リージョンを選択します。

1. ルールの作成手順については、「Amazon EventBridge ユーザーガイド」の「[Rules in Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)」を参照してください。

## ステップ 5: Amazon EventBridge ルールをテストする
<a name="tutorial-cwe-step5"></a>

このステップでは、組織単位 (OU) を作成して Amazon EventBridge ルールを確認し、ログエントリを生成して、イベントに関する詳細を E メールで送信します。

------
#### [ AWS マネジメントコンソール ]

**OU を作成するには**

1.  AWS Organizations コンソールを開いて [**AWS アカウント**ページ](https://console.aws.amazon.com/organizations/v2/home/accounts)に移動します。

1.  [![\[Blue checkmark icon indicating confirmation or completion of a task.\]](http://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/images/checkbox-selected.png) **Root**] (ルート) OU のチェックボックスをオンにし、[**Action**] (アクション) を選択してから、[**Organizational unit**] (組織単位) で [**Create new**] (新規作成) を選択します。

1. OU の名前では、**TestCWEOU** と入力してから、[**Create organizational unit (組織単位の作成)**] を選択します。

------

**EventBridge ログエントリを表示するには**

1. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) にある CloudWatch コンソールを開きます。

1. ナビゲーションページで [**Logs**] (ログ) を選択します。

1. [**Log Groups**] (ロググループ) で、Lambda 関数 [**/aws/lambda/LogOrganizationEvents**] に関連付けられているグループを選択します。

1. 各グループには 1 つ以上のストリームがあり、今日のための 1 つのグループがあります。これを選択します。

1. ログを表示します。次のような行が表示されます。  
![\[Organizations API コールの詳細を示す CloudWatch Events ログのサンプル\]](http://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/images/tutorial-sample-CWE-log.png)

1. エントリの中央の行を選択すると、受信したイベントの完全な JSON テキストが表示されます。API リクエストのすべての詳細は、出力の `requestParameters` および `responseElements` で確認できます。

   ```
   2017-03-09T22:45:05.101Z 0999eb20-051a-11e7-a426-cddb46425f16 Received event:
   {
       "version": "0",
       "id": "123456-EXAMPLE-GUID-123456",
       "detail-type": "AWS API Call via CloudTrail",
       "source": "aws.organizations",
       "account": "123456789012",
       "time": "2017-03-09T22:44:26Z",
       "region": "us-east-1",
       "resources": [],
       "detail": {
           "eventVersion": "1.04",
           "userIdentity": {
               ...
           },
           "eventTime": "2017-03-09T22:44:26Z",
           "eventSource": "organizations.amazonaws.com",
           "eventName": "CreateOrganizationalUnit",
           "awsRegion": "us-east-1",
           "sourceIPAddress": "192.168.0.1",
           "userAgent": "AWS Organizations Console, aws-internal/3",
           "requestParameters": {
               "parentId": "r-exampleRootId",
               "name": "TestCWEOU"
           },
           "responseElements": {
               "organizationalUnit": {
                   "name": "TestCWEOU",
                   "id": "ou-exampleRootId-exampleOUId",
                   "arn": "arn:aws:organizations::1234567789012:ou/o-exampleOrgId/ou-exampleRootId-exampeOUId",
                   "path": "o-exampleOrgId/r-exampleRootId/ou-exampleRootId-exampleOUId/"
               }
           },
           "requestID": "123456-EXAMPLE-GUID-123456",
           "eventID": "123456-EXAMPLE-GUID-123456",
           "eventType": "AwsApiCall"
       }
   }
   ```

1. E メールアカウントで、[**OrgsCWEvnt**] (Amazon SNS トピックの表示名) からのメッセージを確認します。E メールの本文には、前のステップで示されたログエントリと同じ JSON テキスト出力が含まれます。

## クリーンアップ: 不要になったリソースを削除する
<a name="clean-up-resources"></a>

料金が発生しないようにするには、このチュートリアルの一部として作成した、保持したくない AWS リソースをすべて削除する必要があります。

**AWS 環境をクリーンアップするには**

1. [CloudTrail コンソール](https://console.aws.amazon.com/cloudtrail/)を使用して、ステップ 1 で作成した **My-Test-Trail** という名前の証跡を削除します。

1. ステップ 1 で Amazon S3 バケットを作成した場合は、[Amazon S3 コンソール](https://console.aws.amazon.com/s3/)を使用して削除します。

1. [Lambda コンソール](https://console.aws.amazon.com/lambda/)を使用して、ステップ 2 で作成した **LogOrganizationEvents** という名前の関数を削除します。

1. [Amazon SNS コンソール](https://console.aws.amazon.com/sns/)を使用して、ステップ 3 で作成した **OrganizationsCloudWatchTopic** という名前の Amazon SNS トピックを削除します。

1. [CloudWatch コンソール](https://console.aws.amazon.com/cloudwatch/)を使用して、ステップ 4 で作成した **OrgsMonitorRule** という名前の EventBridge ルールを削除します。

1. 最後に、[Organizations コンソール](https://console.aws.amazon.com/organizations/)を使用して、ステップ 5 で作成した **TestCWEOU** という名前の OU を削除します。

これで完了です。このチュートリアルでは、組織の変更をモニタリングできるように EventBridge を設定しました。ユーザーが特定の AWS Organizations オペレーションを呼び出したときにトリガーされるルールを設定しました。ルールによって、イベントを記録した Lambda 関数が実行され、イベントに関する詳細を含む E メールが送信されました。