问题描述
限制:
- 我不想将aws配置文件包含在Docker容器中
- 我希望它在产品环境和开发环境中都能工作。
我尝试过的事情:
- 我曾经使用过IAM角色,但这仅适用于产品而不适用于开发环境。
- 我使用了aws配置文件,但它可在主机上使用,而不是在Docker容器中。而且我不想将其复制到容器中。
是否有关于最佳做法的建议?
更新: 为了澄清这个问题: 我的问题是找到使用docker在开发环境和生产环境中提供AWS凭证的通用方法。通过“我使用IAM角色,但这仅适用于产品”,我的意思是我在cloudformation任务定义上使用taskRoleArn,但这仅影响产品而不影响开发环境。因此,我需要在开发环境中以另一种方式(例如aws config)设置凭据。
解决方法
与AWS服务进行交互的最佳实践是始终使用IAM角色,尤其是在使用基于生产的环境的情况下。
如果要模拟在本地情况下(例如开发中)的工作方式,请结合使用environment variables和IAM用户凭据。
使用官方的SDK / CLI将查找正式命名的环境变量,因此无需修改您的代码即可在每种环境中以不同的方式工作。
如上所述,我强烈建议在您的生产环境中使用IAM角色。
,IAM角色是授予容器所需权限的最简单方法。它可以在任何环境下工作。 当然,这是最佳做法。
,对于有兴趣的人,我可以按照以下有关测试IAM角色的说明来解决我的问题: https://aws.amazon.com/blogs/compute/a-guide-to-locally-testing-containers-with-amazon-ecs-local-endpoints-and-docker-compose/ 请参阅与“ ECS本地容器端点”相关的部分