我有一个 ECS Fargate 任务正在运行,该任务附加了一个角色。此角色具有 S3FullAccess 策略(以及 AssumeRole 与 ECS 服务的信任伙伴关系)。
但是,当尝试将对象放入存储桶时,出现拒绝访问错误。我试过启动一个 EC2 实例并附加相同的角色,并且可以毫无问题地放入存储桶。
对我来说,这个角色似乎没有附加到任务中。我错过了重要的一步吗?我无法通过 SSH 连接到实例,因为它是 Fargate。
更新: 我提取了在本地机器上设置和使用的 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 环境变量。我在那里也遇到了拒绝访问问题,这意味着(对我而言)我为该角色设置的任何策略都没有应用于该任务。
任何可以帮助任何事情的人都将不胜感激!
变通方法: 一个简单的变通方法是创建具有编程访问权限的 IAM 用户,并在您的任务定义中设置 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 环境变量。
这有效,但不能解释根本问题。