Amazon CloudWatch ロググループを Amazon EventBridge ルールのターゲットとして追加しようと思います。
解決策
CloudWatch ロググループを EventBridge ルールのターゲットに設定するには、EventBridge コンソールを使用します。あるいは、AWS SDK、API、AWS Cloud Development Kit (AWS CDK)、AWS コマンドラインインターフェイス (AWS CLI) のいずれかを使用します。
EventBridge コンソールを使用する
次の手順を実行します。
- EventBridge コンソールを開きます。
- ナビゲーションペインで、[ルール] を選択します。
- [ルールを作成] を選択して、ルールの名前、説明 (オプション) を入力します。
注: ロググループを既存のルールに追加することもできます。
- [ターゲットタイプ] には、[AWS サービス] を選択します。
- [ターゲットを選択] で [CloudWatch ロググループ] を選択します。
注: CloudWatch ロググループをターゲットとして追加するには、新しいロググループを作成するか、既存のロググループを使用します。コンソールを使用する場合、ロググループ名の先頭は前向きスラッシュ (/) である必要があります。
EventBridge コンソールを使用してターゲットを構成すると、EventBridge サービスはロググループのリソースポリシーを自動で更新し、そのサービスにロググループへのアクセス権を付与します。
AWS SDK、API、AWS CDK、または AWS CLI を使用する
注: AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI でのエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
次の手順を実行します。
- 必須権限をロググループのリソースポリシーに追加し、EventBridge がターゲットのロググループにアクセスできるようにするには、PutResourcePolicy API を使用します。または、AWS CLI コマンド put-resource-policy を実行します。
必要とされるアクセス許可がリソースポリシーに付与されている例:
{
"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"
}
注: 現在のクォータは、AWS リージョンあたり、AWS アカウントあたり 10 ポリシーです。このクォータを超えた場合は、使用されていないポリシーを削除するか、複数のポリシーを組み合わせてください。
- DescribeResourcePolicies API を使用するか、AWS CLI コマンド describe-resource-policies を実行して、ポリシーが正しく適用されていることを確認します。
- (オプション) PutRule API を使用するか、AWS CLI コマンド put-rule を実行して、ルールを作成します。
- PutTargets API を使用するか、AWS CLI コマンド put-targets を実行して、ロググループを EventBridge ルールに追加します。
関連情報
EventBridge でのイベントバスターゲット
EventBridge コンソールで利用可能なイベントバスターゲット
CloudWatch Logs の権限