对ECS的角色要求感到困惑


14

我正在尝试建立ECS,但到目前为止,我遇到了一些权限问题,为此我已经在该论坛上创建了一些问题。

我认为我被困住了,因为老实说我无法在一个地方准确地找到所有这些角色要求。

看来我需要定义至少两个角色:

1)ECS容器 http://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html

2)ECS任务 http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#enable_task_iam_roles

这是对的吗?

我错过了什么吗?IAM是否有特殊要求?


目前尚不清楚是什么问题。您可以编辑问题以包括细节吗?
EEAA

Answers:


25

唯一必要的角色是容器实例IAM角色。此角色允许ECS代理(在您的EC2实例上运行)与Amazon ECS通信。

对于不同的目的,您可能还会发现其他五个角色很有用:

  • ECS服务链接角色(SLR) -该角色使Amazon ECS可以代表您管理与您的应用程序关联的各种AWS资源。使用服务时,该角色允许Amazon ECS管理与您的服务关联的负载均衡器(经典负载均衡器,应用程序负载均衡器和网络负载均衡器)和服务发现(使用Route 53)。使用任务网络时,此角色允许Amazon ECS将弹性网络接口(ENI)附加和分离到您的任务。使用AWS Fargate时,此角色是必需的。
  • Service Scheduler IAM角色 -在引入ECS服务链接角色(SLR)之前,此角色与服务结合使用,以使Amazon ECS能够管理与您的服务关联的负载均衡器。如果要在ECS服务中使用弹性负载均衡器(经典负载均衡器,应用程序负载均衡器或网络负载均衡器),则可以使用此角色。现在,ECS SLR可用了,您可以使用这两个角色中的任一个,但是如果您想限制授予Amazon ECS的权限以覆盖特定的负载均衡器资源,您可能仍希望使用此角色。
  • Auto Scaling IAM角色 -此角色与服务结合使用,并允许Application Auto Scaling服务将您的服务的所需计数放大或缩小。
  • 任务IAM角色 -此角色可以与任何任务(包括由Service启动的任务)一起使用。该角色与EC2实例配置文件非常相似,但是允许您将权限与单个Task关联,而不是与承载这些Task的基础EC2实例关联。如果您正在整个ECS集群中运行多个具有不同权限要求的不同应用程序,则可以使用Task IAM角色为每个Task授予特定权限,而不必确保集群中的每个EC2实例都具有任何权限的组合权限应用程序将需要。
  • 任务执行角色 -使用AWS Fargate时,此角色是必需的,它将替换启动类型不可用的Container Instance IAM角色FARGATE。该角色使AWS Fargate可以从Amazon ECR中提取您的容器映像,并将您的日志转发到Amazon CloudWatch Logs。此角色(在Fargate和EC2启动类型上也)用于从AWS Secrets Manager和AWS Systems Manager Parameter Store启用私有注册表身份验证机密

1

除了对@ samuel-karp的很好解释,今天,当我从经典ELB迁移到结合task_role_arnECS服务定制的ALB时遇到了一个问题。

尽管我按照链接后面描述的说明进行操作Task IAM role,但错误是

无法承担角色并验证指定的targetGroupArn。请确认所传递的ECS服务角色具有适当的权限。

问题是该服务似乎在负载均衡器中注册了自己。它只有当我从交换的主要工作ecs.amazonaws.com,以

"Principal": { "Service": "ecs-tasks.amazonaws.com" }

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.