Amazon s3 AWS S3阻止源IP地址不工作的bucket策略
我知道这个问题已经被问过好几次了,我已经阅读了一些关于这个问题的文档和例子。但我仍然无法让它工作 我想阻止从一个特定IP地址访问我的S3存储桶,并允许所有其他IP地址。我不想阻止属于IAM角色的实例,因此我正在为此使用NotIpAddress条件。以下是我在我的桶上应用的策略:Amazon s3 AWS S3阻止源IP地址不工作的bucket策略,amazon-s3,Amazon S3,我知道这个问题已经被问过好几次了,我已经阅读了一些关于这个问题的文档和例子。但我仍然无法让它工作 我想阻止从一个特定IP地址访问我的S3存储桶,并允许所有其他IP地址。我不想阻止属于IAM角色的实例,因此我正在为此使用NotIpAddress条件。以下是我在我的桶上应用的策略: { "Version": "2012-10-17", "Id": "Policy1486984747194", "Statement": [ { "Sid"
{
"Version": "2012-10-17",
"Id": "Policy1486984747194",
"Statement": [
{
"Sid": "AllowAllExceptOneIP",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::my-test-bucket",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "52.38.90.46"
}
}
}
]
}
但这项政策不起作用。我可以从这台机器上传文件到我的bucket,我正在使用s3-curl.pl临时上传我的文件
有人能帮我找出这里出了什么问题吗。谢谢。要阻止特定IP对S3存储桶的所有操作,策略需要为该IP提供单独的拒绝效果声明,示例:
{
"Version": "2012-10-17",
"Id": "Policy1487062767078",
"Statement": [
{
"Sid": "AllowAll",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-test-bucket",
"arn:aws:s3:::my-test-bucket/*"
]
},
{
"Sid": "DenyIP",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-test-bucket",
"arn:aws:s3:::my-test-bucket/*"
],
"Condition": {
"IpAddress": {
"aws:SourceIp": "52.38.90.46"
}
}
}
]
}
可以根据需要阻止的内容更改操作和资源
非常感谢@SergeyKovalev为我提供此解决方案。要阻止特定IP对S3存储桶的所有操作,策略需要为该IP提供单独的拒绝效果声明,示例:
{
"Version": "2012-10-17",
"Id": "Policy1487062767078",
"Statement": [
{
"Sid": "AllowAll",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-test-bucket",
"arn:aws:s3:::my-test-bucket/*"
]
},
{
"Sid": "DenyIP",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-test-bucket",
"arn:aws:s3:::my-test-bucket/*"
],
"Condition": {
"IpAddress": {
"aws:SourceIp": "52.38.90.46"
}
}
}
]
}
可以根据需要阻止的内容更改操作和资源
非常感谢@SergeyKovalev为我提供此解决方案。这并没有明确否认IP。如果您有一个公共ACL,默认情况下将允许所有IP。为该IP创建另一个具有
Deny
效果的语句。@SergeyKovalev,谢谢,你能帮我吗。我尝试了{“Version”:“2012-10-17”,“Id”:“Policy1486984747194”,“Statement”:[{“Sid”:“AllowAll”,“Effect”:“Allow”,“Principal”:{“AWS”:“*”},“Action”:“s3:”,“Resource”:“arn:AWS:s3:::my test bucket”},{“Sid”:“DenyOneIP”,“Effect”:“Deny”,“Principal”:{“AWS”:“*”,“Action”:“s3:*”,“资源”:“arn:aws:s3:::我的测试桶”,“条件”:{“IpAddress”:{“aws:SourceIp:“52.38.90.46”}}}}}}}}}}}
但这也不起作用。我发现我做错了什么。就像@Sergeykovalv提到的,我们需要创建另一个具有拒绝效果的语句。因为我拒绝了资源”:“arn:aws:s3:::我的测试桶“而不是arn:aws:s3:::我的测试bucket/*,我可以上传文件,只有bucket列表被该IP阻止。这并没有明确否认该IP。如果您有一个公共ACL,默认情况下将允许所有IP。为该IP创建另一个具有Deny
效果的语句。@SergeyKovalev,谢谢,你能帮我吗。我尝试了{“Version”:“2012-10-17”,“Id”:“Policy1486984747194”,“Statement”:[{“Sid”:“AllowAll”,“Effect”:“Allow”,“Principal”:{“AWS”:“*”},“Action”:“s3:”,“Resource”:“arn:AWS:s3:::my test bucket”},{“Sid”:“DenyOneIP”,“Effect”:“Deny”,“Principal”:{“AWS”:“*”,“Action”:“s3:*”,“资源”:“arn:aws:s3:::我的测试桶”,“条件”:{“IpAddress”:{“aws:SourceIp:“52.38.90.46”}}}}}}}}}}}
但这也不起作用。我发现我做错了什么。就像@Sergeykovalv提到的,我们需要创建另一个具有拒绝效果的语句。因为我拒绝了资源”:“arn:aws:s3:::我的测试bucket”而不是arn:aws:s3:::我的测试bucket/*,我能够上载文件,只有bucket列表被阻止从该IP。使用NotIpAddress更改最后一个条件:“条件”:{“NotIpAddress”:{“aws:SourceIp”:“52.38.90.46”}使用NotIpAddress更改最后一个条件:“条件”:{“NotIpAddress”:{“aws:SourceIp”:“52.38.90.46”}