我创建了 Amazon EventBridge 规则,以便在有人更改 AWS Identity and Access Management (IAM) 身份或进行 API 调用时收到通知。但是,事件规则无法启动,我也没有收到通知。
简短描述
使用与特定 IAM API 调用或多个 IAM API 调用匹配的事件模式创建 Amazon EventBridge 规则。然后,将该规则与 Amazon Simple Notification Service (Amazon SNS) 主题相关联。当规则运行时,Amazon SNS 会向相应的订阅者发送 SNS 通知。
解决方法
先决条件:
EventBridge 通过 CloudTrail 接收 IAM API 调用事件。IAM 服务和相关的 AWS API 调用仅在**美国东部(弗吉尼亚州北部)区域可用。这意味着,EventBridge 规则也必须位于美国东部(弗吉尼亚州北部)**区域。
以下示例自定义事件模式会在您的账户中进行 CreateUser 和 DeleteUser API 调用时启动通知。
完成以下步骤:
-
在**美国东部(弗吉尼亚州北部)**区域打开 EventBridge 控制台。
-
在导航窗格中,选择 Rules(规则),然后选择 Create rule(创建规则)。
-
输入规则的 Name(名称)和 Description(描述)。
-
对于 Event bus(事件总线),选择 default(默认)AWS 事件总线。当 IAM 发出事件时,它会进入您账户的默认事件总线。
-
对于 Rule type(规则类型),选择 Rule with an event pattern(具有事件模式的规则),然后选择 Next(下一步)。
-
对于 Event source(事件来源),选择 AWS events or EventBridge partner events(AWS 事件或 EventBridge 合作伙伴事件)。
-
在 Event pattern(事件模式)下,选择以下选项:
对于 Event source(事件源),选择 AWS services(AWS 服务)。
对于 AWS service(AWS 服务),选择 IAM。
对于 Event type(事件类型),选择 AWS API Call via CloudTrail(通过 CloudTrail 进行的 AWS API 调用)。
要启动特定 API 调用的规则,请选择 Specific operation(s)(特定操作)。
在文本框中,输入要接收通知的 API 调用名称。例如,CreateUser。
要添加更多 API 调用,请选择 Add(添加)。
-
在 Event pattern(事件模式)预览框下,选择 Edit pattern(编辑模式)。
-
将以下示例模板复制并粘贴到事件模式预览窗格中:
{
"source": [
"aws.iam"
],
"detail-type": [
"AWS API Call via CloudTrail"
],
"detail": {
"eventSource": [
"iam.amazonaws.com"
],
"eventName": [
"CreateUser",
"DeleteUser"
]
}
}
-
选择 Save(保存)。
-
选择 Next(下一步)。
-
对于 Target types(目标类型),选择 AWS service(AWS 服务)。
-
对于 Select a target(选择目标),选择 SNS topic(SNS 主题)。
-
在 Topic(主题)下拉列表中,选择您的 SNS 主题。
-
(可选)要为此规则添加另一个目标,请选择 Add another target(添加另一个目标)。
-
选择 Next(下一步)。
-
(可选)为规则输入一个或多个标签。有关更多信息,请参阅在事件总线上添加或移除标签。
-
选择 Next(下一步)。
-
确认规则的详细信息正确无误,然后选择 Create rule(创建规则)。
相关信息
如何在我的 Route 53 托管区记录发生更改时收到通知?
如何为 GuardDuty 配置 EventBridge 规则,以便针对特定服务调查发现类型发送自定义 SNS 通知?
我的规则与 AWS 全局服务 API 调用相匹配,但并未运行