在EC2实例上运行代码时,用于访问AWS资源的SDK会自动与169.254.169.254上的本地链接Web服务器通信,并获取与其他AWS服务通信所需的AWS凭证(access_key,secret).
还有其他选项,比如在ENV变量中设置凭据或将它们作为命令行参数传递…
这里的最佳做法是什么?我真的更喜欢让容器访问169.254.169.254(通过路由请求),或者甚至更好地运行模拟169.254.169.254的真实服务器行为的代理容器.
那里有解决方案吗?
最佳答案
EC2元数据服务通常可以从docker中获得(除非您使用更自定义的网络设置 – 请参阅类似问题的this answer).
原文链接:https://www.f2er.com/docker/436565.html如果您的docker网络设置阻止访问它,您可以在Dockerfile中使用ENV指令或在运行期间直接传递它们,但请记住,来自IAM角色的凭据会由AWS自动轮换.