我如何搜索 CloudTrail 事件历史记录以确定安全组或资源的更改方式?
上次更新时间:2019 年 9 月 3 日
我想查看安全组 API 调用事件历史记录以进行审计,其中包括:
创建安全组 – CreateSecurityGroup 删除安全组 – DeleteSecurityGroup 添加出站规则 – AuthorizeSecurityGroupEgress 添加入站规则 – AuthorizeSecurityGroupIngress 删除出站规则 – RevokeSecurityGroupEgress 删除入站规则 – RevokeSecurityGroupIngress解决方法
使用 AWS CloudTrail 事件历史记录、Amazon Athena 查询或 AWS Config 配置历史记录查看安全组事件历史记录。
CloudTrail 事件历史记录
您可以使用 CloudTrail 事件历史记录视图搜索最近 90 天的安全组事件历史记录。
1. 打开 CloudTrail 控制台。
2. 选择事件历史记录。
3. 选择筛选条件下拉菜单,然后选择资源名称。
4. 在输入资源名称字段中,输入资源的名称。例如,sg-123456789,然后按设备上的 Enter 键。
5. 展开事件时间,然后选择查看事件。
在此示例中,入站规则允许使用 192.168.0.0/32 中的 TCP 端口 998:
{
"eventVersion": "1.05",
"userIdentity": {
"type": "AssumedRole",
"principalId": "123456789:Bob",
"arn": "arn:aws:sts::123456789:assumed-role/123456789/Bob",
"accountId": "123456789",
"accessKeyId": "123456789",
"sessionContext": {
"attributes": {
"mfaAuthenticated": "false",
"creationDate": "2019-08-05T07:15:25Z"
},
"sessionIssuer": {
"type": "Role",
"principalId": "123456789",
"arn": "arn:aws:iam::123456789:role/123456789",
"accountId": "123456789",
"userName": "Bob"
}
}
},
"eventTime": "2019-08-05T07:16:31Z",
"eventSource": "ec2.amazonaws.com",
"eventName": "AuthorizeSecurityGroupIngress",
"awsRegion": "us-east-1",
"sourceIPAddress": "111.111.111.111",
"userAgent": "console.ec2.amazonaws.com",
"requestParameters": {
"groupId": "sg-123456789",
"ipPermissions": {
"items":
},
"ipv6Ranges": {},
"prefixListIds": {}
}
]
}
},
"responseElements": {
"requestId": "65ada3c8-d72f-4366-a583-9a9586811111",
"_return": true
},
"requestID": "65ada3c8-d72f-4366-a583-9a9586811111",
"eventID": "6c604d53-d9c3-492e-a26a-a48ac3f711111",
"eventType": "AwsApiCall",
"recipientAccountId": "123456789"
}
有关更多信息,请参阅在 CloudTrail 控制台中查看 CloudTrail 事件。
Athena 查询
您可以使用 Athena 查询搜索最近 90 天内安全组事件历史记录的 CloudTrail 日志。
注意:您必须启用跟踪才能将日志记录到 S3 存储桶中。
1. 打开 Athena 控制台。
2. 选择查询编辑器。
3. 在 Athena 查询编辑器中,复制并粘贴以下查询:
注意:请用您的表名称替换示例表名称。
SELECT *
FROM example table name
WHERE (eventname = 'CreateSecurityGroup' or eventname = 'DeleteSecurityGroup')
and eventtime > '2019-02-15T00:00:00Z'
order by eventtime asc
4. 选择运行查询。
此查询结果会跟踪安全组创建和删除。
5. 您可以使用以下查询查找对特定安全组所做的所有更改:
SELECT *
FROM your example table name
WHERE (eventname like '%SecurityGroup%' and requestparameters like '%sg-123456789%')
and eventtime > '2019-02-15T00:00:00Z'
order by eventtime asc;
有关更多信息,请参阅了解 CloudTrail 日志和 Athena 表。
AWS Config 配置历史记录
您可以使用 AWS Config 查看超过默认 90 天期限的安全组事件历史记录的配置历史记录。
注意:您必须打开 AWS Config 配置记录器。有关更多信息,请参阅管理配置记录器。
-
打开 CloudTrail 控制台。
选择事件历史记录。
选择筛选条件下拉菜单,然后选择事件名称。
在输入事件名称字段中,输入资源的名称。例如,CreateSecurityGroup,然后按设备上的 Enter 键。
展开事件时间。
在引用的资源中,选择时钟图标以查看配置时间线。
有关更多信息,请参阅在 AWS Config 中查看引用的资源。