AWS CloudTrail
用户指南 (版本 1.0)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 AWS CloudFormation 模板创建 CloudWatch 警报

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

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

示例 CloudFormation 模板

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

可以从以下链接下载该模板:

https://s3-us-west-2.amazonaws.com/awscloudtrail/cloudwatch-alarms-for-cloudtrail-api-activity/CloudWatch_Alarms_for_CloudTrail_API_Activity.json

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

  • 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 模板:https://s3-us-west-2.amazonaws.com/awscloudtrail/cloudwatch-alarms-for-cloudtrail-api-activity/CloudWatch_Alarms_for_CloudTrail_API_Activity.json

  3. 通过以下网址打开 AWS CloudFormation 控制台:https://console.amazonaws.cn/cloudformation

  4. 选择 Create Stack

    
                         在控制台中创建 AWS CloudFormation 堆栈。
  5. Select Template 页面上,对于 Name,键入一个堆栈名。下面的示例使用了 CloudWatchAlarmsForCloudTrail

    
                         在 AWS CloudFormation 控制台中选择一个模板。
  6. 对于 Source (源),选择 Upload a template to Amazon S3 (上传模板到 Amazon S3)

    
                         将模板上传到 AWS CloudFormation 控制台。
  7. 选择 Choose File (选择文件),然后选择您下载的 AWS CloudFormation 模板。

  8. 选择 Next

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

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

    
                         指定 AWS CloudFormation 堆栈的电子邮件地址和日志组名称。
  11. 选择 Next

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

    
                         指定 AWS CloudFormation 堆栈的其他选项。
  13. 选择 Next

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

    
                         检查 AWS CloudFormation 堆栈设置无误后再创建它。
  15. 选择 Create。将在几分钟内创建堆栈。

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

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

    
                         在电子邮件中确认订阅。

    下面的示例通知是在 API 调用更改 IAM 策略时发送的,这种更改触发了指标警报。

    
                        请参见下面的电子邮件通知示例。

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