AWSのS3エンドポイントとは、Amazon S3へのアクセスを制御・最適化するためのVPCエンドポイント(VPC Endpoint)の一種で、VPC内からインターネットを経由せずにS3にアクセスできるようにする仕組みです。
S3エンドポイントの概要
項目 | 説明 |
---|---|
種類 | Gateway型 VPCエンドポイント |
対象サービス | Amazon S3 および DynamoDB(どちらも Gateway型) |
主な用途 | VPC内部からインターネット経由せずにS3へアクセスする |
通信経路 | AWSの内部ネットワーク(インターネットではない) |
なぜ使うのか(利点)
利点 | 説明 |
---|---|
セキュリティ強化 | パブリックインターネットを経由せずにS3へアクセスできる |
コスト削減 | NAT Gatewayなどインターネット経由の料金を節約 |
アクセス制御 | エンドポイントポリシーでアクセス元VPCやIAM条件の制限が可能 |
信頼性向上 | AWSネットワーク内の通信で安定性が高い |
実際の動作イメージ
通常(エンドポイントなし)
→ EC2(VPC) → インターネット → S3
S3エンドポイントあり
→ EC2(VPC) → VPC Endpoint(内部) → S3
関連機能
-
エンドポイントポリシー:アクセスを制限するためのIAMポリシー形式のルールを記述可能
-
S3バケットポリシーとの併用:VPCエンドポイントからのアクセスのみを許可する設定が可能
例:
{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::your-bucket-name/*",
"Condition": {
"StringNotEquals": {
"aws:SourceVpce": "vpce-xxxxxxxx"
}
}
}
S3エンドポイントの上限
AWSの S3エンドポイント(VPCエンドポイント) の上限は、VPCごとに最大 20 個の Gateway エンドポイント です(デフォルト上限)。
項目 | 上限値(デフォルト) |
---|---|
Gateway型エンドポイント(例:S3, DynamoDB) | VPCごとに 20 個 |
補足
-
通常、S3向けのGateway型エンドポイントは 1つで十分 です。
(ap-northeast-1(東京)で作成したエンドポイントは、そのVPC内から東京リージョンのS3への内部通信のみを提供します。
通常、そのリージョン内にあるS3バケットだけにアクセスすればよいという前提のため、東京で1つ作れば、東京のS3に対してはすべてアクセスできるという意味です。
クロスリージョンでS3アクセスが必要なら追加の考慮が必要) -
上限の引き上げ(Service Quota)は可能ですが、S3用に複数のGatewayエンドポイントを作る必要があるケースはまれです。
S3用のGateway型エンドポイントが1つで十分な理由
理由1:リージョン内のすべてのS3バケットにアクセス可能
-
Gateway型エンドポイント(例:
com.amazonaws.ap-northeast-1.s3
)を1つ作成すれば、そのリージョン内のすべてのS3バケットにアクセス可能です。 -
S3のエンドポイントはグローバルサービスではなく、リージョンごとに動作します。
-
東京リージョン用のS3エンドポイントが1つあれば、東京リージョンの任意のバケットにアクセス可能です。
理由2:アクセス先バケットを限定する必要がない
-
通常のユースケースでは、複数のバケットにアクセスする必要があっても、1つのエンドポイントでそれらをすべてカバー可能です。
-
バケット単位でアクセス制御したい場合でも、エンドポイントポリシーやS3バケットポリシーで制限できます。エンドポイントを増やす必要はありません。
理由3:S3のDNS名は共通で内部的にルーティングされる
-
s3.amazonaws.com
やbucket-name.s3.amazonaws.com
のようなホスト名は、S3エンドポイントが有効な場合は自動的にAWS内部ネットワークを経由します。 -
このため、アクセス先のバケットがどれであっても、同じエンドポイントを通じて内部接続が行われるのです。
理由4:コストやリソース節約
-
Gateway型エンドポイントは無料ですが、リソース制限(上限20個)があります。
-
不必要に増やさずに1つで済ませる方が管理・セキュリティ・設計上もシンプルです。
補足:複数のS3エンドポイントが必要になるケース(まれ)
-
VPCごとに異なるポリシーを適用したい場合(例えば、一部のEC2だけ特定のS3バケットにアクセスさせるなど)
-
複数のVPCから同じS3バケットにアクセスするが、VPCエンドポイントごとのセキュリティ制御を行いたい場合
-
組織構成や監査要件により、個別エンドポイント管理が求められる場合
結論
1つのS3 Gateway型エンドポイントで、通常のユースケースはすべて対応可能です。個別のS3バケットごとにエンドポイントを分ける必要はありません。必要があれば、エンドポイントポリシーやIAM/S3ポリシーで制御するのが推奨されます。
関連の記事
AWS CLIのコマンド (S3のファイルの一覧/コピー/移動)