1

我试图弄清楚是否可以使用 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 和自定义域的情况下隐藏原始存储桶名称。

4

1 回答 1

1

遗憾的是您不能这样做,因为 S3 网站模式仅适用于存储桶(不是接入点)。来自文档

Amazon S3 网站终端节点不支持 HTTPS 或访问点

于 2021-10-28T05:49:00.363 回答