【发布时间】:2017-09-13 04:27:45
【问题描述】:
存储桶可公开访问,但有一个 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。如果您的实例可以访问受保护的 S3 存储桶,这是 IAM 策略。
【问题讨论】:
-
大约有 10 种不同的 AWS SDK 可用,其中任何一种都可以在没有 CLI 的情况下访问 S3 存储桶。你能详细说明你想要做什么吗?
-
如果存储桶配置为公共,则可以使用 HTTP 请求访问 S3 对象;所以我要求你使用 curl 或 wget,你可以在任何 Linux docker 容器中将其设为默认值。
标签: amazon-web-services docker amazon-s3