1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 这里很好地解释了 EC2 实例如何使用实例配置文件承担角色:[使用 IAM 角色向在 Amazon EC2 实例上运行的应用程序授予权限](https://docs.aws.amazon.com/IAM/latest/用户指南/id_roles_use_switch-role-ec2.html)。
您还可以阅读 使用 IAM 角色的优势 而不是手动分发凭证.
现在回到你的问题。
您是对的:您需要通过为其分配具有适当权限的 IAM 角色(用于访问 Secrets Manager 服务和获取存储的秘密)来授予 EC2 实例所需的权限。
- 检查请求是否合法不是 Secrets Manager 服务专门做的事情。这是 AWS 的核心功能——每个 API 调用都将被检查有效性。每个 API 请求都必须使用凭证进行签名才能访问 AWS 服务。 AWS 将检查凭据是否有效以及它们是否授予调用该特定 API 的权限。
- 当您使用 Java SDK 并从分配了角色的实例调用 Secrets Manager 时,SDK 将首先调用 [AWS Security Token Service](https://docs.aws.amazon.com/STS /latest/APIReference/welcome.html) 并为您获取凭据。如果您将角色附加到您的 EC2 实例,此调用将在后台发生。 AWS STS 将颁发临时凭证,这些凭证将在一段时间后过期。这些凭据将签署发送到 Secrets Manager 的后续请求,因此这就是对调用进行身份验证的方式。有关更多信息,您可以阅读这篇博文 解释了在担任角色。
- Secrets Manager 服务将观察来自 EC2 服务的 API 调用。无法限制对单个进程的访问。在具有附加角色的 EC2 实例上运行的所有进程都将拥有该角色授予的所有权限。
- 通过使用基于资源的权限策略,您可以控制哪些 IAM 角色和服务可以访问您的秘密 在 Secrets Manager 中。但是,如果分配了角色的实例将受到威胁,这不会阻止入侵者访问机密。在这种情况下,请遵循安全事件响应最佳实践 并隔离实例。由于您没有在该实例上存储任何长期凭证,因此被泄露的临时凭证很快就会过期,因此入侵者将无法再访问这些服务。您还可以在 Secrets Manager 中配置自动 secrets rotation,这样您的数据库密码也会自动更改(不需要将它们分发到您的所有实例)。
相关内容
- AWS 官方已更新 2 年前
- AWS 官方已更新 10 个月前
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前