我使用s3 bucket策略如下:
{
"Version": "2012-10-17",
"Id": "OnlyAllowMyVPC",
"Statement": [
{
"Sid": "denyOthers",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws-cn:s3:::devbucket",
"arn:aws-cn:s3::: devbucket/*"
],
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "10.192.0.0/19"
}
}
}
]
}
10.192.0.0/19是我所在VPC的CIDR,我所在的VPC没有互联网接入。
然后,即使从这个VPC中的ec2,我仍然无法访问"devbucket";bucket,但我可以访问其他bucket。我不知道为什么。
有人能帮我吗,非常感谢!
一种方法是使用root用户删除bucket权限,但我很难获得root用户的访问权限。
更新:
我之所以可以访问其他s3,是因为我添加了s3 VPC Endpoint。当我删除Endpoint时,我将无法访问任何bucket。
尝试使用VPC Endpoint进行S3。基本上,它将允许来自私有子网的EC2实例以更安全的方式连接S3。