如何在我的 AWS 账户发生 IAM 角色更改时收到通知?

上次更新日期:2022 年 1 月 11 日

我创建了一条 Amazon EventBridge 规则,以在 AWS Identity and Access Management (IAM) 身份或 API 调用发生更改时通知我。但是 IAM 发生更改时并未触发事件规则。

简短描述

使用与特定 IAM API 调用或多个 IAM API 调用匹配的事件模式创建 EventBridge 规则。然后,将该规则与 Amazon Simple Notification Service (Amazon SNS) 主题关联在一起。规则运行时,将会向相应的订阅发送 SNS 通知。

解决方法

如果您尚未创建 Amazon SNS 主题,请按照 Amazon SNS 入门中的说明创建一个。

重要提示:

  • IAM 服务及相关的 AWS API 调用仅在美国东部(弗吉尼亚北部)区域可用。这意味着 EventBridge 规则必须位于美国东部(弗吉尼亚北部)区域。
  • 该解决方案使用 CloudTrail。要让 CloudTrail 向 EventBridge 发送 API 调用,则跟踪记录必须位于与 EventBridge 规则相同的区域中。请确保您已将跟踪记录的管理事件配置为只写全部。有关详细信息,请参阅只读和只写事件

以下示例自定义事件模式将在您的账户中执行 CreateUserDeleteUser API 调用时启动通知。

1.    打开位于美国东部(弗吉尼亚北部)区域的 EventBridge 控制台

2.    在导航窗格中,选择规则,然后选择创建规则

3.    在 Define pattern(定义模式)中,选择 Event pattern(事件模式)。

4.    在 Event pattern matching(事件模式匹配)中,选择 Pre-defined pattern by service(按服务分类的预定义模式)。

5.    在 Service Name(服务名称)下拉列表中,选择 IAM

6.    在 Event Type(事件类型)下拉菜单中,选择 AWS API Call via CloudTrail(通过 CloudTrail 进行 AWS API 调用)。

7.    要为特定 API 调用启动规则,请选择 Specific operation(s)(特定操作)。

8.    在文本框中,输入 IAM 操作的名称。例如,CreateUser

9.    要添加其他操作,选择 + 图标。

10.    在 Event Pattern(事件模式)预览中,选择 Edit(编辑)。

11.    将以下示例模板复制并粘贴到事件模式预览窗格,然后选择 Save(保存)。

{
    "source": [
        "aws.iam"
    ],
    "detail-type": [
        "AWS API Call via CloudTrail"
    ],
    "detail": {
        "eventSource": [
            "iam.amazonaws.com"
        ],
        "eventName": [
            "CreateUser",
            "DeleteUser"
        ]
    }
}

12.    在 Targets(目标)中,选择 Add target(添加目标)。

13.    在 Select Target(选择目标)中,选择 SNS topic(SNS 主题)。

14.    在 Topic(主题)下拉列表中,选择您的 SNS 主题。

15.    选择 Configure details(配置详细信息)。

16.    在 Configure rule details(配置规则详细信息)中,输入规则的名称和描述,然后选择 Create rule(创建规则)。