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

Posted

技术标签:

【中文标题】ECS 任务。如何在容器中使用 AWS CLI【英文标题】:ECS task. How to use AWS CLI within container 【发布时间】:2020-09-30 21:19:18 【问题描述】:

我正在尝试在容器内使用 AWS cli 命令。

我在 ECS 集群实例中给出了策略,但似乎容器出现了错误,因为它在启动和失败时尝试在容器内调用 AWS CLI 命令作为入口点。

我的 IAM 角色与实例配置文件允许进行 KMS 获取和解密,这是我在 AWS CLI 操作中所需要的

有没有办法在 ECS 任务容器内传递像实例配置文件这样的凭据?

【问题讨论】:

【参考方案1】:

要在任务中将角色传递给您的容器容器,您可以使用IAM Roles for Tasks:

使用 Amazon ECS 任务的 IAM 角色,您可以指定一个 IAM 角色,该角色可以由容器在任务中使用。应用程序必须使用 AWS 凭证签署其 AWS API 请求,并且此功能提供了一种管理凭证的策略供您的应用程序使用,类似于 Amazon EC2 实例配置文件为 EC2 实例提供凭证的方式。

【讨论】:

是的,我也这样做了。但我从 Cloudwatch 日志中收到 Received error when attempting to retrieve ECS metadata: Connect timeout on endpoint URL: "http://169.254.170.2/v2/credentials/d1d52870-26d0-4d73-b920-deeb44449428" 错误以执行该任务。发生这种情况是否有原因? 基本上是我公司的网络屏蔽了它。为了确保它有效,我必须在 /etc/ecs/ecs.config 下指定 NO_PROXY 环境变量

以上是关于ECS 任务。如何在容器中使用 AWS CLI的主要内容,如果未能解决你的问题,请参考以下文章

获取从 aws cli 运行的 ecs 任务的外部链接

如何链接在 AWS ECS 任务中运行的 2 个容器

如何在 AWS ECS 中扩展任务/容器

是否可以使用 ecs-cli compose 注册任务定义?

AWS ECS 使用 docker 和 nginx,如何将我的 nginx 配置放入容器中?

如何在 AWS ECS 任务定义中配置日志