使用 AWS CloudFormation 模板创建 CloudWatch 警报 - AWS CloudTrail
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 AWS CloudFormation 模板创建 CloudWatch 警报

在配置您的跟踪以将日志文件传送到您的 CloudWatch 日志组后,您可以创建 CloudWatch 指标筛选条件和警报来监视日志文件中的事件。例如,您可以指定一个事件,如 Amazon EC2RunInstances操作,以便 CloudWatch 在您的账户中发生该事件时向您发送通知。您可以分别创建筛选条件和警报,或使用 AWS CloudFormation 模板同时定义它们。

您可以原封不动地使用示例 CloudFormation 模板,或者将其作为创建您自己的模板的参考。

示例 CloudFormation 模板

CloudFormation 模板具有预定义的 CloudWatch 指标筛选条件和警报,这样,当您的 AWS 账户中发生与安全相关的特定 API 调用时,您将会收到电子邮件通知。

该模板在位于以下位置的 zip 文件中提供:CloudWatch_Alarms_for_CloudTrail_API_Activity.zip

该模板定义了用于监控以下资源类型的创建、删除和更新操作的指标筛选条件:

  • Amazon EC2 实例

  • IAM 策略

  • Internet 网关

  • 网络 ACL

  • 安全组

当您的账户中发生 API 调用时,指标筛选条件会监控该 API 调用。如果该 API 调用超出了您指定的阈值,则会触发警报,CloudWatch 会向您发送电子邮件通知。

默认情况下,模板中的大多数筛选条件将在五分钟内发生某个监控的事件时触发警报。您可以根据自己的要求修改这些警报阈值。例如,您可以在 10 分钟内监控 3 个事件。要进行更改,需编辑模板,或者在上传模板后,在CloudWatch 控制台

注意

由于 CloudTrail 通常每五分钟传送一次日志文件,因此应将警报时间段指定为五分钟或更长。

要查看模板中的指标筛选条件和警报以及触发电子邮件通知的 API 调用,请参阅 CloudFormation 模板内容

使用模板创建 CloudFormation 堆栈

CloudFormation 堆栈是您作为单个单元配置和更新的相关资源的集合。下面的过程描述如何创建堆栈并验证接收通知的电子邮件地址。

使用模板创建 CloudFormation 堆栈

  1. 将跟踪配置为将日志文件传送到您的 CloudWatch Logs 日志组。请参阅将事件发送到 CloudWatch Logs

  2. 下载 CloudFormation 模板:CloudWatch_Alarms_for_CloudTrail_API_Activity.zip

  3. 打开 AWS CloudFormation 控制台 (https://console.aws.amazon.com/cloudformation)。

  4. 选择创建堆栈

  5. Select Template 页面上,对于 Name,键入一个堆栈名。例如:CloudWatchAlarmsForCloudTrail

  6. 适用于中,选择将模板上传到 Amazon S3

  7. 选择选择文件,然后选择您下载的 AWS CloudFormation 模板。

  8. 选择 Next

  9. Specify Parameters 页面上,对于 Email,键入接收通知的电子邮件地址。

  10. 适用于LogGroupName中,键入您在配置您的跟踪以将日志文件传送到 CloudWatch Logs 时指定的日志组名称。

  11. 选择 Next

  12. 对于 Options,您可以创建标签或配置其他高级选项。这些操作不是必需的。

  13. 选择 Next

  14. Review 页面上,验证您的设置是否正确。

  15. 选择创建。将在几分钟内创建堆栈。

  16. 创建堆栈后,您将通过指定的地址收到一封电子邮件。

  17. 在电子邮件中,选择 Confirm subscription。当模板指定的警报被触发时,您将收到电子邮件通知。

CloudFormation 模板内容

下表显示了该模板中的指标筛选条件和警报、它们的用途以及触发电子邮件通知的 API 调用。当您的账户中出现一个或多个针对所列筛选条件的 API 调用时,将触发通知。

您可以在CloudWatch 控制台

Amazon S3 存储桶事件
指标筛选条件和警报 监控和发送以下对象的通知: 由以下一个或多个 API 操作所触发的通知:

S3BucketChangesMetricFilter

S3BucketChangesAlarm

用于更改存储桶策略、生命周期、复制或 ACL 的 API 调用.

PutBucketAcl

DeleteBucketPolicy

PutBucketPolicy

DeleteBucketLifecycle

PutBucketLifecycle

DeleteBucketReplication

PutBucketReplication

DeleteBucketCors

PutBucketCors

网络事件
指标筛选条件和警报 监控和发送以下对象的通知: 由以下一个或多个 API 操作所触发的通知:

SecurityGroupChangesMetricFilter

SecurityGroupChangesAlarm

用于创建、更新和删除安全组的 API 调用。

CreateSecurityGroup

DeleteSecurityGroup

AuthorizeSecurityGroupEgress

RevokeSecurityGroupEgress

AuthorizeSecurityGroupIngress

RevokeSecurityGroupIngress

NetworkAclChangesMetricFilter

NetworkAclChangesAlarm

用于创建、更新和删除网络 ACL 的 API 调用。

CreateNetworkAcl

DeleteNetworkAcl

CreateNetworkAclEntry

DeleteNetworkAclEntry

ReplaceNetworkAclAssociation

ReplaceNetworkAclEntry

GatewayChangesMetricFilter

GatewayChangesAlarm

用于创建、更新和删除客户和 Internet 网关的 API 调用。

CreateCustomerGateway

DeleteCustomerGateway

AttachInternetGateway

CreateInternetGateway

DeleteInternetGateway

DetachInternetGateway

VpcChangesMetricFilter

VpcChangesAlarm

用于创建、更新和删除虚拟私有云 (VPC)、VPC 对等连接以及到使用 ClassicLink 的经典 EC2 实例的 VPC 连接的 API 调用。

CreateVpc

DeleteVpc

ModifyVpcAttribute

AcceptVpcPeeringConnection

CreateVpcPeeringConnection

DeleteVpcPeeringConnection

RejectVpcPeeringConnection

AttachClassicLinkVpc

DetachClassicLinkVpc

DisableVpcClassicLink

EnableVpcClassicLink

Amazon EC2 事件
指标筛选条件和警报 监控和发送以下对象的通知: 由以下一个或多个 API 操作所触发的通知:

EC2InstanceChangesMetricFilter

EC2InstanceChangesAlarm

EC2 实例的创建、终止、启动、停止和重启.

RebootInstances

RunInstances

StartInstances

StopInstances

TerminateInstances

EC2LargeInstanceChangesMetricFilter

EC2LargeInstanceChangesAlarm

4 倍和 8 倍大型 EC2 实例的创建、终止、启动、停止和重启.

至少以下 API 操作之一:

RebootInstances

RunInstances

StartInstances

StopInstances

TerminateInstances

及至少以下实例类型之一:

instancetype=*.4xlarge

instancetype=*.8xlarge

CloudTrail 和 IAM 事件
指标筛选条件和警报 监控和发送以下对象的通知: 由以下一个或多个 API 操作所触发的通知:

CloudTrailChangesMetricFilter

CloudTrailChangesAlarm

创建、删除和更新跟踪。发生跟踪日志记录开始和停止事件。

CreateTrail

DeleteTrail

StartLogging

StopLogging

UpdateTrail

ConsoleSignInFailuresMetricFilter

ConsoleSignInFailuresAlarm

控制台登录失败

eventNameConsoleLogin

errorMessage 为“Failed authentication”

AuthorizationFailuresMetricFilter

AuthorizationFailuresAlarm

授权失败

导致此错误代码的任何 API 调用:AccessDenied

或者

*UnauthorizedOperation.

IAMPolicyChangesMetricFilter

IAMPolicyChangesAlarm

IAM 策略的更改

AttachGroupPolicy

DeleteGroupPolicy

DetachGroupPolicy

PutGroupPolicy

CreatePolicy

DeletePolicy

CreatePolicyVersion

DeletePolicyVersion

AttachRolePolicy

DeleteRolePolicy

DetachRolePolicy

PutRolePolicy

AttachUserPolicy

DeleteUserPolicy

DetachUserPolicy

PutUserPolicy