SEC02-BP02 使用临时凭证 - 安全性支柱

SEC02-BP02 使用临时凭证

进行任何类型的身份验证时,最好使用临时凭证而不是长期凭证,以降低或消除诸如凭证被无意泄露、共享或被盗之类的风险。

期望结果:为了降低长期凭证的风险,请尽可能对人类和机器身份使用临时凭证。长期凭证会带来许多风险,例如,它们能够以代码的形式上传到公有 GitHub 存储库。使用临时凭证可以显著降低凭证被泄露的几率。

常见反模式:

  • 开发人员使用 IAM users 的长期访问密钥,而不是使用联合身份验证从 CLI 获得临时凭证。

  • 开发人员在他们的代码中嵌入长期访问密钥,并将该代码上传到公有 Git 存储库。

  • 开发人员在移动应用程序中嵌入长期访问密钥,然后在应用商店中提供这些密钥。

  • 用户与其他用户共享长期访问密钥,或员工离开公司时仍持有长期访问密钥。

  • 当可以使用临时凭证时,对机器身份使用长期访问密钥。

在未建立这种最佳实践的情况下暴露的风险等级:

实施指导

对所有 AWS API 和 CLI 请求使用临时安全凭证,而不是长期凭证。在几乎所有情况下,对 AWS 服务的 API 和 CLI 请求都必须使用 AWS 访问密钥进行签名。这些请求可以使用临时凭证或长期凭证进行签名。只有在使用 IAM 用户AWS 账户 根用户时,才应该使用长期凭证(也称为长期访问密钥)。当您联合到 AWS 或通过其他方法代入 IAM 角色时,系统将生成临时凭证。即使您使用登录凭证访问 AWS Management Console,系统也会生成临时凭证供您调用 AWS 服务。需要用到长期凭证的情况很少,您可以使用临时凭证完成几乎所有任务。

尽量不要使用长期凭证,多用临时凭证,并且还应该减少采取 IAM 用户形式,多用联合身份验证和 IAM 角色形式进行访问。虽然 IAM 过去常使用用户来访问人类和机器身份,但我们现在建议不要使用它们,以避免使用长期访问密钥所带来的风险。

实施步骤

对于员工、管理员、开发人员、操作员和客户等人类身份:

对于机器身份,您就可能需要使用长期凭证了。在这些情况下,您应该要求工作负载使用具有 IAM 角色的临时凭证来访问 AWS

某些情况下不能选择临时凭证,此时您可能需要使用长期凭证。在这些情况下,可以定期审计和轮换凭证,并定期轮换访问密钥以解决需要使用长期凭证的情况。诸如使用 WordPress 插件和第三方 AWS 客户端等情况,都可能需要用到长期凭证。在必须使用长期凭证的情况下,或者对于并非 AWS 访问密钥的凭证(如数据库登录),您可以使用一种专门用于处理密钥管理的服务,比如 AWS Secrets Manager。借助 Secrets Manager,您可以使用支持的服务轻松管理、轮换和安全地存储加密密钥。有关轮换长期凭证的更多信息,请参阅轮换访问密钥

资源

相关最佳实践:

相关文档:

相关视频: