我试图让单个S3存储桶访问不同用户而不列出所有存储桶,因此我没有使用列表所有我的存储桶策略。存储桶包含文件夹内的不同文件夹,当我尝试通过其显示任何内容列出文件夹中的内容时
我正在使用的政策
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListBucket",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::abcd”
},
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::abcd”
},
{
"Sid": "AddDeleteFiles",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::abcd”
},
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::abcd/*”
}
]
}
输出s3cmd ls [s3:// abcd / aa] -acess否认
答案 0 :(得分:0)
您是否使用正确的aws_access_key_id和aws_secret_access_key配置了s3cmd?
<!DOCTYPE html>
<html ng-app="testApp">
<head>
<script data-require="angular.js@1.4.1" data-semver="1.4.1" src="https://code.angularjs.org/1.4.1/angular.js"></script>
<script src="script.js"></script>
</head>
<body ng-controller="testCtlr">
<pre>{{contacts | json}}</pre>
<div ng-repeat="contact in contacts">
<div ng-repeat="email in contact.emails">
<input type="email" name="email" ng-model="email.email">
<input type="text" name="text" ng-model="email.text">
</div>
</div>
</body>
</html>
var app = angular.module('testApp', []);
app.controller('testCtlr', ["$scope", function ($scope) {
$scope.contacts = [
{
id:'',
name:'',
emails:[
{
email: 'e1',
text: 'fghfgh'
},
{
email: 'e2',
text: 'hjkhjk'
}
],
}
];
}]);
基本上使用正确的参数创建〜/ .s3cfg命令。
同样在Principal上,您需要指定您的帐户ID。例如:
s3cmd --configure
您必须确定您在存储桶策略或IAM策略中的内容,因为它们不可互换。你可以同时拥有这两者,但你必须确保每一个都适用于政策类型
希望它有所帮助。