如何在代码中没有AWS凭据的情况下从容器访问我的S3存储桶?
我的代码也自动部署,因此将其作为Env变量也没有用(部署脚本在存储库中 - 并且凭证也不应该存在)。
我试图调查IAM角色,但无法解决有助于我的用例的问题。
如果您直接在EC2实例上运行容器(不使用ECS服务),那么您需要创建一个IAM role
并为其附加适当的策略(例如AmazonS3FullAccess
,如果您需要S3的所有权限,如果您只需要阅读内容S3,然后你可以添加AmazonS3ReadOnlyAccess
政策)。创建此角色后,您可以将其附加到运行容器的EC2实例。
如果您正在使用ECS服务,那么您可以将此角色附加到您定义容器的任务(仍可以将其附加到底层EC2容器实例 - 但仅限于EC2启动类型,而不是Fargate - for承担该角色的容器,但最好是尽可能精细 - 具有各自角色的单个任务)。
您永远不应该将AWS凭证添加到您的代码中或将它们存储在EC2实例/容器中,这就是您拥有角色的原因。