我在Amazon S3中有一个名为“data1'”的存储桶。
当我使用Cyberduck连接到我的S3时,我希望用户只能访问数据1'斗,没有其他人。
我还设置了一个名为data1的新IAM用户,并附加了“AmazonS3FullAccess”#39;对该用户的权限的策略 - 但是可以访问所有存储桶 - 这正是您所期望的。
我想我需要为此制定另一项政策 - 无论我采取什么政策?
答案 0 :(得分:3)
首先找到用户原则。通过查看此命令输出的Arn字段
可以找到这些{
"Users": [
{
"UserName": "eric",
"Path": "/",
"CreateDate": "2016-07-12T09:08:21Z",
"UserId": "AIDAJXPI4SWK7X7PY4RX2",
"Arn": "arn:aws:iam::930517348925:user/eric"
},
{
"UserName": "bambi",
"Path": "/",
"CreateDate": "2015-07-15T11:07:16Z",
"UserId": "AIDAJ2LEXFRXJI5AKUU7W",
"Arn": "arn:aws:iam::930517348725:user/bambi"
}
]
}
例如
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal": "arn:aws:iam::930517348725:user/bambi",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::examplebucket/*"]
},
{
"Sid":"block",
"Effect":"Deny",
"Principal": "arn:aws:iam::930517348725:user/bambi",
"Action":["s3:*"],
"Resource":["arn:aws:s3:::*"]
}
]
}
然后设置S3存储桶策略。这些适用于铲斗并按桶设置。正常的IAM策略是根据IAM实体设置的,并且附加到IAM实体,例如用户。您已经拥有IAM政策。对于此要求,需要S3策略。
只是强调 - S3策略适用于存储桶并且“附加”到S3,IAM策略适用于IAM并与IAM对象关联。当IAM实体尝试使用S3存储桶时,可以应用S3策略和IAM策略。见http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html
一旦你知道原则的ARN,那么就像这样添加一个S3策略
{{1}}
我没有测试过这个,但这是一般的想法。对不起,我没有在示例中使用“data1”作为原理和存储桶名称,但它太混乱了.. :)
答案 1 :(得分:0)
对于只写访问权限,您可以附加如下政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::BUCKET_NAME/*"
]
}
]
}
但它看起来像你想要做的不仅仅是写作?