新しい Amazon S3 ユーザーガイドにようこそ! Amazon S3 ユーザーガイドは、使用中止された 3 つのガイド (Amazon S3 開発者ガイド、Amazon S3 コンソールユーザーガイド、Amazon S3 入門ガイド) の情報と手順をまとめたものです。
AWS PrivateLink for Amazon S3
Amazon S3 用 AWS PrivateLink を使用すると、インターネット経由で接続するのではなく、仮想プライベートクラウド (VPC) でインターフェイス VPC エンドポイント (インターフェイスエンドポイント) をプロビジョニングできます。これらのエンドポイントは、オンプレミスまたは別の AWS リージョンにあるアプリケーションから直接アクセスできます。
インターフェイスエンドポイントは、VPC 内のサブネットからプライベート IP アドレスが割り当てられた 1 つ以上の Elastic Network Interface (ENI) で表されます。Amazon S3 のインターフェイスエンドポイントに対するリクエストは、Amazon ネットワーク上の Amazon S3 に自動的にルーティングされます。AWS Direct Connect または AWS Virtual Private Network (AWS VPN) を通じて、オンプレミスのアプリケーションから VPC 内のインターフェイスエンドポイントにアクセスすることもできます。VPC をオンプレミスネットワークに接続する方法の詳細については、AWS Direct Connect ユーザーガイドおよび AWS Site-to-Site VPN ユーザーガイドをご参照ください。
インターフェイスエンドポイントの一般的な情報については、AWS PrivateLink ガイドの「インターフェイス VPC エンドポイント (AWS PrivateLink)」をご参照ください。
トピック
Amazon S3 の VPC エンドポイントのタイプ
Amazon S3 へのアクセスには、ゲートウェイエンドポイントとインターフェイスエンドポイントの 2 つのタイプの VPC エンドポイントを使用できます。ゲートウェイエンドポイントは、AWS ネットワーク経由で VPC から Amazon S3 にアクセスするために、ルートテーブルで指定するゲートウェイです。インターフェースエンドポイントは、プライベート IP アドレスを使用して、VPC 内、オンプレミス、または別の AWS リージョンから Amazon S3 にリクエストをルーティングすることにより、ゲートウェイエンドポイントの機能を拡張します。インターフェイスエンドポイントは、ゲートウェイエンドポイントと互換性があります。VPC 内に既存のゲートウェイエンドポイントがある場合は、同じ VPC で両方のタイプのエンドポイントを使用できます。
Amazon S3 のゲートウェイエンドポイント |
Amazon S3 のインターフェイスエンドポイント |
---|---|
いずれの場合も、ネットワークトラフィックは AWS ネットワーク上に残ります。 |
|
Amazon S3 パブリック IP アドレスを使用する |
VPC のプライベート IP アドレスを使用して Amazon S3 にアクセスする |
オンプレミスからのアクセスを許可しません |
オンプレミスからのアクセスを許可します |
別の AWS リージョンからのアクセスを許可しません |
別の AWS リージョンからのアクセスを許可します |
課金されない |
請求される |
ゲートウェイエンドポイントの詳細については、AWS PrivateLink ガイドの「ゲートウェイ VPC エンドポイント」をご参照ください。
AWS PrivateLink for Amazon S3 の制約と制限
VPC 制限は、AWS PrivateLink for Amazon S3 に適用されます。詳細については、AWS PrivateLink ガイドの「インターフェイスエンドポイントのプロパティと制限」および「AWS PrivateLink クォータ」を参照してください。また、以下の制約も適用されます。
AWS PrivateLink for Amazon S3 では、以下をサポートしていません。
Amazon S3 インターフェイスエンドポイントへのアクセス
AWS PrivateLink を使用して Amazon S3 にアクセスするには、エンドポイント固有の DNS 名を使用するようにアプリケーションを更新する必要があります。
インターフェイスエンドポイントを作成すると、Amazon S3 はエンドポイント固有の 2 つのタイプの S3 DNS 名 (Regional および zonal) を生成します。
-
Regional DNS 名には、一意の VPC エンドポイント ID、サービス識別子、AWS リージョン、およびその名前の
vpce.amazonaws.com
が含まれます。例えば、VPC エンドポイント ID
の場合、生成される DNS 名はvpce-1a2b3c4d
に似ている場合があります。vpce-1a2b3c4d-5e6f
.s3.us-east-1.vpce.amazonaws.com -
Zonal DNS 名には、アベイラビリティーゾーンが含まれます (
など)。このオプションは、アーキテクチャがアベイラビリティーゾーンを分離する場合に使用できます。例えば、障害を隔離し、リージョン間のデータ転送コストを削減するために使用できます。vpce-1a2b3c4d-5e6f
-us-east-1a.s3.us-east-1.vpce.amazonaws.com
エンドポイント固有の S3 DNS 名は、S3 パブリック DNS ドメインから解決できます。
Amazon S3 インターフェイスエンドポイントは、インターフェイスエンドポイントのプライベート DNS 機能をサポートしていません。インターフェイスエンドポイントのプライベート DNS の詳細については、AWS PrivateLink ガイドをご参照ください。
S3 インターフェイスエンドポイントからのバケットおよび S3 アクセスポイントへのアクセス
AWS CLI または AWS SDK を使用して、S3 インターフェイスエンドポイントを介してバケット、S3 アクセスポイント、および S3 コントロール API にアクセスできます。
次の図は、VPC コンソールの [Details] (詳細) タブを示しています。ここでは、VPC エンドポイントの DNS 名を確認できます。この例では、VPC エンドポイント ID (vpce-id) は vpce-0e25b8cdd720f900e
で、DNS 名は vpce-0e25b8cdd720f900e-argc85vg.s3.us-east-1.vpce.amazonaws.com
です。
![VPC コンソールの [Details] (詳細) タブのスクリーンショット。](images/vpc-console-details-tab.png)
エンドポイント固有の DNS 名の表示方法の詳細については、VPC ユーザーガイドの「エンドポイントサービスのプライベート DNS 名設定の表示」をご参照ください。
AWS CLI の例
--endpoint-url
パラメータを使用して、S3 インターフェイスエンドポイントを介して S3 バケット、S3 アクセスポイント、または S3 コントロール API にアクセスします。
例: エンドポイント URL を使用したバケット内のオブジェクトのリスト化
次の例では、VPC エンドポイント ID
とバケット名 vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
を適切な情報に置き換えます。
my-bucket
aws s3 --endpoint-url https://bucket.
vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
ls s3://my-bucket
/
例: エンドポイント URL を使用したアクセスポイントのオブジェクトのリスト化
次の例では、ARN
および VPC エンドポイント ID us-east-1:123456789012:accesspoint/test
を適切な情報に置き換えます。
vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
aws s3api list-objects-v2 --bucket arn:aws:s3:
us-east-1:123456789012:accesspoint/test
--endpoint-url https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
例: エンドポイント URL を使用した S3 コントロールでのジョブのリスト化
次の例では、VPC エンドポイント ID
とアカウント ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
を適切な情報に置き換えます。
12345678
aws s3control --endpoint-url https://control.
vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
list-jobs --account-id12345678
AWS SDK の例
SDK を最新バージョンに更新し、S3 インターフェイスエンドポイントを介してバケット、アクセスポイント、または S3 コントロール API にアクセスするためのエンドポイント URL を使用するようにクライアントを設定します。
オンプレミスの DNS 設定の更新
エンドポイント固有の DNS 名を使用して Amazon S3 のインターフェイスエンドポイントにアクセスする場合、オンプレミス DNS リゾルバーを更新する必要はありません。パブリック Amazon S3 DNS ドメインからのインターフェイスエンドポイントのプライベート IP アドレスを使用して、エンドポイント固有の DNS 名を解決できます。
Amazon S3 にアクセスするためのインターフェイスエンドポイントの使用 (VPC 内のゲートウェイエンドポイントまたはインターネットゲートウェイの使用なし)
次の図に示すように、VPC 内のインターフェイスエンドポイントは、VPC 内アプリケーションとオンプレミスアプリケーションの両方を Amazon ネットワーク経由で Amazon S3 にルーティングできます。

図は、以下を示しています。
-
オンプレミスのネットワークでは、AWS Direct Connect または AWS VPN を使用して VPC A に接続します。
-
オンプレミスと VPC A のアプリケーションでは、エンドポイント固有の DNS 名を使用して S3 インターフェイスエンドポイントを介して Amazon S3 にアクセスします。
-
オンプレミスのアプリケーションは、AWS Direct Connect (または AWS VPN) を介して VPC 内のインターフェイスエンドポイントにデータを送信します。AWS PrivateLink は、AWS ネットワーク経由でインターフェイスエンドポイントから Amazon S3 にデータを移動します。
-
VPC 内アプリケーションは、インターフェイスエンドポイントにもトラフィックを送信します。AWS PrivateLink は、AWS ネットワーク経由でインターフェイスエンドポイントから Amazon S3 にデータを移動します。
Amazon S3 にアクセスするための、ゲートウェイエンドポイントとインターフェイスエンドポイントの同じ VPC における併用
次の図に示すように、インターフェイスエンドポイントを作成し、同じ VPC 内に既存のゲートウェイエンドポイントを保持できます。これにより、VPC 内アプリケーションがゲートウェイエンドポイントを介して Amazon S3 に引き続きアクセスすることを許可します。これについての請求はありません。その後、オンプレミスのアプリケーションだけがインターフェイスエンドポイントを使用して Amazon S3 にアクセスします。 この方法で S3 にアクセスするには、Amazon S3 のエンドポイント固有の DNS 名を使用するようにオンプレミスアプリケーションを更新する必要があります。

図は、以下を示しています。
-
オンプレミスのアプリケーションは、エンドポイント固有の DNS 名を使用して、AWS Direct Connect (または AWS VPN) を介して VPC 内のインターフェイスエンドポイントにデータを送信します。AWS PrivateLink は、AWS ネットワーク経由でインターフェイスエンドポイントから Amazon S3 にデータを移動します。
-
VPC 内アプリケーションは、デフォルトのリージョン Amazon S3 名を使用して、AWS ネットワークを介して Amazon S3 に接続するゲートウェイエンドポイントにデータを送信します。
ゲートウェイエンドポイントの詳細については、VPC ユーザーガイドの「ゲートウェイ VPC エンドポイント」をご参照ください。
Amazon S3 用の VPC エンドポイントポリシーの作成
VPC エンドポイントに Amazon S3 へのアクセスをコントロールするエンドポイントポリシーをアタッチできます。このポリシーでは、以下の情報を指定します。
-
アクションを実行できる AWS Identity and Access Management (IAM) プリンシパル
-
実行可能なアクション
-
このアクションを実行できるリソース
Amazon S3 バケットポリシーを使用して、バケットポリシーの aws:sourceVpce
条件を使用して、特定の VPC エンドポイントからの特定のバケットへのアクセスを制限することもできます。次の例は、バケットまたはエンドポイントへのアクセスを制限するポリシーを示しています。
トピック
-
このセクションで説明している VPC エンドポイントに Amazon S3 のバケットポリシーを適用すると、バケットへのアクセスが意図せずにブロックされる場合があります。特に VPC エンドポイントからの接続に対するバケットのアクセスを制限することを目的としたバケットのアクセス許可により、バケットへのすべての接続がブロックされる場合があります。この問題を修正する方法については、「私のバケットポリシーに間違った VPC または VPC エンドポイント ID が登録されます。ポリシーを修正してバケットにアクセスできるようにするにはどうすれば良いですか?
」 (AWS サポートナレッジセンター) を参照してください。 -
次のポリシーの例を使用する前に、VPC エンドポイントの ID をユースケースに応じた値に置き換えてください。そうしないと、バケットにアクセスできません。
-
このポリシーは、コンソールリクエストが指定の VPC エンドポイントを経由していない場合、指定先のバケットへのコンソールアクセスを無効にします。
例: VPC エンドポイントから特定のバケットへのアクセスの制限
特定の Amazon S3 バケットへのアクセスのみを制限するエンドポイントポリシーを作成できます。これは、VPC でバケットを使用する他の AWS のサービスがある場合に便利です。次のバケットポリシーは、
へのアクセスのみを制限します。DOC-EXAMPLE-BUCKET1
の部分はお客様のバケットの名前に置き換えます。
DOC-EXAMPLE-BUCKET1
{ "Version": "2012-10-17", "Id": "Policy1415115909151", "Statement": [ { "Sid": "Access-to-specific-bucket-only", "Principal": "*", "Action": [ "s3:GetObject", "s3:PutObject" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::
", "arn:aws:s3:::
DOC-EXAMPLE-BUCKET1
/*"] } ] }
DOC-EXAMPLE-BUCKET1
例: VPC エンドポイントから特定のアカウントのバケットへのアクセスの制限
特定の AWS アカウントの S3 バケットへのアクセスのみを制限するポリシーを作成できます。これを使用して、所有していないバケットに VPC 内のクライアントがアクセスできないようにします。次の例では、単一の
AWS アカウント ID 111122223333
が所有するリソースへのアクセスを制限するポリシーを作成します。
{ "Statement": [ { "Sid": "Access-to-bucket-in-specific-account-only", "Principal": "*", "Action": [ "s3:GetObject", "s3:PutObject" ], "Effect": "Deny", "Resource": "arn:aws:s3:::*", "Condition": { "StringNotEquals": { "s3:ResourceAccount": "
111122223333
" } } } ] }
例: S3 バケットポリシーでの特定の VPC エンドポイントへのアクセスの制限
例: S3 バケットポリシーにおける特定の VPC エンドポイントへのアクセスの制限
次の Amazon S3 バケットポリシーは、エンドポイント
からのみ、特定のバケット vpce-1a2b3c4d
へのアクセスを許可します。指定されたエンドポイントを使用していない場合、ポリシーによりバケットへのすべてのアクセスが拒否されます。DOC-EXAMPLE-BUCKET2
aws:sourceVpce
条件はエンドポイントを指定するために使用され、VPC エンドポイントリソースの Amazon リソースネーム (ARN) を必要とせず、エンドポイント ID のみを指定します。
および DOC-EXAMPLE-BUCKET2
を実際のバケット名とエンドポイントに置き換えます。
vpce-1a2b3c4d
{ "Version": "2012-10-17", "Id": "Policy1415115909152", "Statement": [ { "Sid": "Access-to-specific-VPCE-only", "Principal": "*", "Action": "s3:*", "Effect": "Deny", "Resource": ["arn:aws:s3:::
", "arn:aws:s3:::
DOC-EXAMPLE-BUCKET2
"], "Condition": {"StringNotEquals": {"aws:sourceVpce": "
DOC-EXAMPLE-BUCKET2
/*vpce-1a2b3c4d
"}} } ] }
ポリシーの例については、VPC ユーザーガイドの「Amazon S3 のエンドポイント」を参照してください。
VPC 接続の詳細については、AWS ホワイトペーパー「Amazon Virtual Private Cloud 接続オプション」の「ネットワークから VPC への接続オプション」を参照してください。