AWS S3拒绝访问错误(AWS S3 Access Denied Error)

2019-10-23 15:10发布

我收到拒绝访问的错误,当我尝试打开我已在S3存储托管的文件。

当我的Django应用程序试图获取同一个文件,我得到我的控制台上403 Forbidden错误。

我已做了所有的文件公开,但仍然没有运气。

当我打开一个链接到一个文件,我得到这个。

<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>D4FCD94BD9DEE9F8</RequestId>
<HostId>
J9RtjMA4wk8kL4f+Ye/6XAQaXrfi9lz5HZ1tWRut8E5Qf/b8RAQbAF/fp3j2bep8Jfd+dtim/fs=
</HostId>
</Error>

我CORS配置是这样的

<CORSConfiguration>
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>Authorization</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

我应该怎么做,这样我的静态文件得到适当的服务?

这是我的斗政策

{
    "Statement": [
        {
            "Sid": "PublicReadForGetBucketObjects",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::****storage/*"
            ]
        },
        {
            "Action": "s3:*",
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::****storage",
                "arn:aws:s3:::****storage/*"
            ],
            "Principal": {
                "AWS": [
                    "arn:aws:iam::0084507*****:user/****"
                ]
            }
        }
    ]
}

该AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY在我的settings.py是我得到了我在AWS IAM管理创建的用户的人。

Answer 1:

这实在是没有记录的,但您需要两个访问语句。

除了允许的事情你真正想要做了声明(GetObject的以“ARN:AWS:S3 ::: ****存储/ *”),你还需要一个说法,让ListBucket铲斗本身,“ARN: AWS:S3 ::: ****存储”。 在内部,AWS客户端将尝试列出桶,以确定它做它的动作之前存在。

该文档是坏的,所以它似乎是一个共同挥舞只需添加更多的权限,直至有长时间再次作品。

随着第二条语句,它应该是这样的:

{
    "Statement": [
        {
            "Sid": "PublicReadForGetBucketObjects",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::storage/*"
            ]
        },
        {
            "Sid": "somethingElse",
            "Action": "s3:ListBucket",
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::storage",
            ],
            "Principal": {
                "AWS": [
                    "arn:aws:iam::0084507*****:user/****"
                ]
            }
        }
    ]
}

注:如果您使用IAM,您可以跳过“校长”的一部分。



文章来源: AWS S3 Access Denied Error