簡體   English   中英

嘗試使用Node.js訪問Amazon AWS S3服務時拒絕訪問

[英]Receiving Access Denied when trying to access Amazon AWS S3 service with nodejs

var AWS = require('aws-sdk');
var S3FS = require('s3fs');

AWS.config.update({region: 'us-east-1'});
var options = {}; 
exports.storeMedia = function(req, res){
        var fsImpl = new S3FS('test-bucket', options);
        fsImpl.writeFile('message.txt', 'Hello Node', function (err) {
                  if (err) throw err;
                    console.log('It\'s saved!');
        }); 
}

我的代碼只是一個示例代碼,我正在嘗試從doc示例中進行測試。 我已經在Macbook上.aws下的憑證文件中保存了aws密鑰ID和密碼。 我已經構建了一個用戶,並為其分配了訪問策略,這樣我就可以通過AWS Console上的已分配用戶獲取和放置對象。 我還要看什么? 顯然,我缺少基本的東西,只是需要一些幫助。

我還研究了其他一些內容。 首先,我從https://www.npmjs.com/package/s3fs查看了模塊頁面,其中列出了s3fs所需的最低權限。 其次,我嘗試使用基本的aws-sdk。 我很驚訝地發現我可以做一個沒有任何問題的ListBucket。 然后,我嘗試將一個對象放入現有的存儲桶中,並且該對象沒有問題。 我能夠取得進展,但是我需要更多地了解我可能沒有獲得的特權,因此我清楚地知道缺少哪些特權。

我對存儲桶的政策如下:

{
    "Version": "2012-10-17",
    "Id": "Policy1437933054275",
    "Statement": [
        {
            "Sid": "Stmt1437932987273",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::meetsites-images/*",
                "arn:aws:s3:::meetsites-images"
            ]
        }
    ]
}

而用戶的政策是

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": "*"
        }
    ]
}

我也能夠找到一個有關該主題的好博客,很難找到更好的提及[鏈接]( http://blogs.aws.amazon.com/security/post/TxPOJBY6FE360K/IAM-policies-and-Bucket -政策和ACL-哦,我控制對S3-Resourc的訪問

暫無
暫無

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

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