Amazon EventBridge ルールを使用して AWS CloudTrail APIコールに対するカスタム自動応答を作成しようとしています。
簡単な説明
CloudTrail API コールに対するカスタムアクションまたは通知を設定するには、イベントと一致するイベントパターンを含む EventBridge ルールを作成します。
解決策
CloudTrail 証跡を作成する
注: CloudTrail 証跡がイベントをキャプチャするための設定を行った後、そのイベントを EventBridge に転送する必要があります。有効なイベントパターン照合を設定している場合も、EventBridge ルールは証跡以外では起動しません。
CloudTrail 証跡を作成するには、次の手順を実行します。
- CloudTrail コンソールを開きます。
- [証跡] に移動します。
- ルールを作成するリージョンに証跡が既に存在する場合は、そのステータスが Logging に設定されていることを確認してください。
- 既存の証跡がない場合は、[証跡の作成] を選択します。
- [証跡名] に名前を入力します。
- [保存場所] で [新しい S3 バケットを作成] を選択します。
- [AWS KMS のエイリアス] に AWS Key Management Service (AWS KMS) キーのエイリアスを入力します。
- [次へ] を選択します。再度 [次へ] を選択します。
- [証跡の作成] を選択します。
詳細については、「CloudTrail コンソールで証跡を作成する」を参照してください。
EventBridge のルールとイベントパターンを作成する
注: このセクションの例では、Amazon Simple Queue Service (Amazon SQS) の API 操作である CreateQueue を使用してイベントを生成します。Amazon SQS API 操作を使用すると、CloudTrail は生成されたイベントを記録し、そのイベントをデフォルトの EventBridge バスに転送します。
EventBridge のルールとイベントパターンを作成するには、次の手順を実行します。
- EventBridge コンソールを開きます。
- ナビゲーションペインで [ルール] を選択します。
- [ルールを作成] を選択します。
- ルールの名前と説明を入力します (例: TestRule)。
- [イベントバス] で、このルールに関連付けるイベントバスを選択します。ルールをアカウントから発生するイベントと照合する場合は、[デフォルト] を選択します。
注: アカウント内の AWS サービスがイベントを作成すると、そのイベントはアカウントのデフォルトイベントバスに送信されます。
- [ルールタイプ] で [イベントパターン付きルール] を選択します。
- [次へ] を選択します。
- [イベントソース] で [AWS サービス] を選択します。
- [イベントパターン] を選択します。
- [イベントソース] で [SQS] を選択します。
- [イベントタイプ] で [CloudTrail 経由の AWS API コール] を選択します。
- [特定の操作] を選択し、CreateQueue と入力します。次の例は、上記のオプションを選択した結果のイベントパターンを示しています。
{ "source": ["aws.sqs"],
"detail-type": ["AWS API Call via CloudTrail"],
"detail": {
"eventSource": ["sqs.amazonaws.com"],
"eventName": ["CreateQueue"]
}
}
注: イベントパターンは、eventName や eventSource などの複数のフィールドでフィルター処理を行います。イベントの一致では、すべてのフィールドと対応する値が含まれている必要があります。
[次へ] を選択します。
[ターゲットタイプ] で [AWS サービス] を選択します。
[ターゲットの選択] で [Lambda 関数] を選択します。
リストから、該当する関数を選択します。
[別のターゲットを追加] を選択します。
[AWS サービス] セクションで [CloudWatch ロググループ] を選択します。
[ロググループの選択] で既存のロググループを選択するか、新しいロググループを作成します。
[次へ] を選択します。再度 [次へ] を選択します。
[ルールを作成] を選択します。
EventBridge ルールを検証する
次の手順を実行します。
- SQS コンソールを開きます。
- [キューを作成] を選択します。
- [タイプ] で [標準キュータイプ] を選択します。
- キューの名前を入力します。
- 他のオプションはすべてデフォルトから変更せず、[キューを作成] を選択します。
- TriggerRules、Invocations、FailedInvocations の各メトリクスを参照し、EventBridge ルールがトリガーされ、ターゲットを呼び出したことを確認します。
- メトリクスを確認するには、作成したルールに移動し、[モニタリング] タブを開きます。または、AWS/Events 名前空間で CloudWatch コンソールを使用してもメトリクスを確認できます。
- Lambda 関数が正常に呼び出され、CloudWatch ロググループがイベントをキャプチャしたことを確認します。
- CloudWatch Logs コンソールでターゲットのロググループに移動します。なお、新しいログストリームは、対応するログイベントとともに表示されます。
関連情報
チュートリアル: CloudTrail 経由の AWS API コールに対応する EventBridge ルールを作成する
EventBridge ルール用のカスタムイベントパターンを作成する方法を教えてください