首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CloudFront回源状态:'403‘

CloudFront回源状态:'403‘
EN

Stack Overflow用户
提问于 2020-08-20 10:44:25
回答 1查看 369关注 0票数 0

我已经设置了带有S3源的CloudFront来服务来自S3的图像。现在添加Lamnda@Edge进行图像转换。它基于status代码(200404)工作

但是回源的Cloudfront事件总是有status: '403'

以下是示例响应(来自event.Records[0].cf)

代码语言:javascript
复制
{
    config: {
        distributionDomainName: 'xxxx.cloudfront.net',
        distributionId: 'xxxxx',
        eventType: 'origin-response',
        requestId: 'YVAViQDNbJcmgRlZFEWjxS2xF5balXwR-Kkv8PN4jXRO4hEPksOaJg=='
    },
    request: {
        clientIp: '81.403.0.141',
        headers: {
            referer: [Array],
            'x-forwarded-for': [Array],
            'user-agent': [Array],
            via: [Array],
            pragma: [Array],
            'accept-encoding': [Array],
            host: [Array],
            'cache-control': [Array]
        },
        method: 'GET',
        origin: {
            s3: [Object]
        },
        querystring: '',
        uri: '/images/product/photo/photocell_white.webp'
    },
    response: {
        headers: {
            'x-amz-request-id': [Array],
            'x-amz-id-2': [Array],
            date: [Array],
            server: [Array],
            'content-type': [Array],
            'transfer-encoding': [Array]
        },
        status: '403',
        statusDescription: 'Forbidden'
    }
} 

我的S3存储桶是公开可写的(我知道这很危险,但只是为了让它正常工作)。

代码语言:javascript
复制
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicAccess",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::stage.domain.com/*"
        }
    ]
}

在CloudFront中

代码语言:javascript
复制
Origin Domain Name : stage.domain.com.s3.amazonaws.com
Origin Path : /assets
Origin ID : S3-stage.domain.com

这里出了什么问题?

Lambda函数:https://pastebin.com/raw/FNd59Tvn

EN

回答 1

Stack Overflow用户

发布于 2021-01-14 16:19:18

S3在设计上返回403。当访问用户没有权限访问s3:ListBucket时,s3返回403。

你可以找到更多的here

您需要将以下语句添加到您的保单中:

代码语言:javascript
复制
       {
            "Sid": "PublicListAccess",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::stage.domain.com"
        }

警告

确保您了解授予公众列出s3存储桶中所有对象的能力的后果。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63497579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档