Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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 限制对cloudfront发行版后面的s3静态网站的访问_Amazon Web Services_Amazon S3_Amazon Cloudfront - Fatal编程技术网

Amazon web services 限制对cloudfront发行版后面的s3静态网站的访问

Amazon web services 限制对cloudfront发行版后面的s3静态网站的访问,amazon-web-services,amazon-s3,amazon-cloudfront,Amazon Web Services,Amazon S3,Amazon Cloudfront,我想暂时限制用户访问我的静态网站,该网站位于cloudfront发行版后面的s3中 这可能吗?如果可能,我可以用什么方法来实现 我已经能够通过使用bucket策略中的一个条件来限制对s3 bucket的特定访问,该条件如下所示: { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Princip

我想暂时限制用户访问我的静态网站,该网站位于cloudfront发行版后面的s3中

这可能吗?如果可能,我可以用什么方法来实现

我已经能够通过使用bucket策略中的一个条件来限制对s3 bucket的特定访问,该条件如下所示:

{
  "Version": "2012-10-17",
  "Statement": [
      {
          "Sid": "VisualEditor0",
          "Effect": "Allow",
          "Principal": {
              "AWS": "*"
          },
          "Action": "s3:GetObject",
          "Resource": "arn:aws:s3:::my-bucket/*",
          "Condition": {
              "IpAddress": {
                  "aws:SourceIp": "12.34.56.73/32"
              }
          }
      }
  ]
}
它可以工作并将我的s3 bucket限制在我的ip上,但是这意味着cloudfront url将被
403禁止:访问被拒绝

阅读AWS文档时,建议限制对s3资源的特定访问,请使用
原始访问标识
。但是,它们规定了以下内容:

如果您没有看到Restrict Bucket Access选项,那么您的AmazonS3源站可能会被配置为网站端点。在该配置中,S3存储桶必须使用CloudFront设置为自定义源,并且不能使用源访问标识


这对我来说意味着我不能在这种情况下使用它。理想情况下,我希望强制我的分发或bucket策略使用特定的安全组,并以这种方式对其进行控制,以便轻松添加/删除已批准的ip

您可以在CloudFront上允许CloudFront IP地址,因为静态网站端点不支持源访问标识。 以下是CloudFront IP地址列表:

此链接还解释了如何通过推荐标题限制访问

您可以告诉CloudFront为每个请求添加一个头,然后修改S3 bucket策略以需要该头

例如


你是想限制他们直接访问S3还是同时访问S3和CloudFront?@kichik
{
  "Version":"2012-10-17",
  "Id":"http referer policy example",
  "Statement":[
    {
      "Sid":"Allow get requests originating from www.example.com and example.com.",
      "Effect":"Allow",
      "Principal":"*",
      "Action":"s3:GetObject",
      "Resource":"arn:aws:s3:::examplebucket/*",
      "Condition":{
        "StringLike":{"aws:Referer":"mysecretvalue"}
      }
    }
  ]
}