実現したいこと
[NG] LambdaのIPを固定してS3にIP制限をかける
AWS構成
- LambdaのIPを固定
- S3にIP制限をかける
- ブロックパブリックアクセス:オフ
- バケットポリシー:以下の通り
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::{バケット名}/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": {NAT Gatewayの固定IP}
}
}
}
]
}
結果
ファイル取得できず。
S3から 403 Forbidden
が返ってきていました。
試しにS3のIP制限をなくしたところ、画像が取得できたため、取得元のIPが間違っていると推測。
NAT Gatewayを経由していないようです。
VPCエンドポイント経由で取得していた
AWS構成
- S3のバケットポリシーでVPCエンドポイントIDを指定すると、無事ファイルが取得できました。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::{バケット名}/*",
"Condition": {
"StringEquals": {
"aws:SourceVpce": {VPCエンドポイントID(s3)}
}
}
}
]
}