在 ECS/Fargate 中向 AWS CLI 提供凭证

Providing credentials to the AWS CLI in ECS/Fargate

我想使用 Fargate 创建一个 ECS 任务,并使用 AWS CLI(除其他外)将文件上传到 S3。我知道可以创建任务角色,它可以为任务提供在 AWS services/resources 上的权限。同样,在 OpsWorks 中,AWS SDK 能够查询实例元数据以获取其实例配置文件的临时凭证。我还 found these docs 建议在 EC2 实例上使用 AWS CLI 可以实现类似的功能。

是否有 Fargate 的等效项——即,AWS CLI,运行在 Fargate 容器中,是否可以查询元数据服务以获取临时凭证?如果没有,什么是进行身份验证以便我可以将文件上传到 S3 的好方法?我是否应该为此任务创建一个用户并将 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 作为环境变量传递?

(我知道有一个由 EC2 支持的 ECS 任务是可能的,但这个任务是短暂的,运行 可能每月一次;它似乎很适合 Fargate。)

"I know that it's possible to create task roles, which can provide the task with permissions on AWS services/resources."

"Is there an equivalent for Fargate"

你已经知道答案了。 ECS 任务角色并非特定于 EC2 部署,它也适用于 Fargate 部署。

您可以通过 ECS metadata service 获取任务元数据,包括 IAM 访问密钥。但您无需担心这一点,因为 AWS CLI 和任何 AWS SDK 会在 运行 位于 ECS 任务中时自动提取该信息。