通过 VPC 到 AWS S3 网站的 HTTP 隧道以重定向错误结束

问题描述 投票:0回答:2

我部署了一个只能通过 VPC 访问的 S3 网站。

我希望能够通过该 VPC 中的 EC2 实例传输 HTTP 流量,以便通过本地计算机上的浏览器访问网站。

  • 我已确认对存储桶的公共访问已关闭
  • 我在 VPC 中有一个 S3 网关端点,并确认它在我的子网中可路由
  • 我已确认我可以通过在 VPC 中的实例的 S3 网站端点上使用curl 从存储桶中检索对象
    • curl {bucketname}.s3-website-{region}.amazonaws.com
      -> 检索index.html
  • 我通过将目标实例端口 80 转发到本地计算机上的端口 3000 来启动 ssh 隧道
    • ssh -v -N -L 3000:{bucketname}.s3-website-{region}.amazonaws.com:80 -i {keypair}.pem ec2-user@{ec2-instance-in-vpc}
  • 我转到本地计算机上的
    localhost:3000
    来访问转发到该端口的 s3 站点,但每次我都会被重定向到 AWS S3 主页 https://aws.amazon.com/s3/
    • 我在隧道上收到以下日志消息,确认它接受了转发请求:
    • debug1: Connection to port 3000 forwarding to {bucketname}.s3-website-{region}.amazonaws.com port 80 requested
  • 我在本地计算机上运行
    curl localhost:3000
    ,并得到以下重定向响应
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<h1>301 Moved Permanently</h1>
<ul>
<li>Code: WebsiteRedirect</li>
<li>Message: Request does not contain a bucket name.</li>
<li>RequestId: SDNB2B78GWJRQKY5</li>
<li>HostId: 6fxE5CUCdq+7fjZiOgIKzgKNfcsi84g+XDWArAcjzrIDly+VPsF69bT3EWOQgXlxIgroS/Brq5w=</li>
</ul>
<hr/>
</body>
</html>

以前有人遇到过这个错误吗? 有没有更好的方法来测试私有 S3 网站的连接性?

amazon-web-services amazon-s3 web-hosting ssh-tunnel
2个回答
0
投票

我部署了一个只能通过 VPC 访问的 S3 网站。

没有这样的事情。所以这就是为什么它不起作用。 S3 网站只能从互联网访问,不能从任何 S3 网关或接口端点访问。

如果您想从 VPC 访问您的 s3 网站,并且您是从私有子网访问您的 s3 网站,则该网站必须具有互联网网关和 NAT。


© www.soinside.com 2019 - 2024. All rights reserved.