【发布时间】:2021-11-19 07:29:30
【问题描述】:
我正在尝试遵循最佳实践,但我不清楚文档。我有一个在本地运行的 python 脚本,它将一些文件从我的本地驱动器移动到 S3 进行处理。 Lambda 从那里拿起它,然后做剩下的事情。到目前为止,我为此流程设置了一个 AWS 用户,并将其连接到一个只能访问所需资源的“策略”。
下一步是将我的脚本移动到本地服务器中的 docker 容器中。但我认为最佳实践是使用带有策略的角色,而不是带有策略的用户。但是,according to this documentation... 为了 AssumeRole... 我必须先以用户身份登录。
对 AWS STS AssumeRole 的调用必须使用访问密钥 ID 进行签名 和现有 IAM 用户的秘密访问密钥或使用现有临时 凭据,例如来自其他角色的凭据。 (您不能调用 AssumeRole 使用 root 帐户的访问密钥。)凭据可以在 环境变量或配置文件中,将被发现 由 boto3.client() 函数自动执行。
所以无论如何,我都需要将我的用户凭据嵌入到我的 docker 映像中(或者至少是一个单独的机密文件) 如果是这样的话,那么在用户和策略之间添加一个“角色”似乎完全没用和多余。谁能确认或更正?
【问题讨论】:
-
您通常通过实例配置文件将角色分配给 ec2 实例。假设角色适用于当您已经拥有想要交换的角色时,您的设计中并非如此。 docs.aws.amazon.com/IAM/latest/UserGuide/…
标签: amazon-web-services docker boto3 amazon-iam aws-sts