aws s3 存储桶策略 - 允许 IP 地址范围

问题描述 投票:0回答:3

我试图通过 aws s3 中的策略允许访问以 111.222 开头的多个 ipv4 ip 地址,我已经尝试了以下所有但无法使其工作 -


{
    "Version": "2012-10-17",
    "Id": "AllowAccess",
    "Statement": [
        {
            "Sid": "AddAccess",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::mybucket/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "111.222.0.0",
                        "111.222.*.*",
            "111.222.."
                    ]
                }
            }
        }
}

可以这样做吗?我希望 111.222.1.2 和 111.222.99.6 等 ip 地址可以访问。

存储桶正在托管一个不允许公开访问的静态网站。

如果我输入完整的 IP 地址,它就可以工作,例如- 111.222.1.2 但有数百个 ip 地址,所以想使用通配符。

amazon-web-services amazon-s3 policy bucket
3个回答
0
投票

您可以使用 CIDR 作为 ip 地址。

{
    "Version": "2012-10-17",
    "Id": "AllowAccess",
    "Statement": [
        {
            "Sid": "AddAccess",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::mybucket/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "111.222.0.0/16"
                    ]
                }
            }
        }
}

0
投票

来自这个文档

IP 地址条件运算符允许您构造条件元素,这些元素基于将密钥与 IPv4 或 IPv6 地址或 IP 地址范围进行比较来限制访问。您将这些与 aws:SourceIp 键一起使用。该值必须采用标准 CIDR 格式(例如,203.0.113.0/24 或 2001:DB8:1234:5678::/64)。如果您指定没有关联路由前缀的 IP 地址,IAM 将使用默认前缀值 /32。

在这些条件中不使用通配符,而是使用 Cidr 表示法。从你的意思来看,你想要的通配符似乎是

111.222.*.*
其中
*
可以是任何数字 0-255。这是 CIDR
111.222.0.0/16
.


0
投票

两个示例都完美运行,感谢您的帮助!

© www.soinside.com 2019 - 2024. All rights reserved.