0

私の Web アプリは、Auth0 と AWS (委任トークン) を使用して、S3 のいくつかのリソースにアクセスしています。

testinfo -Directory1 - Subdirectory11 - Subdirectory11 -Directory2 - Subdirectory21 -Directory3 という名前のバケットに、次のディレクトリ構造があります。

S3 バケットには次のポリシーがあります。{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1423804993000", "Effect": "Allow", "Action": [ "s3: " ], "Resource": [ "arn:aws:s3:::testinfo/Directory1", "arn:aws:s3:::testinfo/Directory1/ " ] } ] }

そして、バケットの内容を表示する次のJavaScriptコードがあります

var getTokenPromise = auth.getToken({api: 'aws', role: "xyz", principal: "xyz"});
getTokenPromise.then(function (value) {
    console.log('delegation: ' + value);
    bucket = new AWS.S3({params: {Bucket: 'testinfo'}});
    bucket.config.credentials =new AWS.Credentials('x','y','z');
    bucket.listObjects({}, function (err, data) {
        if (err)
            alert(err);
        var files = [];
        for (var i in data.Contents) {
            //show files
        }
    });
}, function (reason) {
    console.log('failed: ' + reason);

});

ポリシーに従って、Directory1 のコンテンツのみが表示されます。残念ながら、アクセス拒否例外が発生しました。誰かがこの問題を解決するために手を貸してくれませんか?

乾杯

4

1 に答える 1

0

次のように、ディレクトリにワイルドカードを追加してみてください:

"arn:aws:s3:::testinfo/Directory1/*"

于 2015-03-02T12:32:09.313 に答える