インターフェース VPC エンドポイントと Route 53 プライベートホストゾーンを使用した S3 アクセスの紹介
はじめに
Amazon S3 は ゲートウェイ VPC エンドポイント に加えて、プライベート接続性を強化するための インターフェース VPC エンドポイント を提供しています。本記事では、インターフェース VPC エンドポイントと Route 53 プライベートホストゾーンを使用して、プライベートサブネットから S3 にアクセスする方法を説明します。
S3 インターフェース VPC エンドポイント では、S3 にアクセスする際に --endpoint-url
オプションの指定が必要です。この毎回のオプション指定を省くため、Route 53 プライベートホストゾーン を活用できます。本記事では、その具体的な手順を解説します。
S3 VPC エンドポイント
VPC エンドポイントなしで S3 にアクセスする場合
プライベートサブネットから VPC エンドポイントを使用せずに S3 にアクセスしようとすると、接続エラーが発生します。
$ aws s3 ls --region $YOUR_REGION --cli-read-timeout 1 --cli-connect-timeout 1
Connect timeout on endpoint URL: "https://s3.ap-northeast-1.amazonaws.com/"
S3 インターフェース VPC エンドポイントの作成
S3 へのアクセスを有効にするには、以下のコマンドを使用してインターフェース VPC エンドポイントを作成します。
aws ec2 create-vpc-endpoint \
--vpc-id $YOUR_VPC_ID \
--vpc-endpoint-type Interface \
--service-name com.amazonaws.$YOUR_REGION.s3 \
--subnet-ids $YOUR_PRIVATE_SUBNET_IDS \
--security-group-ids $YOUR_SECURITY_GROUP_IDS
作成したエンドポイントを確認し、DNS エントリを取得します。
aws ec2 describe-vpc-endpoints \
--filters Name=service-name,Values=com.amazonaws.$YOUR_REGION.s3 \
--query "VpcEndpoints[*].DnsEntries"
[
[
{
"DnsName": "*.vpce-xxxxxxxxxxxxxxxxx-xxxxxxxx.s3.ap-northeast-1.vpce.amazonaws.com",
"HostedZoneId": "xxxxxxxxxxxxxx"
},
{
"DnsName": "*.vpce-xxxxxxxxxxxxxxxxx-xxxxxxxx-ap-northeast-1a.s3.ap-northeast-1.vpce.amazonaws.com",
"HostedZoneId": "xxxxxxxxxxxxxx"
}
]
]
VPC エンドポイントを使用した S3 へのアクセス
VPC エンドポイントの URL を使用して S3 にアクセスできるか確認します。
aws s3 ls \
--region <YOUR_REGION> \
--endpoint-url http://vpce-xxxxxxxxxxxxxxxxx-xxxxxxxx.s3.ap-northeast-1.vpce.amazonaws.com
--region
オプションを必ず指定してください。
Route 53 プライベートホストゾーン
Route 53 プライベートホストゾーンの作成
S3 へのアクセスを簡略化するため、以下のコマンドを使用して Route 53 プライベートホストゾーンを作成します。
aws route53 create-hosted-zone \
--name s3.$YOUR_REGION.amazonaws.com \
--vpc VPCRegion=$YOUR_REGION,VPCId=$YOUR_VPC_ID \
--caller-reference "$(date)"
DNS レコードの追加
Route 53 コンソールを使用して、VPC エンドポイントを指す A (ALIAS)
レコードを追加します。
Create record
をクリックします。
- レコードタイプとして
A
を選択し、ルーティングターゲットにAlias to VPC endpoint
を選びます。
--endpoint-url
オプションなしでの S3 アクセス
ホストゾーンを設定した後は、--endpoint-url
オプションを指定せずに S3 にアクセス可能です。
aws s3 ls --region ap-northeast-1
--region
オプションを必ず指定してください。
まとめ
Interface VPC Endpoint は、オンプレミス環境が VPC に接続されているシナリオで特に有用です。この設定により、オンプレミスネットワークから S3 へ直接かつ安全にアクセスできます。
S3 Interface VPC Endpoint と Route 53 Private Hosted Zone を組み合わせることで、プライベート環境からの S3 アクセスを簡略化し、安全性を向上させることができます。このセットアップは、特にハイブリッドクラウドアーキテクチャにおいて大きな価値を発揮します。
Happy Coding! 🚀