プライベートネットワークからS3へ安全にアクセスする方法を完全図解
aws:sourceVpce(特定エンドポイント)または aws:SourceVpc(VPC全体)を使ってアクセス元を制限
💡 イメージ:銀行の金庫室(S3)には、正面玄関(インターネット経由)と秘密のトンネル(VPCエンドポイント)があります。
バケットポリシーで「秘密のトンネルからしか入れないルール」を作ると、正面玄関は閉鎖され、
専用トンネルを持つVIP顧客(EC2など)だけが金庫にアクセスできるようになります🔐
aws:sourceVpce
aws:SourceVpc
aws:VpcSourceIp
VPCエンドポイント経由のリクエストには aws:SourceIp は使えません!
インターネット経由のアクセスを制限したい場合は aws:SourceIp を使いますが、
VPCエンドポイント経由の場合は代わりに aws:VpcSourceIp を使用してください。
{
"Version": "2012-10-17",
"Id": "VPCEndpointOnlyAccess",
"Statement": [
{
"Sid": "Access-to-specific-VPCE-only",
"Effect": "Deny", // ← 拒否ルール
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-secure-bucket",
"arn:aws:s3:::my-secure-bucket/*"
],
"Condition": {
"StringNotEquals": { // ← 「〜でない場合」
"aws:sourceVpce": "vpce-1a2b3c4d" // ← あなたのエンドポイントIDに置き換え
}
}
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyAccessFromOutsideVPC",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-secure-bucket",
"arn:aws:s3:::my-secure-bucket/*"
],
"Condition": {
"StringNotEquals": {
"aws:SourceVpc": "vpc-111bbb22" // ← あなたのVPC IDに置き換え
}
}
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowMultipleVPCEndpoints",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject", // ← アップロードのみ制限する例
"Resource": "arn:aws:s3:::my-secure-bucket/*",
"Condition": {
"StringNotEquals": {
"aws:sourceVpce": [
"vpce-1111111", // 本番環境
"vpce-2222222" // 開発環境
]
}
}
}
]
}
vpce-xxxxxxxxx 形式のIDをコピーしておきます。
Created by SSuzuki1063
AWS SAP Learning Resources