存储桶可公开访问,但有一个 ACL 仅供授权用户访问。我可以从本地机器访问 S3 存储桶,因为我已经为它配置了 AWS CLI。
有没有什么方法可以从我的机器上运行的 docker 实例访问存储桶,而无需在 docker 镜像上安装和配置 AWS CLI?
编辑:
对于那些不了解 S3 的工作原理并且反对该问题的人,可以公开访问存储桶 - 如果命中顶级存储桶 URI,则会列出其所有内容;但是由于 ACL 限制,这些项目都无法访问。我知道这可能是一个糟糕的设计,但这不是这个问题的重点。
我可以从我的机器访问所有项目,因为我已将 AWS CLI 配置为允许访问应用程序 AWS 开发工具包。但是,我不能从 Docker 容器中访问它们。
如果不在 docker 镜像中设置 AWS CLI,这似乎是不可能的,因为 SDK 要么查找已配置的 AWS CLI,要么尝试访问内部 IP 169.254.169.254 进行元数据访问,这在 EC2 实例的情况下成功。 不,EC2 实例不附带根据以下答案设置的 CLI。 如果您的实例可以访问 protected S3 存储桶,这是 IAM 策略。
最佳答案
所有 aws ec2 实例均使用 aws cli 预构建。如果您的 docker 容器是使用 ec2 实例构建的,则根本不需要安装 cli。
关于amazon-web-services - 无需 AWS CLI 从本地 docker 容器访问 S3 存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43453423/