Amazon CloudWatch ロググループを Amazon EventBridge ルールのターゲットとして追加したいと考えています。これを行うにはどうすればよいですか?
簡単な説明
EventBridge ルールを作成するときは、ルールに一致するイベントの送信先となるターゲットを指定する必要があります。EventBridge で利用可能なターゲットのリストについては、「EventBridge コンソールで利用可能なターゲット」を参照してください。EventBridge ルールに追加できるターゲットの 1 つは CloudWatch ロググループです。
解決方法
注: AWS Command Line Interface (AWS CLI) コマンドの実行中にエラーが発生した場合は、最新の AWS CLI バージョンを使用していることを確認してください。
以下の手順を使用して、EventBridge ルールのターゲットとして使用する CloudWatch ロググループを設定します。
1. EventBridge コンソールを開き、ルールを作成するリージョンを選択します。
2. [Create rule] (ルールを作成) を選択してから、イベントパターンやスケジュールの詳細など、そのルールに関する情報を入力します。
3. [Select target] (ターゲットの選択) ページで、ターゲットとして CloudWatch を選択します。
注: CloudWatch ロググループをターゲットとして追加するには、次のいずれかを行います。
EventBridge ルールのターゲットとして使用するロググループが /aws/events で始まることを確認してください。ルールを作成するときにコンソールを使用して新しいロググループを作成すると、EventBridge が自動的にロググループを作成します。既存のロググループを追加する場合は、/aws/events で始まるロググループだけがドロップダウンリストに表示されることに注意してください。
4. イベントデータをターゲットロググループに送信するために、EventBridge にはターゲットロググループにアクセスするためのアクセス許可が必要です。このアクセス許可を使用してログストリームを作成し、それらのログストリームにイベントをプッシュします。CloudWatch ロググループの場合、EventBridge はロググループにアクセスするためにリソースベースのポリシーを使用します。
コンソールを使用して EventBridge ルールにロググループを追加すると、ロググループのリソースベースのポリシーが自動的に更新されます。ただし、AWS SDK/API/CDK/CLI を使用する場合は、ロググループのリソースベースのポリシーを手動で更新する必要があります。このポリシードキュメントの例は、ロググループのリソースベースのポリシーで定義する必要があるアクセス許可を示しています。
{
"Statement": [
{
"Action": [
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Effect": "Allow",
"Principal": {
"Service": [
"events.amazonaws.com",
"delivery.logs.amazonaws.com"
]
},
"Resource": "arn:aws:logs:region:account:log-group:/aws/events/*:*",
"Sid": "TrustEventsToStoreLogEvent"
}
],
"Version": "2012-10-17"
}
コンソールを使用してロググループのリソースベースのポリシーを構成することはできません。これらの許可をリソースベースのポリシーに追加するには、 PutResourcePolicy API コールを使用します。次に、describe-resource-policies コマンドを使用して、ポリシーが正しく適用されたことを確認します。
注: 現在の上限は、アカウントあたりリージョンごとに 10 ポリシーです。この上限に達した場合は、未使用のポリシーを削除するか、複数のポリシーを組み合わせます。
5. EventBridge サービスは、PutRule CLI コマンドを使用してルールを作成します。作成後、PutTargets API または put-targets CLI コマンドを使用して、EventBridge ルールにターゲットを追加します。AWS SDK、CDK、または CLI を使用するときは、PutTargets API または put-targets CLI コマンドを使用して EventBridge ルールにロググループを追加する必要があります。
関連情報
CloudWatch Logs のアクセス許可