【问题标题】:AWS cli within task/container uses instance role policy and not task role任务/容器中的 AWS cli 使用实例角色策略而不是任务角色
【发布时间】:2017-04-12 11:01:19
【问题描述】:

如果我在 ECS 上的容器内使用 aws cli,那么附加到 ECS 实例角色的 IAM 策略似乎应该适用,但根本没有使用任务角色 IAM 策略。

场景:

aws s3 cp local/file s3://remotebucket

s3 PutObject 策略附加到任务角色,而不是实例角色 - 拒绝访问

s3 PutObject 策略附加到实例角色,而不是任务角色 - 成功

我对任务中IAM的理解是容器继承了实例角色,还包含了任务角色的策略?我怎样才能让第一个场景起作用? http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html

【问题讨论】:

  • 遇到同样的问题。你有没有找到解决方案?据我所知,AWS CLI 需要从 EC2 实例中承担角色。

标签: amazon-web-services amazon-iam amazon-ecs


【解决方案1】:

在这个问题上折腾了一天之后,事实证明这个问题是由过时的 AWS CLI 引起的。 http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#task-iam-roles-minimum-sdk

在我的情况下,我使用 apt-get install aws-cli 安装 aws-cli,它安装了 1.4.2 版。此版本不处理获取正确 IAM 所需的 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 环境变量。所以默认获取实例的IAM。

解决方案是通过 pip 或捆绑安装来安装 AWS CLI,以确保我拥有最新版本。这同样适用于 AWS 开发工具包 - 上面的链接中描述了所需的版本。

【讨论】:

    猜你喜欢
    • 2020-08-25
    • 2021-09-19
    • 2018-09-29
    • 1970-01-01
    • 2018-09-19
    • 2015-08-26
    • 2023-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多