【发布时间】:2018-05-05 06:07:26
【问题描述】:
我正在尝试将 S3 存储桶访问限制为几个不同子网中的 EC2 实例:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Principal": {"AWS": "*"},
"Resource": [
"arn:aws:s3:::test.bucket",
"arn:aws:s3:::test.bucket/*"
],
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"192.168.129.64/27",
"192.168.129.96/27",
"192.168.128.64/26"
]
}
}
},
{
"Effect": "Deny",
"Action": "s3:*",
"Principal": {"AWS": "*"},
"Resource": [
"arn:aws:s3:::test.bucket",
"arn:aws:s3:::test.bucket/*"
],
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"192.168.129.64/27",
"192.168.129.96/27",
"192.168.128.64/26"
]
}
}
}
]
}
我知道在此政策的特殊性方面还有其他问题,但我已尝试使其尽可能简单,但条件除外。不幸的是,从 IP 地址为192.168.129.100 的 ec2 实例尝试简单的aws s3 ls s3://test.bucket 失败,访问被拒绝。这项政策有效地将我拒之门外。
我不知道我错过了什么。我什至尝试在 IpAddress 和 NotIpAddress 条件前添加 ForAnyValue 和 ForAllValues。
【问题讨论】:
标签: amazon-web-services amazon-s3 amazon-ec2 amazon-policy