从服务器上的容器访问AWS S3存储桶

时间:2019-01-17 13:42:03

标签: amazon-web-services docker amazon-s3 docker-compose amazon-iam

如何在没有代码中包含AWS凭证的情况下从容器访问S3存储桶?

我的代码也会自动部署,因此将其作为Env变量也是不好的(部署脚本位于存储库中-凭据也不应位于其中)。

我试图研究IAM的角色,但无法将注意力放在有助于我的用例的事情上。

1 个答案:

答案 0 :(得分:2)

如果直接在EC2实例上运行容器(不使用ECS服务),则需要创建IAM role并为其附加适当的策略(例如AmazonS3FullAccess)(如果需要所有权限)对于S3,如果只需要阅读S3的内容,则可以添加AmazonS3ReadOnlyAccess策略)。创建此角色后,可以将其附加到运行容器的EC2实例上。

如果您正在使用ECS服务,则可以将此角色附加到定义容器的任务中(仍然可以将其附加到基础EC2容器实例上-但仅在EC2启动类型的情况下,而不是Fargate-让容器担当那个角色,但最好是尽可能地细化-具有自己角色的单个任务。

您绝不应将AWS凭证添加到代码中或将其存储在EC2实例/容器中,这就是您拥有角色的原因。