記載された vpce と IPアドレスのみ許可する設定例です。
{
"Version": "2012-10-17",
"Id": "vpce-restrict",
"Statement": [{
"Sid": "Allow-VPCE",
"Action": "s3:*",
"Principal": {
"AWS": "*"
},
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::bucket-name*",
"arn:aws:s3:::bucket-name/*",
],
"Condition": {
"StringEquals": {
"aws:sourceVpce": [
"vpce-********"
]
}
}
}, {
"Sid": "IPAddress-restrict",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::bucket-name*",
"arn:aws:s3:::bucket-name/*",
],
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"***.***.***.***/**"
]
}
}
}]
}
この場合、StringEquals だと許可、 StringNotEquals だと拒否になりますので、うまいぐあいに使い分けができます。
というか、これに気づかなくてハマってしまった・・・