我正在尝试从aws-sdk-js
上传s3上的对象,但无法为我的案例找出政策。我想只允许一个用户拥有上传访问权限和公共读取权限。
以下是我的s3存储桶策略
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::some-bucket/*"
},
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::1111111111111:user/some-bucket-user"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::some-bucket/*"
}
]
}
我的IAM政策是:
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddPerm",
"Effect":"Allow",
"Action":"s3:*",
"Resource":["arn:aws:s3:::some-bucket/*"]
}
]
}
有人可以指出我在这里做错了吗?
答案 0 :(得分:1)
要做到这一点,您根本不必处理存储桶策略。存储桶策略用于允许服务访问您的S3数据库 - 而不是用户。
要允许用户访问您的S3数据库,请在权限/访问控制列表(这是"存储桶策略"旁边)中添加所需权限。
如果绝对必须通过存储桶策略完成此链接,则会涵盖所有内容:http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-bucket-user-policy-specifying-principal-intro.html
答案 1 :(得分:1)
我的不好,我没有正确地初始化AWS.S3
并且它正在使用ec2实例的用户/角色而不是我分配的用户/角色。