是否有办法找到所有地区在最近1/2/3/4/5或6个月内启动的EC2实例的数量?(运行并终止)。从下面类似的问题中,我只能得到当前状态(运行|停止|终止),但不能得到过去几个月的任何信息。如何查看所有区域中所有正在运行的Amazon EC2实例?
请建议。这纯粹是为了审计目的。提前谢谢。
我建议结合存储在S3和Athena中的CloudTrail日志来执行查询。单独使用CloudTrail的问题是,在日志滚出之前,您有三个月的时间窗口。你方要求的期限最远可达6个月。
要将日志文件交付到S3桶,CloudTrail必须具有所需的权限,并且不能配置为Requester Pays桶。当您在CloudTrail控制台中创建或更新路径时,创建Amazon S3存储桶时,CloudTrail会自动将所需的权限附加到存储桶上。
要设置雅典娜,您可以通过CloudTrail控制台配置:
- 在https://console.aws.amazon.com/cloudtrail/ 打开CloudTrail控制台
- 在导航窗格中选择"Event history">
- 选择Create Athena table
- 对于存储位置,使用向下箭头选择存储日志文件的Amazon S3桶以供trail查询。
- 选择"创建表"。创建表时使用默认名称,其中包含Amazon S3 bucket的名称。
那么你可以在Athena中运行类似的查询:
SELECT eventname,
useridentity.principalid,
awsregion,
eventtime
FROM cloudtrail_logs
WHERE eventtime >= '2021-02-01T00:00:00Z'
AND eventtime < '2021-08-30T00:00:00Z'
AND (eventname ='RunInstances')
引用
为CloudTrail创建S3桶策略
使用Athena查询CloudTrail日志
Athena Search CloudTrail日志
AWS CloudTrail通过提供AWS帐户的活动历史记录,使您更容易确保遵守内部政策和监管标准。
如果启用了CloudTrail, AWS可以选择查看事件历史记录。请浏览此AWS页面以查看明确的说明。
如果您喜欢使用AWS CLI,那么本文档提供了所有详细信息。