我见过一些参考资料使用与以下结构类似的存储桶策略
{
"Version": "2012-10-17",
"Id": "Policy1607646663558",
"Statement": [
{
"Sid": "Stmt1607646606566",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::mybucket/*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"73.63.x.y",
"73.63.w.x"
]
}
}
}
]
}
此外,作为调试的一部分,我将其公开。这不是可取的做法,最好将其收紧。
但即使打开了它也无法工作(我从 73.63.xy ip 地址访问)
两个问题:
- 为什么白名单 IP 的权限被拒绝?
- 是否可以启用“阻止所有公共访问”并仍然通过白名单 IP 进行访问?
答案1
如果您允许主机(如这个 73.63.xy/32)或 IP 块的相应网络掩码,则需要将 /32 添加到您的 IP 地址。
对您的问题的回答:
NotIpAddress
由于您的条件是,因此许可(效果)被拒绝。- 是的,因为 AWS 会评估所有策略。用户策略和基于资源的策略(存储桶策略、存储桶 ACL、对象 ACL)来决定允许或拒绝。