SEC02-BP02 使用临时凭证 - AWS Well-Architected Framework

SEC02-BP02 使用临时凭证

需要身份以动态获取 临时凭证。对于员工身份,使用 AWS IAM Identity Center 或与 AWS Identity and Access Management(IAM)角色联合访问 AWS 账户。对于机器身份,例如 Amazon Elastic Compute Cloud(Amazon EC2)实例或 AWS Lambda 函数,要求使用 IAM 角色,而不是拥有长期访问密钥的 IAM 用户。

对于使用 AWS Management Console 的人员身份,要求用户获取临时凭证并联合到 AWS 中。您可以使用 AWS IAM Identity Center 用户门户来完成此操作。对于需要访问 CLI 的用户,请确保他们使用 AWS CLI v2,它支持与 IAM Identity Center 直接集成。用户可以创建链接到 IAM Identity Center 账户和角色的 CLI 配置文件。CLI 会自动从 IAM Identity Center 检索 AWS 凭证,并代表您刷新这些凭证。这样就无需从 IAM Identity Center 控制台复制并粘贴临时 AWS 凭证。对于开发工具包,用户应依靠 AWS Security Token Service(AWS STS)来代入角色,以接收临时凭证。在某些情况下,使用临时凭证可能并不现实。您应了解存储访问密钥的风险、经常轮换这些密钥,并尽可能要求使用多重身份验证(MFA)作为一项条件。使用最后访问的信息来确定何时轮换或删除访问密钥。

当您需要授权使用方访问您的 AWS 资源时,请使用 Amazon Cognito 身份池,并为他们分配一组临时的有限权限凭证,以使他们能够访问您的 AWS 资源。通过您创建的 IAM 角色 控制每个用户的权限。您可以定义规则,以根据用户的 ID 令牌中的声明,为每个用户选择角色。您可以为通过身份验证的用户定义一个默认角色。对于未通过身份验证的访客用户,您还可以定义一个拥有有限权限的单独 IAM 角色。

对于机器身份,您应依靠 IAM 角色授予对 AWS 的访问权限。对于 Amazon Elastic Compute Cloud(Amazon EC2)实例,您可以使用 适用于 Amazon EC2 的角色。您可以将 IAM 角色附加到您的 Amazon EC2 实例,以使您在 Amazon EC2 上运行的应用程序能够使用 AWS 创建的临时安全凭证,并通过实例元数据服务(IMDS,Instance Metadata Service)自动进行轮换。此 最新版本 的 IMDS 可防御暴露临时凭证的漏洞,应该予以实施。要使用密钥或密码访问 Amazon EC2 实例,AWS Systems Manager 是一种更安全的方法,它允许您使用预安装的代理来访问和管理实例,而无需使用存储的密钥。此外,您也可以使用其他 AWS 服务(例如 AWS Lambda)来配置 IAM 服务角色,以授权此服务利用临时凭证执行 AWS 操作。在无法使用临时凭证的情况下,请使用编程工具,例如 AWS Secrets Manager,来自动完成凭证轮换和管理。

定期审计和轮换凭证: (最好通过自动化工具)定期验证,以确保实施正确的控制措施。对于人员身份,您应要求用户定期更改他们的密码并弃用访问密钥,以支持临时凭证。在从 IAM 用户转向集中身份时,您可以 生成凭证报告 以审计 IAM 用户。我们还建议您在身份提供者中实施 MFA 设置。您可以设置 AWS Config 规则 来监控这些设置。对于机器身份,您应依靠使用 IAM 角色的临时凭证。当无法执行此操作时,需要经常审计和轮换访问密钥。

安全存储和使用密钥: 对于并非与 IAM 相关且无法利用临时凭证的凭证,如数据库登录,请使用一种专门用于处理密钥管理的服务,比如 Secrets Manager。借助 Secrets Manager,您可以使用 支持的服务轻松管理、轮换和安全地存储加密密钥。为访问密钥而执行的调用将记录到 AWS CloudTrail 中以用于审计,IAM 权限可以为它们授予最低访问权限。

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

实施指导

资源

相关文档:

相关视频: