我的Web应用程序使用Auth0和AWS(委托令牌)来访问S3中的某些资源 .
我在名为testinfo -Directory1的存储桶中有以下目录结构 - Subdirectory11 - Subdirectory11 -Directory2 - Subdirectory21 -Directory3
我有以下S3存储桶策略 . {"Version":"2012-10-17","Statement":[{_ 916637:"Stmt1423804993000","Effect":"Allow","Action":[“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的内容 . 不幸的是我得到了拒绝访问权限 . 愿有人伸出援手解决这个问题吗?
干杯
1 回答
您可以尝试在目录中添加通配符,如下所示:
"arn:aws:s3:::testinfo/Directory1/*"