簡體   English   中英

AWS S3訪問被拒絕錯誤

[英]AWS S3 Access Denied Error

嘗試打開S3存儲桶中托管的文件時,出現訪問拒絕錯誤。

當我的Django應用嘗試獲取相同的文件時,我的控制台上出現403 Forbidden Error。

我已經公開了所有文件,但還是沒有運氣。

當我打開一個文件鏈接時,我得到了這個。

<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/****"
                ]
            }
        }
    ]
}

我的settings.py中的AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY是我為在AWS IAM管理中創建的用戶所獲得的。

它確實沒有很好地記錄,但是您需要兩個訪問語句。

除了允許您實際要做的事情的語句(GetObject為“ arn:aws:s3 ::: **** storage / *”)之外,還需要一個允許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,則可以跳過“主體”部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM