我想将 Amazon CloudWatch 日志组作为目标添加到 Amazon EventBridge 规则中。我该如何操作?
简短描述
创建 EventBridge 规则时,必须指定与此规则匹配的事件发送到的目标。有关 EventBridge 的可用目标列表,请参阅 EventBridge 控制台中的可用目标。您可以添加到 EventBridge 规则的目标之一是 CloudWatch 日志组。
解决方法
**注意:**如果您在运行 AWS Command Line Interface(AWS CLI)命令时遇到错误,请确保您使用的是最新版本的 AWS CLI。
使用以下步骤配置要用作 EventBridge 规则目标的 CloudWatch 日志组:
1. 打开 EventBridge 控制台,然后选择要在其中创建规则的区域。
2. 选择 Create rule(创建规则),然后输入有关该规则的任何信息,如事件模式或日程安排详细信息。
3. 在选择目标页面上,选择 CloudWatch 作为您的目标。
**注意:**要将 CloudWatch 日志组添加为目标,您可以执行以下任一操作:
确保用作 EventBridge 规则目标的日志组以 /aws/events 开头。如果在创建规则时使用控制台新建日志组,则 EventBridge 会自动创建日志组。如果要添加现有日志组,请注意只有以 /aws/events 开头的日志组才会出现在下拉列表中。
4. 要将事件数据传送到目标日志组,EventBridge 需要访问目标日志组的权限。它使用此权限创建日志流并将事件推送到这些日志流。对于 CloudWatch 日志组,EventBridge 使用基于资源的策略来访问日志组。
如果使用控制台将日志组添加到 EventBridge 规则,则适用于日志组的基于资源的策略会自动更新。但是,如果使用 AWS 开发工具包/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 开发工具包、CDK 或 CLI 时,必须使用 PutTargets API 或 put-targets CLI 命令将日志组添加到 EventBridge 规则中。
相关信息
CloudWatch Logs 权限