pipe理多个Docker容器的IAM安全证书

在普通的EC2环境中,通过IAMangular色和凭证(从实例元数据自动提取)来pipe理对其他AWS资源的访问相当简单。 使用CloudFormation更容易,您可以在将特定应用程序angular色分配给实例时即时创buildangular色。

如果我想迁移到Docker并进行一种M对N的部署,那里有M台机器和N个应用程序,我应该如何限制对每个应用程序AWS资源的访问? 实例元数据可以被主机上的任何人访问,所以我希望每个应用程序能够在相同的部署环境中查看/修改其他每个应用程序的数据。

在此类环境中运行的应用程序容器提供安全证书的最佳做法是什么?

有这个项目: https : //github.com/dump247/docker-ec2-metadata

它充当实例元数据端点的代理,返回特定于该容器的angular色。 我以前没有用过,但似乎解决了你所描述的用例。

在使用EC2的AWS中使用angular色和安全组应用最小特权(即使您没有提及它们),都是为托pipe应用程序提供安全环境的最佳实践,特别是在使用CloudFormation时。 但是,当您在多层租户Docker环境之上进行分层时,事情开始分崩离析。

现在最好的答案是继续获得angular色的利益,同时应用最小特权是不使用多租户方法。 基本上使用EC2实例和应用程序之间的一对一映射,但仍然可以使用群集/ ASG。 Docker仍然是一个非常有用且function强大的工具,可以用来pipe理和部署应用程序,但是现在angular色应用于EC2实例,而不是容器。 这意味着现在为每个应用程序使用单独的VM。

如果多租户比angular色更重要,那么答案就是不使用angular色并使用其他方法将AWS凭证分发给您的应用程序。

不幸的是,这些解决scheme都不是非常可取的,我期望这个特定的难点将在未来由AWS解决,主要是由于集装箱日益普及。