过去一周我一直在使用我生成的用于将 REST API 连接到 DynamoDB 和 AWS CLI 的访问密钥和私有密钥,今天我刚刚被离岸团队告知我根本不应该使用访问和私有密钥,我应该使用 IAM 角色,我一直在研究如何做到这一点,但我被卡住了, 这里有人遇到过同样的问题吗?
如果一切都按照您在问题中以及在回复@stdunbar的评论中所说的方式完成,则不可能这样做,这就是秘密密钥和访问密钥的目的,我认为您的离岸团队不知道他们在说什么
有一些方法可以从 AWS 获取 STS 会话密钥(例如,当您代入角色时(。一种解决方案是Hashicorp Vault,但这需要已将基础架构配置为允许这样做。还有其他方法可以使用 webui 会话生成 STS 令牌。
询问您的离岸团队应使用哪种方法来获取基于角色的访问会话令牌。您可能已经习惯了 cli 要求访问密钥 ID 和私有密钥。 会话密钥将分为三个部分,而不是两个部分。会话访问密钥 ID 将以 ASIA 而不是 AKIA 开头;会话秘密访问密钥与其静态对应密钥相同;会话令牌是一个非常长的字符串。
设置这些内容的最简单方法是在 .aws/credentials中编辑凭证文件。如果使用aws configure
则不会提示你设置会话令牌。您可以对每个部分使用aws configure set
,如果您尚未在凭证文件中设置配置文件,则只需编辑默认凭证配置文件即可。
source:https://docs.aws.amazon.com/cli/latest/reference/configure/index.html
他们(正确(提出的观点是,您的应用程序不应包含显式凭据。
相反,应用程序应该在 Elastic Beanstalk 中配置 IAM 角色。当应用程序运行并使用 AWS 开发工具包时,开发工具包将能够从运行它的 Beanstalk 环境中检索临时凭证。
您可以在管理 Elastic Beanstalk 实例配置文件中阅读更多信息。