【问题标题】:AccessDenied for requests to redirecting S3 bucket deployed using CDKAccessDenied 请求重定向使用 CDK 部署的 S3 存储桶
【发布时间】:2020-04-23 04:54:41
【问题描述】:

我正在迁移托管在 Amazon S3 上的静态网站以使用 CDK 进行部署,遵循 example。我想从www.mydomain.com 重定向到mydomain.com,所以我有两个S3 存储桶,而www 一个重定向到顶点域。它们都以 CloudFront 为前端。在使用 CDK 之前,我已经完成了所有这些工作,但是在迁移之后,我在访问 www URL 时遇到了 AccessDenied 错误。部署存储桶的代码如下所示:

const siteBucket = new s3.Bucket(this, 'SiteBucket', {
    bucketName: siteDomain,
    websiteIndexDocument: 'index.html',
    websiteErrorDocument: 'error.html',
    publicReadAccess: true,
    removalPolicy: cdk.RemovalPolicy.DESTROY,
});
new cdk.CfnOutput(this, 'Bucket', {value: siteBucket.bucketName});
const wwwRedirectBucket = new s3.Bucket(this, 'WwwBucket', {
    bucketName: wwwDomain,
    websiteRedirect: {hostName: siteDomain, protocol: RedirectProtocol.HTTPS},
    publicReadAccess: true,
    removalPolicy: cdk.RemovalPolicy.DESTROY,
});
const certificateArn = "arn:aws:acm:etcetc"

const distribution = new cloudfront.CloudFrontWebDistribution(this, 'SiteDistribution', {
    aliasConfiguration: {
        acmCertRef: certificateArn,
        names: [siteDomain],
        sslMethod: cloudfront.SSLMethod.SNI,
        securityPolicy: cloudfront.SecurityPolicyProtocol.TLS_V1_1_2016,
    },
    originConfigs: [
        {
            s3OriginSource: {
                s3BucketSource: siteBucket
            },
            behaviors: [{isDefaultBehavior: true}],
        }
    ]
});

const wwwDistribution = new cloudfront.CloudFrontWebDistribution(this, 'WwwDistribution', {
    aliasConfiguration: {
        acmCertRef: certificateArn,
        names: [wwwDomain],
        sslMethod: cloudfront.SSLMethod.SNI,
        securityPolicy: cloudfront.SecurityPolicyProtocol.TLS_V1_1_2016,
    },
    originConfigs: [
        {
            s3OriginSource: {
                s3BucketSource: wwwRedirectBucket
            },
            behaviors: [{isDefaultBehavior: true}],
        }
    ]
});

我查看了控制台中的存储桶,据我所知,一切看起来都不错。我错过了什么明显的东西吗?

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-cdk


    【解决方案1】:

    我使用this answer 解决了这个问题。而不是:

    s3OriginSource: {
        s3BucketSource: siteBucket
    },
    

    我需要以下物品:

    customOriginSource: {
        domainName: bucket.bucketWebsiteDomainName,
        originProtocolPolicy: OriginProtocolPolicy.HTTP_ONLY,
    },
    

    使用 REST 样式的界面时,重定向和其他类似网站的功能将不起作用,看起来就像 CDK 默认配置的那样。

    【讨论】:

      猜你喜欢
      • 2023-01-11
      • 1970-01-01
      • 2020-04-10
      • 1970-01-01
      • 1970-01-01
      • 2021-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多