0

我的 Web 应用程序使用 Auth0 和 AWS(委托令牌)来访问 S3 中的一些资源。

我在名为 testinfo -Directory1 - Subdirectory11 - Subdirectory11 -Directory2 - Subdirectory21 -Directory3 的存储桶中有以下目录结构

我对 S3 存储桶有以下政策。{“版本”:“2012-10-17”,“声明”:[{“Sid”:“Stmt1423804993000”,“效果”:“允许”,“操作”:[“s3:”],“资源”: [ “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 回答