簡體   English   中英

Rails本地主機連接到Amazon S3存儲桶

[英]Rails localhost connecting to amazon s3 bucket

您如何從本地計算機授予對Amazon S3存儲桶的訪問權限? 我不斷收到此錯誤:

Expected(200) <=> Actual(403 Forbidden) excon.error.response :body => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AllAccessDisabled</Code><Message>All access to this object has been disabled</Message>

在IAM控制台中,我給了自己AmazonS3FullAccess和AdministratorAccess策略。

在S3控制台的“權限”下,我具有以下CORS配置:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>http://localhost:3000</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
    <CORSRule>
        <AllowedOrigin>https://localhost:3000</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

但是,在S3控制台中,當我單擊“添加存儲桶策略”時,策略編輯器為空白。 在IAM控制台中創建的兩個策略不應該顯示在這里嗎? 還是他們不同?

我應該在策略編輯器中添加什么策略? 我嘗試創建一個,但是出現很多錯誤。

問題很可能出在您的存儲桶策略中。 只要您的本地主機作為KEY和SECRET都沒有關系。

嘗試將此策略添加到您要連接的IAM用戶:

{
    "Version": "2015-12-26",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::BUCKET_NAME"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::BUCKET_NAME/*"
            ]
        }
    ]
}

這樣做是允許用戶查找該存儲桶名稱(頂部),然后與所有文件夾arn:aws:s3:::BUCKET_NAME/*進行交互。

如果要限制該用戶使用子文件夾,只需在上方修改該部分。

讓我知道是否可行。

暫無
暫無

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

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