跳至内容

如何创建 EventBridge 规则以自动响应 CloudTrail API 调用?

2 分钟阅读
0

我想使用 Amazon EventBridge 规则来创建针对 AWS CloudTrail API 调用的自定义自动响应。

简短描述

要为 CloudTrail API 调用配置自定义操作或通知,请创建一个具有与该事件匹配的事件模式的 EventBridge 规则。

解决方法

创建 CloudTrail 跟踪

**注意:**您必须配置 CloudTrail 跟踪来捕获事件,然后将事件转发到 EventBridge。即使存在有效的事件模式匹配,EventBridge 规则也仅会通过跟踪触发。

要创建 CloudTrail 跟踪,请完成以下步骤:

  1. 打开 CloudTrail 控制台
  2. 导航到 Trails(跟踪)。
  3. 如果您要创建规则的区域中已经存在跟踪,请确保其状态设置为 Logging(正在记录)。
  4. 如果您没有现有跟踪,请选择 Create trail(创建跟踪)。
  5. 对于 Trail name(跟踪名称),输入一个名称。
  6. 对于 Storage location(存储位置),选择 Create a new S3 bucket(创建新的 S3 存储桶)。
  7. 对于 AWS KMS alias(AWS KMS 别名),输入 AWS Key Management Service (AWS KMS) 密钥的别名。
  8. 选择 Next(下一步)。然后,再次选择 Next(下一步)。
  9. 选择 Create trail(创建跟踪)。

有关详细信息,请参阅使用 CloudTrail 控制台创建跟踪

创建 EventBridge 规则和事件模式

**注意:**本节中的示例使用 Amazon Simple Queue Service (Amazon SQS) API 操作 CreateQueue 来生成事件。当您使用 Amazon SQS API 操作时,CloudTrail 会记录生成的事件,然后将该事件转发到默认 EventBridge 总线。

要创建 EventBridge 规则和事件模式,请完成以下步骤:

  1. 打开 EventBridge 控制台
  2. 在导航窗格中,选择 Rules(规则)。
  3. 选择 Create rule(创建规则)。
  4. 输入规则的名称和描述,例如 TestRule。
  5. 对于 Event bus(事件总线),选择要与您的规则关联的事件总线。如果您希望规则匹配来自您账户的事件,请选择 default(默认)。
    **注意:**当您账户中的 AWS 服务创建事件时,该事件将转到您账户的默认事件总线
  6. 对于 Rule type(规则类型),选择 Rule with an event pattern(具有事件模式的规则)。
  7. 选择 Next(下一步)。
  8. 对于 Event source(事件源),请选择 AWS services(AWS 服务)。
  9. 选择 Event pattern(事件模式)。
  10. 对于 Event source(事件源),选择 SQS
  11. 对于 Event type(事件类型),选择 AWS API Call via CloudTrail(通过 CloudTrail 进行的 AWS API 调用)。
  12. 选择 Specific operation(s)(特定操作),然后输入 CreateQueue。以下示例显示了由您选择的选项生成的事件模式:
{  "source": ["aws.sqs"],
  "detail-type": ["AWS API Call via CloudTrail"],
  "detail": {
    "eventSource": ["sqs.amazonaws.com"],
    "eventName": ["CreateQueue"]
  }
}

注意:事件模式会根据多个字段(例如 eventNameeventSource)进行筛选。事件匹配必须包含所有字段和相应的值。 选择 Next(下一步)。 对于 Target types(目标类型),选择 AWS service(AWS 服务)。 对于 Select a target(选择目标),选择 Lambda function(Lambda 函数)。 在列表中,选择您的函数。 选择 Add another target(添加其他目标)。 在 AWS service(AWS 服务)部分中,选择 CloudWatch log group(CloudWatch 日志组)。 对于 Select log group(选择日志组),选择现有日志组或创建新的日志组。 选择 Next(下一步)。然后,再次选择 Next(下一步)。 选择 Create rule(创建规则)。

验证 EventBridge 规则

完成以下步骤:

  1. 打开 SQS 控制台
  2. 选择 Create queue(创建队列)。
  3. 对于 Type(类型),选择 Standard queue type(标准队列类型)。
  4. 输入队列的名称。
  5. 将所有其他选项保留为默认值,然后选择 Create queue(创建队列)。
  6. 使用 TriggeredRules、Invocations 和 FailedInvocations 指标来确认您的 EventBridge 规则是否触发并调用了目标。
  7. 要查看这些指标,请导航到您创建的规则,然后打开 Monitoring(监控)选项卡。或者,在 CloudWatch 控制台的 AWS/Events(AWS/事件)命名空间中查看这些指标。
  8. 确认 Lambda 函数已成功调用,且 CloudWatch 日志组已捕获该事件。
  9. 在 CloudWatch Logs 控制台中导航到您的目标日志组。请注意,将显示一个包含相应日志事件的新日志流。

相关信息

教程: 创建通过 CloudTrail 对 AWS API 调用做出反应的 EventBridge 规则

如何为 EventBridge 规则创建自定义事件模式?

AWS 官方已更新 8 个月前