如何排查我 AWS 账户中的异常资源活动?
上次更新时间:2021 年 10 月 19 日
我想确定创建了相关资源的 AWS Identity and Access Management(IAM)用户并限制访问权限。
简短描述
如果出现未经授权的账户活动(如意外启动的新服务),则可能说明您的 AWS 凭证发生了泄漏。某些怀有恶意的人可能会使用您的凭证访问您的账户并执行策略允许的活动。如需更多信息,请见发现我的 AWS 账户中存在未经授权的活动时该怎么办?和 AWS 客户协议。
解决方法
识别受损的 IAM 用户和访问密钥。然后,禁用它们。使用 AWS CloudTrail 搜索与受损 IAM 用户相关的 API 事件历史记录。
在下例中,有一个 Amazon Elastic Compute Cloud(Amazon EC2)实例意外启动。
注意:这些说明适用于长期性的安全凭证,而非临时安全凭证。要禁用临时凭证,请参阅禁用临时安全凭证的权限。
识别 Amazon EC2 实例 ID
- 打开 Amazon EC2 控制台,然后选择 Instances(实例)。
- 选择该 EC2 实例,然后选择 Description (描述)选项卡。
- 复制 Instance ID(实例 ID)。
查找用于启动实例的 IAM 访问密钥 ID 和用户名
- 打开 CloudTrail 控制台,然后选择 Event history(事件历史记录)。
- 选择 Filter(筛选条件)下拉列表,然后选择 Resource name(资源名称)。
- 在 Enter resource name(输入资源名称)字段中,粘贴该 EC2 实例的 ID,然后按下您设备上的 enter 键。
- 展开 RunInstances 的 Event name(事件名称)。
- 复制 AWS access key(AWS 访问密钥)并记下 User name(用户名)。
禁用该 IAM 用户,创建一个备份 IAM 访问密钥,然后禁用发生泄漏的访问密钥
- 打开 IAM 控制台,然后将 IAM 访问密钥 ID 复制到 Search IAM(搜索 IAM)栏中。
- 选择用户名,然后选择安全凭证选项卡。
- 在控制台密码中,选择管理。
注意:如果 AWS 管理控制台密码被设置为已禁用,您可以跳过此步骤。 - 在控制台访问中,选择禁用,然后选择应用。
重要提示:账户被禁用的用户无法访问 AWS 管理控制台。但是,如果该用户具有有效的访问密钥,他们仍然可以通过 API 调用访问 AWS 服务。 - 请按照说明在不中断应用程序的情况下轮换 IAM 用户的访问密钥(控制台)。
- 对于发生泄漏的 IAM 访问密钥,请选择 Make inactive(转为非活跃)。
通过受损的访问密钥查看活动的 CloudTrail 事件历史记录
- 打开 CloudTrail 控制台,然后从导航窗格中选择 Event history(事件历史记录)。
- 选择 Filter(筛选条件)下拉菜单,然后选择 AWS access key(AWS 访问密钥)筛选条件。
- 在 Enter AWS access key(输入 AWS 访问密钥)字段中,输入受损的 IAM 访问密钥 ID。
- 展开 API 调用 RunInstances 的事件名称。
注意:您可以查看最近 90 天的事件历史记录。
您也可以搜索 CloudTrail 事件历史记录以确定安全组或资源的更改原因以及运行、停止、启动和终止 EC2 实例的 API 调用。
有关更多信息,请参阅使用 CloudTrail 事件历史记录查看事件。