我的 AWS 账户可能已泄露

上次更新时间:2020 年 4 月 15 日

我在 AWS 管理控制台中发现了我不记得曾创建过的资源。

-或者-

我收到一条通知,告知我的 AWS 资源或账户可能已泄露。我该怎么办?

简短描述

如果您怀疑自己的账户已泄露,请执行以下操作:

解决方法

更改您的 AWS 账户根用户密码和所有 IAM 用户的密码

要更改您的 AWS 账户根用户密码,请参阅更改 AWS 账户根用户密码

要更改 IAM 用户的密码,请参阅管理 IAM 用户的密码

最佳实践是定期更改您的密码,以避免您的账户遭到未经授权的使用。有关更多信息,请参阅 AWS 安全最佳实践白皮书。

轮换和删除所有 AWS 访问密钥

如果您找到不再需要或之前未创建的 AWS 访问密钥,请删除这些访问密钥

如果您的应用程序当前正在使用访问密钥,请将密钥替换为新密钥:

  1. 首先,创建第二个密钥。然后,修改您的应用程序以使用新密钥。
  2. 禁用(但不删除)第一个密钥
  3. 如果您的应用程序出现任何问题,请临时重新激活密钥。如果您的应用程序完全可正常工作,并且第一个密钥处于禁用状态,请删除第一个密钥
  4. 删除您尚未创建的任何 IAM 用户

按照与处理账户密码相同的方式处理 AWS 访问密钥:

有关确定哪个 IAM 用户创建了资源以及限制访问的说明,请参阅如何排查我的 AWS 账户中异常的资源活动?

有关 AWS 安全最佳实践的更多信息,请参阅 AWS 安全最佳实践白皮书。

删除任何可能已受损的 IAM 用户

  1. 打开 IAM 控制台
  2. 从列表中选择每个 IAM 用户,然后在权限策略下查找名为 AWSExposedCredentialPolicy_DO_NOT_REMOVE 的策略。如果用户具有此附加策略,则必须删除该用户。
  3. 删除您未创建的任何 IAM 用户。
  4. 更改您已创建并想要保留的 IAM 用户的密码

删除任何无法识别或未授权的资源

登录您的 AWS 账户,然后检查您的账户上的所有资源是否都是您启动的资源。请务必检查所有的 AWS 区域,即使是您从未启动 AWS 资源的区域也要纳入检查范围。特别注意以下事项:

要删除 Lambda 函数和层,请执行以下操作:

  1. 打开 Lambda 控制台
  2. 在导航窗格中,选择函数
  3. 选择您要删除的函数。
  4. 对于操作,请选择删除
  5. 在导航窗格中,选择
  6. 选择您要删除的层。
  7. 选择删除

如果您不确定如何删除与特定 AWS 服务关联的资源,请在 AWS 文档上查找服务文档。

联系 AWS Support

如果您从 AWS 收到有关您的账户的通知,请登录 AWS Support 中心并响应通知。

如果您无法登录账户,请使用联系我们表单向 AWS Support 中心请求帮助。

如果您有任何问题或疑虑,请在 AWS Support 中心创建新的 AWS Support 案例

注意:请勿在您的通信中包括敏感信息,如 AWS 访问密钥、密码或信用卡信息。

使用 AWS Git 项目扫描泄露证据

AWS 提供了可供您安装的 Git 项目,可帮助您保护账户:

  • Git Secrets 可以扫描合并项、提交项和提交消息以获取机密信息(即访问密钥)。如果 Git Secrets 检测到禁用的正则表达式,它可以拒绝将这些提交项发布到公有存储库。
  • 使用 AWS Step Functions 和 AWS Lambda 从 AWS Health 或通过 Trusted Advisor 生成 Amazon CloudWatch Events。如果有证据表明您的访问密钥已泄露,则这些项目可以帮助您自动检测、记录事件及缓解事件风险。