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

问题描述 投票:-3回答:1

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

我的代码也自动部署,因此将其作为Env变量也没有用(部署脚本在存储库中 - 并且凭证也不应该存在)。

我试图调查IAM角色,但无法解决有助于我的用例的问题。

amazon-web-services docker amazon-s3 docker-compose amazon-iam
1个回答
2
投票

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

如果您正在使用ECS服务,那么您可以将此角色附加到您定义容器的任务(仍可以将其附加到底层EC2容器实例 - 但仅限于EC2启动类型,而不是Fargate - for承担该角色的容器,但最好是尽可能精细 - 具有各自角色的单个任务)。

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

© www.soinside.com 2019 - 2024. All rights reserved.