【问题标题】:CloudFront and S3 Website Hosting ip restriction bucket policy doesn't workCloudFront 和 S3 网站托管 ip 限制存储桶策略不起作用
【发布时间】:2021-12-21 15:18:39
【问题描述】:

我有一个使用 S3 和 CloudFront 的静态网站设置。 CloudFront 用于附加公司 SSL 证书,不需要缓存。一开始,我们的存储桶是完全公开的,但最近,我们正在更改网站范围,它将在内部使用。所以我需要限制除我们的公共 IP 之外的所有访问。

我正在使用存储桶策略,例如 ;

{
    "Version": "2012-10-17",
    "Id": "SourceIP",
    "Statement": [
        {
            "Sid": "SourceIP",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::bucket-name",
                "arn:aws:s3:::bucket-name/*"
            ],
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": [
                        "ip1/32",
                        "ip2/32",
                        "ip3/32",
                        "ip4/32"
                    ]
                },
                "IpAddress": {
                    "aws:SourceIp": "0.0.0.0/0"
                }
            }
        }
    ]
}

我做了一些研究,在同一案例中使用 WAF 可以满足这种要求。但我不太明白为什么 WAFless 设置(启用静态网站托管的 CloudFront + S3 存储桶 + 存储桶策略)不起作用。 CloudFront 将 X-Forwarded-For 标头附加到请求以保留源 IP,但是当我将我的 IP 写入存储桶策略以允许时,我收到拒绝访问。我不明白它的原因。

任何帮助或解释将不胜感激。 最好的问候。

【问题讨论】:

  • 真正的问题是什么?“他的这种请求是在同样的情况下通过使用WAF实现的。但我不太明白为什么?”这是什么意思?这和WAF有什么关系?
  • 嗨@ErmiyaEskandary 是的,实际上,我在问为什么这个设置在没有WAF 的情况下不起作用。我启用了存储桶日志,在请求中看到了我的 IP,但仍然被拒绝访问。我知道 WAF 选项在我的口袋里。但我的第一个选择是 CloudFront + S3 Bucket + Bucket Policy(如果可能的话)

标签: amazon-web-services amazon-s3 amazon-cloudfront


【解决方案1】:

doc: Evaluation logic for conditions with multiple keys or values

如果您的策略有多个条件运算符或多个键 附加到单个条件运算符,条件被评估 使用逻辑 AND。

在您的情况下,"NotIpAddress""IpAddress" 被评估为 AND。这就是问题所在。拆分这些或删除"IpAddress" 部分都可以。

【讨论】:

  • 嗨,不幸的是,它不起作用,在我看来,它应该已经像 AND 一样运行了。拒绝所有 IP 并允许某些 IP。此外,对于 ECR 限制,我使用了几乎相同的策略,其中一个 IpAdress 和一个 NotIpAdress 在相同的条件下运行,并且没有问题。非常感谢您抽出宝贵时间,但我认为这里的问题有所不同。
猜你喜欢
  • 2018-04-24
  • 2018-05-05
  • 2021-02-28
  • 2019-04-13
  • 2017-09-14
  • 1970-01-01
  • 1970-01-01
  • 2012-04-05
  • 2019-05-02
相关资源
最近更新 更多