我试图弄清楚是否可以使用 AWS S3 访问点来托管静态 S3 网站。
S3WebsiteBucket.WebsiteURL
下面描述的资源很好用,但我需要改用接入点。
每当我请求索引文件时失败消息(URL 类似于https://my-access-point-0000000000.s3-accesspoint.eu-north-1.amazonaws.com/index.html)如下:
InvalidRequest 不支持您提供的授权机制。请使用签名版本 4。
我的 CloudFormation 模板:
AWSTemplateFormatVersion: '2010-09-09'
Resources:
S3WebsiteBucket:
Type: AWS::S3::Bucket
Properties:
AccessControl: PublicRead
WebsiteConfiguration:
IndexDocument: index.html
ErrorDocument: error.html
VersioningConfiguration:
Status: Enabled
S3WebsiteBucketPolicy:
Type: AWS::S3::BucketPolicy
Properties:
PolicyDocument:
Id: AllowPublicRead
Version: 2012-10-17
Statement:
- Sid: PublicReadForGetBucketObjects
Effect: Allow
Principal: '*'
Action: 's3:GetObject'
Resource: !Join
- ''
- - 'arn:aws:s3:::'
- !Ref S3WebsiteBucket
- /*
Bucket: !Ref S3WebsiteBucket
S3AccessPoint:
Type: AWS::S3::AccessPoint
Properties:
Bucket: !Ref S3WebsiteBucket
Name: my-access-point
PublicAccessBlockConfiguration:
BlockPublicAcls: true
IgnorePublicAcls: true
BlockPublicPolicy: true
RestrictPublicBuckets: false
是否可以将 S3 接入点用于此类任务,或者它不适合公共访问(静态网站)?如果可能的话,有什么我错过的 - 也许 S3AccessPoint 需要它自己的 IAM 访问策略?
我使用 S3 Access Point 的主要动机是在不使用 Route 53 和自定义域的情况下隐藏原始存储桶名称。