本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:使用 Amazon 监控组织的重要变更 EventBridge
本教程介绍如何配置 Amazon EventBridge(前身为 Amazon Ev CloudWatch ents)以监控您的组织是否有更改。首先,您要配置一条规则,该规则在用户调用特定时触发 AWS Organizations 操作。接下来,您将Amazon配置 EventBridge 为运行 AWS Lambda 在触发规则时运行,并且您将 Amazon 配置SNS为发送一封包含事件详细信息的电子邮件。
下图演示了本教程的主要步骤。
- 步骤 1:配置跟踪和事件选择器
-
在中创建名为跟踪的日志 AWS CloudTrail。 您可以将其配置为捕获所有API呼叫。
- 步骤 2:配置 Lambda 函数
-
创建一个 AWS Lambda 将有关事件的详细信息记录到 S3 存储桶的函数。
- 步骤 3:创建向订阅者发送电子邮件的 Amazon SNS 主题
-
创建一个向其订阅者发送电子邮件的 Amazon SNS 主题,然后自己订阅该主题。
- 步骤 4:创建亚马逊 EventBridge 规则
-
创建一条规则,告诉 Amazon EventBridge 将指定API调用的详细信息传递给 Lambda 函数和SNS主题订阅者。
- 第 5 步:测试您的亚马逊 EventBridge 规则
-
运行某项监控操作,测试您的新规则。在本教程中,所监控的操作是创建组织部门 (OU)。您可以查看 Lambda 函数创建的日志条目,也可以查看 Amazon SNS 发送给订阅者的电子邮件。
提示
您还可以将本教程用作配置类似操作的指南,如在账户创建完成时发送电子邮件通知。因为创建账户是异步操作,所以在默认情况下,在完成时不会通知您。有关使用的更多信息 AWS CloudTrail 还有亚马逊 EventBridge AWS Organizations,请参阅 登录和监控 AWS Organizations。
先决条件
本教程假定:
-
你可以登录 AWS Management Console 以您组织中管理账户的IAM用户身份。IAM用户必须有权创建和配置登录、Lambda 中的函数 CloudTrail、Amazon 中的主题以及在 Amazon SNS 中创建和配置规则。 EventBridge有关授予权限的更多信息,请参阅《IAM用户指南》中的访问管理或您要为其配置访问权限的服务指南。
-
您可以访问现有的亚马逊简单存储服务 (Amazon S3) 存储桶(或者您有权创建存储桶),以接收 CloudTrail 您在步骤 1 中配置的日志。
重要
目前, AWS Organizations 仅在美国东部(弗吉尼亚北部)地区托管(尽管它在全球范围内可用)。要执行本教程中的步骤,必须配置 AWS Management Console 使用该区域。
步骤 1:配置跟踪和事件选择器
在此步骤中,您将登录管理账户并在中配置日志(称为跟踪) AWS CloudTrail。 您还可以在跟踪上配置事件选择器以捕获所有读/写API调用,这样 Ama EventBridge zon 就可以触发调用。
创建跟踪
-
登录到 AWS 以组织管理账户管理员的身份打开控制台,然后在上打开 CloudTrail 控制台https://console.aws.amazon.com/cloudtrail/
。 -
在控制台右上角的导航栏中,选择美国东部(弗吉尼亚北部)区域。如果您选择其他区域, AWS Organizations 不会作为选项出现在 Amazon EventBridge 配置设置中,也 CloudTrail 不会捕获相关信息 AWS Organizations.
-
在导航窗格中,选择 Trails(跟踪记录)。
-
选择创建跟踪。
-
对于 Trail name (跟踪名称),输入
My-Test-Trail
。 -
执行以下选项之一以指定其日志 CloudTrail 的传送位置:
-
如果您需要创建存储桶,请选择 Create new S3 bucket(创建新 S3 存储桶),然后在 Trail log bucket and folder(跟踪日志存储桶和文件夹)中输入新存储桶的名称。
注意
S3 存储桶的名称必须是全球唯一的。
-
如果您已有一个存储桶,选择 Use existing S3 bucket(使用现有 S3 存储桶),然后从 S3 bucket(S3 存储桶)列表中选择存储桶名称。
-
-
选择下一步。
在 Choose log events(选择日志事件)页面的 Management events(管理事件)部分中,选择 Read(读取)和 Write(写入)。
-
选择下一步。
-
检查您的选择,然后选择 Create trail(创建跟踪)。
Amazon EventBridge 允许您从几种不同的方式中进行选择,以便在警报规则与来API电匹配时发送警报。本教程演示了两种方法:调用可以记录通话的 Lambda 函数,以及向向API该主题的订阅者发送电子邮件或短信的 SNS Amazon 主题发送信息。在接下来的两个步骤中,您将创建所需的组件:Lambda 函数和 Ama SNS zon 主题。
步骤 2:配置 Lambda 函数
在此步骤中,您将创建一个 Lambda 函数,用于记录您稍后配置的 Amazon EventBridge 规则发送给它的API活动。
创建用于记录亚马逊事件的 Lambda 函数 EventBridge
-
打开 AWS Lambda 控制台位于https://console.aws.amazon.com/lambda/
。 -
如果您是首次使用 Lambda,请在欢迎页面上选择 Get Started Now(立即开始使用);否则,选择 Create function(创建函数)。
-
在 Create function(创建函数)页面中,选择 Use a blueprint(使用蓝图)。
-
从 Blueprints (蓝图) 搜索框中,为筛选条件输入
hello
,然后选择 hello-world 蓝图。 -
选择 配置。
-
在 Basic information (基本信息) 页面上,执行以下操作:
-
对于 Lambda 函数名称,在 Name (名称) 文本框中输入
LogOrganizationEvents
。 -
对于 Role (角色),选择 Create a new role with basic Lambda permissions (创建具有基本 Lambda 权限的新角色)。此角色授予您的 Lambda 函数访问所需数据的权限和写入输出日志的权限。
-
-
编辑 Lambda 函数的代码,如以下示例所示。
console.log('Loading function'); exports.handler = async (event, context) => { console.log('LogOrganizationsEvents'); console.log('Received event:', JSON.stringify(event, null, 2)); return event.key1; // Echo back the first key value // throw new Error('Something went wrong'); };
此示例代码使用
LogOrganizationEvents
标记字符串和构成事件的JSON字符串记录事件。 -
选择 Create function (创建函数)。
步骤 3:创建向订阅者发送电子邮件的 Amazon SNS 主题
在此步骤中,您将创建一个 Amazon SNS 主题,通过电子邮件将信息发送给其订阅者。您将此主题作为稍后创建的 Amazon EventBridge 规则的目标。
创建 Amazon SNS 主题以向订阅者发送电子邮件
-
打开 Amazon SNS 控制台,网址为https://console.aws.amazon.com/sns/v3/
。 -
在导航窗格中,选择 Topics(主题)。
-
选择 创建新主题。
-
对于 Topic name (主题名称),输入
OrganizationsCloudWatchTopic
。 -
对于 Display name (显示名称),输入
OrgsCWEvnt
。 -
选择创建主题。
-
-
现在,您可以创建该主题的订阅。为您刚刚创建的主题选择。ARN
-
选择创建订阅。
-
在 Create subscription (创建订阅) 页面上,为 Protocol (协议) 选择 Email (电子邮件)。
-
对于 Endpoint (终端节点),输入您的电子邮件地址。
-
选择创建订阅。 AWS 向您在上一步中指定的电子邮件地址发送一封电子邮件。收到这封电子邮件后,选择电子邮件中的 Confirm subscription (确认订阅) 链接,验证您已成功接收到这封电子邮件。
-
返回控制台并刷新页面。Pending confirmation 消息消失,现已替换为有效的订阅 ID。
-
步骤 4:创建亚马逊 EventBridge 规则
既然您的账户中已存在所需的 Lambda 函数,那么您可以创建一个 Amazon EventBridge 规则,当满足规则中的条件时,该规则就会调用该规则。
创建 EventBridge 规则
-
打开 Amazon EventBridge 控制台,网址为https://console.aws.amazon.com/events/
。 -
您必须将控制台设置为美国东部(弗吉尼亚州北部)区域,否则有关 Organizations 的信息不可用。在控制台右上角的导航栏中,选择美国东部(弗吉尼亚北部)区域。
有关创建规则的说明,请参阅亚马逊 EventBridge 用户指南 EventBridge中的亚马逊入门。
第 5 步:测试您的亚马逊 EventBridge 规则
在此步骤中,您将创建组织单位 (OU) 并遵守 Amazon EventBridge 规则,生成日志条目,并向自己发送一封包含活动详细信息的电子邮件。
查看 EventBridge 日志条目
-
打开 CloudWatch 控制台,网址为https://console.aws.amazon.com/cloudwatch/
。 -
在导航窗格中,选择 Logs (日志)。
-
在日志组下,选择与您的 Lambda 函数关联的组:/aws/lambda/。LogOrganizationEvents
-
每个组包含一个或多个流,应该有一个今天的组。选择该存储桶。
-
查看日志。您应该可以看到与以下内容类似的行:
-
选择条目的中间行,查看收到的事件的全JSON文。你可以在
requestParameters
和输出responseElements
部分中看到API请求的所有细节。2017-03-09T22:45:05.101Z 0999eb20-051a-11e7-a426-cddb46425f16 Received event: { "version": "0", "id": "123456-EXAMPLE-GUID-123456", "detail-type": "AWS API Call via CloudTrail", "source": "aws.organizations", "account": "123456789012", "time": "2017-03-09T22:44:26Z", "region": "us-east-1", "resources": [], "detail": { "eventVersion": "1.04", "userIdentity": { ... }, "eventTime": "2017-03-09T22:44:26Z", "eventSource": "organizations.amazonaws.com", "eventName": "CreateOrganizationalUnit", "awsRegion": "us-east-1", "sourceIPAddress": "192.168.0.1", "userAgent": "AWS Organizations Console, aws-internal/3", "requestParameters": { "parentId": "r-exampleRootId", "name": "TestCWEOU" }, "responseElements": { "organizationalUnit": { "name": "TestCWEOU", "id": "ou-exampleRootId-exampleOUId", "arn": "arn:aws:organizations::1234567789012:ou/o-exampleOrgId/ou-exampleRootId-exampeOUId" } }, "requestID": "123456-EXAMPLE-GUID-123456", "eventID": "123456-EXAMPLE-GUID-123456", "eventType": "AwsApiCall" } }
-
检查您的电子邮件账户中是否有来自 O rgsCWEvnt(您的 Amazon SNS 主题的显示名称)的消息。电子邮件正文包含与上一步中显示的日志条目相同的JSON文本输出。
清理:删除您不再需要的资源
为避免产生费用,应删除任何 AWS 您在本教程中创建但不想保留的资源。
要清理你的 AWS environment
-
使用CloudTrail 控制台
删除您在步骤 1 中创建 My-Test-Trail
的名为的跟踪。 -
如果您在步骤 1 中创建了 Amazon S3 存储桶,请使用 Amazon S3 控制台
将其删除。 -
使用 Lambda 控制台
删除您通过步骤 2 创建的、名为 LogOrganizationEvents
的函数。 -
使用亚马逊SNS控制台
删除您在步骤 3 中创建 OrganizationsCloudWatchTopic
的名为的亚马逊SNS主题。 -
使用CloudWatch 控制台
删除您在步骤 4 中创建 OrgsMonitorRule
的名为的 EventBridge 规则。 -
使用 Organizations 控制台
删除您通过步骤 5 创建的、名为 TestCWEOU
的 OU。
就是这样。在本教程中,您配置 EventBridge 为监控组织是否有更改。您配置了在用户调用特定规则时触发的规则 AWS Organizations 操作。该规则运行 Lambda 函数来记录事件,并发送包含该事件详细信息的电子邮件。