dee*_*ABC 1 amazon-s3 amazon-web-services
我在Amazon S3中有一个名为“ data1”的存储桶。
当我使用Cyberduck连接到S3时,我希望用户只能访问“ data1”存储桶,而不能访问其他存储桶。
我还设置了一个名为data1的新IAM用户,并将“ AmazonS3FullAccess”策略附加到该用户的权限上-但这提供了对所有存储桶的访问权限-这正是您所期望的。
我想我需要为此设置另一个策略-但是我会执行什么策略?
首先找到用户原则。这些可以通过查看此命令输出的Arn字段来找到
aws iam list-users
Run Code Online (Sandbox Code Playgroud)
例如
{
"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"
}
]
}
Run Code Online (Sandbox Code Playgroud)
然后设置一个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策略
{
"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:::*"]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我还没有测试过,但这是总体思路。抱歉,示例中的原理名称和存储桶名称均未使用“ data1”,但这太令人困惑了.. :)
| 归档时间: |
|
| 查看次数: |
602 次 |
| 最近记录: |