有没有办法 运行 Docker 中的每项服务以不同的 IAM 角色聚集到 运行

Is there a way to run each service in Docker swarm to run with different IAM roles

我想在 AWS 上启动一个 docker swarm 集群。我们计划使用 IAM 角色来定义 docker swarm 集群内每个服务的访问级别。有没有办法做到这一点?我确实看过下面的文章,但那是 4 年前的事了,我相信这方面会有进展,因为 Kubernetes 有为每个命名空间指定角色的规定。 docker swarm 有这样的东西吗?

https://eng.lyft.com/scoping-aws-iam-roles-to-docker-containers-c9c5f8f2f75

目前没有本地方式 Docker Swarm 服务具有分配的角色,AWS 无法访问 EC2 主机上的服务。

存在许多第三方解决方案,这些解决方案基本上会承担 AWS 中存在的角色,然后将这些临时凭证作为环境变量传递到每个 Docker 容器中。为此,EC2 主机需要一个 IAM 角色,该角色有权承担所需的角色。

虽然 AWS 不支持 docker swarm 上的 IAM 角色,但他们确实有 2 个基于容器编排的产品:

  • ECS - 为 运行 production-scale Docker 容器构建的自定义亚马逊产品
  • EKS - Amazon 管理的 Kubernetes 编排层

这两种产品都允许任务 IAM 角色,该角色可以提供给 运行解决方案中的容器。