Sto*_*row 2 amazon-s3 amazon-web-services aws-cli
S3 存储桶策略与其指定管理员的用户策略之间是什么(或应该是什么)关系?
例如,假设我新创建了一个存储桶:
$ aws --profile admin --endpoint-url http://localhost:4572 s3 mb s3://foo
make_bucket: foo
Run Code Online (Sandbox Code Playgroud)
我希望用户bucket_admin能够管理存储桶(不一定是唯一的)。为此,我应该按照以下方式创建/应用存储桶策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:*"],
"Principal": { "AWS": "arn:aws:iam::000000000000:user/bucket_admin" },
"Resource": "arn:aws:s3:::foo/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
...或按照以下方式创建/应用用户策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect":"Allow",
"Action":["s3:*"],
"Resource":["arn:aws:s3:::foo/*"]
}
]
}
Run Code Online (Sandbox Code Playgroud)
?
您的存储桶策略仅适用于一个原则,即 bucket_admin用户。如果您希望有更多身份能够管理存储桶,则它不能由角色、其他 IAM 用户或组使用。
IAM 策略没有定义原则。这意味着您必须将其附加到身份,例如 IAM 角色、用户或组。这使您可以更加灵活地向存储桶分配权限。它可以只是bucket_admin,或者您可以创建一组存储桶管理员,或者具有可由 EC2 实例承担的角色。
此外,通过 IAM 策略,可以更轻松地检查谁/什么在使用它。您只需转到 IAM 控制台,然后Policy Usage您将获得使用该策略的所有身份的列表。使用存储桶策略,您必须手动检查所有存储桶并检查其策略以检查谁可以管理存储桶。
资源与 IAM 策略的良好总体比较如下:
也很有用,因为 IAM 策略可以附加到角色:
| 归档时间: |
|
| 查看次数: |
157 次 |
| 最近记录: |