我发现我的 AWS 账户中存在异常的资源活动。我想确定创建该资源的 AWS Identity and Access Management (IAM) 用户,并限制对该资源的访问。
简短描述
如果您在账户中发现意外的资源活动,则您的凭证可能已泄露。拥有您的凭证的未授权用户可执行您的 IAM 策略允许的任何操作。有关如何处理潜在的未授权访问的指导,请参阅如果我发现我的 AWS 账户中存在未经授权的活动该怎么办?
解决方法
首先,识别已泄露的 IAM 用户和访问密钥并停用它们。然后,使用 AWS CloudTrail 搜索与已泄露的 IAM 用户关联的 API 事件历史记录。
在以下示例中,一个 Amazon Elastic Compute Cloud (Amazon EC2) 实例意外启动。
**注意:**以下解决方法适用于长期性的安全凭证,而非临时安全凭证。要撤销临时凭证的权限,请参阅禁用临时安全凭证的权限。
识别 Amazon EC2 实例 ID
完成下面的步骤:
- 打开 Amazon EC2 控制台,然后选择 Instances(实例)。
- 选择 EC2 实例,然后选择 Instance Summary(实例摘要)选项卡。
- 复制 Instance ID(实例 ID)。
查找用于启动实例的 IAM 访问密钥 ID 和用户名
完成以下步骤:
- 打开 CloudTrail 控制台,然后选择 Event history(事件历史记录)。
- 对于 Lookup Attributes(查找属性),选择 Resource name(资源名称)。
- 在 Enter resource name(输入资源名称)字段中,输入实例 ID,然后选择 Enter(输入)。
- 展开事件名称,找到 RunInstances。
- 复制 AWS access key(AWS 访问密钥),然后记下 username(用户名)。
删除 IAM 用户,创建备份 IAM 访问密钥,然后停用已泄露的访问密钥
完成以下步骤:
- 打开 IAM 控制台,然后在 Search IAM(搜索 IAM)栏中输入 IAM 访问密钥 ID。
- 选择用户名,然后选择 Security credentials(安全凭证)选项卡。
- 在 Console sign-in(控制台登录)中,选择 Manage console access(管理控制台访问权限)。
注意:如果 AWS 管理控制台密码设置为已禁用,那么可以跳过此步骤。
- 在管理控制台访问权限中,选择禁用,然后选择应用。
**重要事项:**但是,如果用户具有有效的访问密钥,则他们仍然可以通过 API 调用访问 AWS 服务。
- 更新访问密钥。
- 对于已泄露的 IAM 访问密钥,选择 Actions(操作),然后选择 Deactivate(停用)。
注意: 如果您在已泄露的 IAM 访问密钥使用过程中停用该密钥,则可能会影响生产环境。
查看 CloudTrail 事件历史记录,以了解发生泄露的访问密钥的活动
完成下面的步骤:
- 打开 CloudTrail 控制台。
- 在导航窗格中,选择 Event history(事件历史记录)。
- 对于 Lookup Attributes(查找属性),选择 AWS access key(AWS 访问密钥)。
- 在 Enter AWS access key(输入 AWS 访问密钥)字段中,输入已泄露的 IAM 访问密钥 ID。
- 展开事件名称,找到 RunInstances API 调用。
**注意:**您可以查看最近 90 天的事件历史记录。
您也可以搜索 CloudTrail 事件历史记录,以确定安全组或资源的更改方式。
有关详细信息,请参阅 Working with CloudTrail event history。
相关信息
IAM 中的安全最佳实践
保护访问密钥
管理 IAM 策略
AWS 安全审核指南