Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 将bucket创建限制到一个区域_Amazon Web Services_Amazon S3 - Fatal编程技术网

Amazon web services 将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

我想限制用户在特定区域创建AmazonS3存储桶。我写了一个如下的策略并附加到用户。但它拒绝用户创建任何bucket

请帮忙。编写其他语句是为了查看是否创建了bucket。不幸的是,我们不能限制用户列出存储桶

{
"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或空字符串。看见