Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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 AmazonS3对象:是否可以将公共读取策略仅限于某些IP地址?_Amazon Web Services_Amazon S3_Amazon Cloudfront_Amazon Iam - Fatal编程技术网

Amazon web services AmazonS3对象:是否可以将公共读取策略仅限于某些IP地址?

Amazon web services AmazonS3对象:是否可以将公共读取策略仅限于某些IP地址?,amazon-web-services,amazon-s3,amazon-cloudfront,amazon-iam,Amazon Web Services,Amazon S3,Amazon Cloudfront,Amazon Iam,一个具有公共读取策略的桶。现在我想限制对某些对象的访问,以便只能从某些IP地址访问。这可能吗 我还计划添加CloudFront。我应该怎么做才能在每个对象上保持相同的设置 谢谢 您可以使用S3存储桶策略。但它将应用于bucket中的单个文件夹,而不是单个文件。您可以使用如下策略: { "Version": "2008-10-17", "Id": "testPolicy", "Statement": [ {

一个具有公共读取策略的桶。现在我想限制对某些对象的访问,以便只能从某些IP地址访问。这可能吗

我还计划添加CloudFront。我应该怎么做才能在每个对象上保持相同的设置


谢谢

您可以使用S3存储桶策略。但它将应用于bucket中的单个文件夹,而不是单个文件。您可以使用如下策略:

  {
        "Version": "2008-10-17",
        "Id": "testPolicy",
        "Statement": [

            {
                "Sid": "1",
                "Effect": "Allow",
                "Principal": {
                    "AWS": "*"
                },
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::bucketname/subfolder/subfolder2/*",
                "Condition": {
                    "IpAddress": {
                        "aws:SourceIp": [
                            "xxx.xxx.xxx.xxx/xx",
                            "xxx.xxx.xxx.xxx/xx"
                        ]
                    }
                }
            }
        ]
    }
使用您的bucket名称、文件夹名称和IP


注意:请先在非生产存储桶上试用。

您可以使用S3存储桶策略。但它将应用于bucket中的单个文件夹,而不是单个文件。您可以使用如下策略:

  {
        "Version": "2008-10-17",
        "Id": "testPolicy",
        "Statement": [

            {
                "Sid": "1",
                "Effect": "Allow",
                "Principal": {
                    "AWS": "*"
                },
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::bucketname/subfolder/subfolder2/*",
                "Condition": {
                    "IpAddress": {
                        "aws:SourceIp": [
                            "xxx.xxx.xxx.xxx/xx",
                            "xxx.xxx.xxx.xxx/xx"
                        ]
                    }
                }
            }
        ]
    }
使用您的bucket名称、文件夹名称和IP


注意:请先在非生产桶上试用。

好的,谢谢您的回复。然而,我确实需要处理每个文件,而不是文件夹。有没有办法直接更新对象的ACL以限制对某些IP地址的访问?@Dorian这基本上是一样的,但与其在
资源
定义中使用带有通配符值的语句,不如使用多个语句,每个都具体地引用您希望策略应用到的确切资源。@Dorian正如Mike所指出的,您也可以为单个对象定义它。我没说那是错误的。好的,谢谢你的回复。然而,我确实需要处理每个文件,而不是文件夹。有没有办法直接更新对象的ACL以限制对某些IP地址的访问?@Dorian这基本上是一样的,但与其在
资源
定义中使用带有通配符值的语句,不如使用多个语句,每个都具体地引用您希望策略应用到的确切资源。@Dorian正如Mike所指出的,您也可以为单个对象定义它。我没有说那件事是错误的。