英文:
aws s3 bucket policy - allow range of ip addresses
问题
I am trying to allow access to a number of IPv4 IP addresses starting with 111.222 via a policy in AWS S3, I have tried all the following but unable to get it to work:
{
"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.."
]
}
}
}
]
}
Is it possible to do this? I want IP addresses such as 111.222.1.2 and 111.222.99.6 to have access.
The bucket is hosting a static website that doesn't allow public access.
If I put in the full IP address it works, e.g., 111.222.1.2, but there are hundreds of IP addresses, so I would like to use a wildcard.
英文:
I am trying to allow access to a number of ipv4 ip addresses starting with 111.222 via a policy in aws s3, I have tried all the following but unable to get it to work -
{
"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.."
]
}
}
}
}
Is it possible to do this? I want ip addresses such as 111.222.1.2 and 111.222.99.6 to have access.
The bucket is hosting a static website that doesn't allow public access.
If I put in the full ip address it works e.g. - 111.222.1.2 but there are hundreds of ip addresses, so would like to use a wildcard.
答案1
得分: 1
你可以使用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"
]
}
}
}
]
}
英文:
You can use CIDR as ip address.
{
"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"
]
}
}
}
}
答案2
得分: 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中的任何数字。这是CIDR111.222.0.0/16
。
英文:
From this doc,
> IP address condition operators let you construct Condition elements that restrict access based on comparing a key to an IPv4 or IPv6 address or range of IP addresses. You use these with the aws:SourceIp key. The value must be in the standard CIDR format (for example, 203.0.113.0/24 or 2001:DB8:1234:5678::/64). If you specify an IP address without the associated routing prefix, IAM uses the default prefix value of /32.
You don't use wildcards in these condtions, you use Cidr notation. From what you're saying, the wildcard equivalent of what you want seems to be 111.222.*.*
where *
can be any number 0-255. This is the CIDR 111.222.0.0/16
.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论