我正通过Mesos将我的微服务部署到EC2实例中。问题是我正在与其他团队的微服务共享我的EC2实例。所有这些微服务都处理不同的S3存储桶,我们不希望其他人访问我们的存储桶。我需要将IAM角色分配给我的容器,这样我才能通过部署在EC2实例中的微服务访问我的S3存储桶。 我们没有使用ECS,我们使用Mesos进行部署。任何意见或评论都表示赞赏。提前谢谢。
答案 0 :(得分:1)
此处没有本机AWS支持。在此期间,您可以使用Lyft的metadataproxy(另请参阅blog post)。
引用博客:
我们有一个想法,即构建一个Web服务,代理对http://169.254.169.254上的元数据服务的调用,并将大多数调用传递给真实元数据服务,但捕获对IAM端点的调用。通过捕获IAM端点,我们可以决定我们将返回哪些IAM凭证。
...
要知道应该假设哪些IAM角色,metadataproxy可以访问docker socket。当它收到请求时,它会根据请求IP查找容器,查找容器的环境变量,并使用IAM_ROLE环境变量的值作为要承担的角色。然后,它使用STS承担角色,将凭证缓存在内存中(用于进一步的请求)并将它们返回给调用者。如果内存中缓存的凭据设置为过期,则代理将重新承担凭据。