AWS ECS - 如何将任务的执行角色传递给 Boto3?

Posted

技术标签:

【中文标题】AWS ECS - 如何将任务的执行角色传递给 Boto3?【英文标题】:AWS ECS - How to pass task's execution role to Boto3? 【发布时间】:2021-06-27 19:13:17 【问题描述】:

我正在使用运行 Windows Server 2019 AMI/Docker 的 EC2 实例运行 ECS 服务 - 但是在运行使用 boto3 的任务时,日志显示

botocore.exceptions.NoCredentialsError: Unable to locate credentials

据我所知,任务的执行角色应该提供给容器,而 boto3 应该承担该角色。

是否需要额外的配置才能让 boto3 在 Windows 容器或一般 ECS 中承担 ECS 实例角色?

【问题讨论】:

【参考方案1】:

这可能是一个令人困惑的主题。 ECS 任务有两个角色:

ECS 用于访问 ECR 存储库和更新负载均衡器目标等的“任务执行角色”。 ECS 任务中运行的代码可用于访问 AWS 服务的“任务角色”。

对于在 ECS 内运行的 boto3,您必须指定 Task Role。添加任务角色后,boto3 将自动获取凭据。

【讨论】:

以上是关于AWS ECS - 如何将任务的执行角色传递给 Boto3?的主要内容,如果未能解决你的问题,请参考以下文章

ECS 任务。如何在容器中使用 AWS CLI

如何将 ECS 凭证与 AWS JS 开发工具包一起使用

如何为 ECS 任务分配 IAM 角色

Terraform Fargate 任务定义请求执行角色

AWS - 如何使用 CDK/CloudFormation 将服务链接角色传递给自动缩放组?

我应该如何将敏感的环境变量传递给 Amazon ECS 任务?