无法从 VPC 内访问 S3 存储桶上托管的静态网站

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

我希望使用 S3 存储桶在 AWS 上托管一个静态网站。

我遵循了这些步骤。

该站点是一个带有子目录的普通目录:

app
│   index.html   
└───scripts
│   │   things.js
│   │   stuff.js
└───images
    │   img1.png
    │   img2.jpg

我想让该网站仅可供我们的 VPC 内的人员访问。我将以下类型的策略附加到保存站点文件的存储桶(添加我的特定存储桶名称和 VPC id):

{ "Version": "2012-10-17", "Id": "Policy1415115909152", "Statement": [ { "Sid": "Access-to-specific-VPCE-only", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::my_bucket*", "Condition": { "StringEquals": { "aws:sourceVpce": "vpce-blahblahblah" } } } ] }
我还设置了一个 VPC 终端节点,并将终端节点 ID 设置为存储桶策略内 

aws:sourceVpce

 的值。

我按照这些

步骤设置了 VPC 终端节点。 但是我仍然无法在浏览器上访问此站点(我假设由于我使用 AWS 知道的同一浏览器访问 AWS 控制台,所以我位于 VPC 内)。

<Error> <Code>AccessDenied</Code> <Message>Access Denied</Message> <RequestId>blahblahblah</RequestId> <HostId>blahblahblah</HostId> </Error>


amazon-web-services amazon-s3 amazon-vpc azure-static-web-app
1个回答
4
投票
需要公共访问

。 VPC 中不存在私有 S3 网站或只能通过 VPC 端点访问之类的东西。 要使您的 S3 网站正常运行,您必须将存储桶设置为公共,或使用 CloudFront,它也只能通过互联网访问。但至少当您使用 CloudFront 前置时,您的

存储桶可以是私有的

(尽管不是网站本身)。

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