s3 策略允许在同一语句中使用多个 IP
Posted
技术标签:
【中文标题】s3 策略允许在同一语句中使用多个 IP【英文标题】:s3 policy allow multiple IPs at the same statement 【发布时间】:2016-08-05 17:21:01 【问题描述】:我正在尝试允许从 3 个指定的 IP 地址连接到存储桶。当我以这种方式添加它们时:
"Version": "2008-10-17",
"Id": "S3PolicyId1",
"Statement": [
"Sid": "IPDeny",
"Effect": "Deny",
"Principal":
"AWS": "*"
,
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucket/*",
"Condition":
"NotIpAddress":
"aws:SourceIp": "ip1",
"aws:SourceIp": "ip2",
"aws:SourceIp": "ip3"
]
保存后,三行中的一行将被保留,因此我只能设置一个 IP。知道如何在不长时间添加新语句和解决方法的情况下做到这一点吗?
【问题讨论】:
【参考方案1】:
"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/32",
"xxx.xxx.xxx.xxx/32"
]
]
【讨论】:
【参考方案2】:您必须以子网的形式提供 IP,例如 错误:1.2.3.4 右:1.2.3.4/32
【讨论】:
【参考方案3】:不必为特定 IP 地址应用路由前缀。根据official AWS Documentation,
如果您指定的 IP 地址没有关联的路由前缀,IAM 将使用默认前缀值 /32。
我已经对其进行了测试,即使在 IP 地址后未指定 /32 后它也能正常工作。
【讨论】:
以上是关于s3 策略允许在同一语句中使用多个 IP的主要内容,如果未能解决你的问题,请参考以下文章