如何在Mesos中为容器级别访问设置IAM角色

问题描述:

我正在通过Mesos将我的微服务部署到EC2实例中。问题是我正在与其他团队的微服务共享我的EC2实例。所有这些微服务处理差异S3桶,我们不希望其他人有机会获得我们的桶。我需要将IAM角色分配给我的容器,以便只有我可以通过部署在EC2实例中的微服务访问我的S3存储桶。 我们没有使用ECS,我们使用Mesos进行部署。任何输入或评论表示赞赏。提前致谢。如何在Mesos中为容器级别访问设置IAM角色

这里没有本地AWS支持。在此期间,您可以使用Lyft的metadataproxy(另请参阅blog post)。

引述博客:

我们有一个想法,建立一个代理调用元数据服务上http://169.254.169.254一个Web服务,通​​过大多数的调用到真正的元数据服务,但捕获调用的IAM端点。通过捕获IAM端点,我们可以决定我们将交回哪些IAM凭证。

...

要知道哪些IAM角色应当假定,在metadataproxy访问泊坞窗插座。当它收到请求时,它会根据请求IP查找容器,找到该容器的环境变量并使用IAM_ROLE环境变量的值作为假定的角色。然后它使用STS承担角色,在内存中缓存凭据(用于进一步的请求)并将它们返回给调用者。如果在内存中缓存的凭证设置为过期,则代理将重新采用凭证。