Amazon web services 将bucket创建限制到一个区域
我想限制用户在特定区域创建AmazonS3存储桶。我写了一个如下的策略并附加到用户。但它拒绝用户创建任何bucket 请帮忙。编写其他语句是为了查看是否创建了bucket。不幸的是,我们不能限制用户列出存储桶Amazon web services 将bucket创建限制到一个区域,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我想限制用户在特定区域创建AmazonS3存储桶。我写了一个如下的策略并附加到用户。但它拒绝用户创建任何bucket 请帮忙。编写其他语句是为了查看是否创建了bucket。不幸的是,我们不能限制用户列出存储桶 { "Version": "2012-10-17", "Statement": [ { "Sid": "RegionSpecificS3BucketCreation", "Effect": "Allow", "Action": "s3
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "RegionSpecificS3BucketCreation",
"Effect": "Allow",
"Action": "s3:CreateBucket",
"Resource": "arn:aws:s3:::*",
"Condition": {
"StringLike": {
"s3:LocationConstraint": "us-east-1"
}
}
},
{
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::*"
},
{
"Sid": "VisualEditor2",
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets",
"s3:HeadBucket"
],
"Resource": "*"
}
]
}
us-east-1是一个特例。这是原始的S3区域,对于向后兼容,该区域中的bucket实际上没有声明位置约束。它们仍然被限制在us-east-1中。数据仍保留在该区域中,但您可以通过不在API级别指定位置约束在us-east-1中创建存储桶
我怀疑该特定区域的正确条件测试如下:
"Condition": {
"StringLikeIfExists": {
"s3:LocationConstraint": ""
}
}
也就是说,如果字符串存在,那么它必须是空字符串
对于所有其他地区,您所做的应该可以正常工作。S3在美国标准中不遵循通常的地区名称约定。我认为位置约束是null或空字符串。看见