メニュー
Amazon Virtual Private Cloud
ユーザーガイド

VPC エンドポイント

VPC endpoint により、インターネット、NAT デバイス、VPN 接続、または AWS Direct Connect を経由せずに、VPC と他の AWS サービスとをプライベートに接続できます。エンドポイントは仮想デバイスです。エンドポイントは、VPC のインスタンスと AWS サービスの間の通信を可能にする VPC コンポーネントであり、冗長性と高い可用性を備えており、水平スケーリングが可能です。ネットワークトラフィックに課される可用性のリスクや帯域幅の制約はありません。

重要

現在、Amazon S3 および DynamoDB のみとの接続のエンドポイントがサポートされています。

エンドポイントは、VPC のインスタンスがプライベート IP アドレスを使用して、他のサービスのリソースと通信できるようにします。インスタンスはパブリック IPv4 アドレスを必要とせず、VPC でインターネットゲートウェイ、NAT デバイス、または仮想プライベートゲートウェイは必要ありません。エンドポイントのポリシーを使用して、他のサービスのリソースへのアクセスを制御します。VPC と AWS サービス間のトラフィックは、Amazon ネットワークを離れません。

以下の図では、サブネット 2 のインスタンスは VPC エンドポイントを介して Amazon S3 にアクセスできます。

 エンドポイントを使用して Amazon S3 にアクセスする

エンドポイントは追加料金なしで使用できます。データ転送とリソースの使用量に対する標準料金が適用されます。料金に関する詳細については、「Amazon EC2 料金表」を参照してください。

エンドポイントの基本

エンドポイントを作成し、設定するには、以下の操作を実行します。

  1. エンドポイントを作成する VPC および接続先のサービスを指定します。サービスは、プレフィックスリスト (リージョンのサービスの名前と ID) によって識別されます。プレフィックスリストの ID の形式は pl-xxxxxxx で、プレフィックスリストの名前の形式は com.amazonaws.<region>.<service> です。エンドポイントを作成するプレフィックスリストの名前 (サービス名) を使用します。

  2. エンドポイントにエンドポイントポリシーをアタッチし、接続先の一部のサービスまたはすべてのサービスへのアクセスを許可します。詳細については、「エンドポイントポリシーの使用」を参照してください。

  3. VPC とその他のサービスとの間のトラフィックのルーティングを制御する 1 つ以上のルートテーブルを指定します。これらのルートテーブルを使用するサブネットはエンドポイントにアクセスでき、これらのサブネットのインスタンスからサービスへのトラフィックは、エンドポイントを通じてルーティングされます。

エンドポイントを作成した後は、エンドポイントにアタッチされたエンドポイントポリシーを変更し、エンドポイントで使用されるルートテーブルを追加または削除できます。

1 つの VPC で、 (たとえば複数のサービスへの) 複数のエンドポイントを作成できます。また、単一のサービス用の複数のエンドポイントを作成したり、複数のルートテーブルを使用して、複数のサブネットから異なるアクセスポリシーを同じサービスに対して適用することもできます。

エンドポイントのルーティング

エンドポイントを作成または変更するときは、エンドポイントを通じてサービスにアクセスするために使用する VPC ルートテーブルを指定します。ルートは自動的に各ルートテーブルに追加されて、送信先としてサービス (pl-xxxxxxxx) のプレフィックスリスト ID、ターゲットとしてエンドポイント ID (vpce-xxxxxxxx) が登録されます。その例を以下に示します。

送信先 Target
10.0.0.0/16 ローカル
pl-1a2b3c4d vpce-11bb22cc

プレフィックスリスト ID は、サービスで使用されるパブリック IP アドレスの範囲を論理的に表します。指定されたルートテーブルに関連付けられるサブネットのすべてのインスタンスは、自動的にエンドポイントを使用してサービスにアクセスします。指定されたルートテーブルに関連付けられていないサブネットは、エンドポイントを使用しません。これにより、他のサブネットのリソースをエンドポイントとは別に維持することができます。

サービスの現在のパブリック IP アドレス範囲を表示するには、describe-prefix-lists コマンド の「AWS IP アドレスの範囲」を参照してください。

注記

サービスのパブリック IP アドレス範囲は変更される場合があります。サービスの現在の IP アドレス範囲に基づき、ルーティングまたはその他の決定を行う前に、その影響について検討してください。

以下のルールが適用されます。

  • ルートテーブルの異なるサービスへの複数のエンドポイントルート、または異なるルートテーブルの同じサービスへの複数のエンドポイントルートを持つことができますが、1 つのルートテーブルの同じサービスへの複数のエンドポイントを持つことはできません。たとえば、VPC で Amazon S3 への 2 つのエンドポイントがある場合、両方のエンドポイントに同じルートテーブルを使用することはできません。

  • ルートテーブル API を使用するか、VPC コンソールの [Route Tables] ページを使用して、ルートテーブルでエンドポイントルートを明示的に追加、変更、または削除することはできません。ルートテーブルをエンドポイントに関連付けて、エンドポイントルートを追加することのみできます。エンドポイントに関連付けられたルートテーブルを変更するには、エンドポイントを変更します。

  • エンドポイントルートは、エンドポイントからルートテーブルの関連付けを (エンドポイントを変更することで) 削除するか、エンドポイントを削除するときに自動的に削除されます。

AWS では、トラフィックと一致する最も具体的なルートを使用して、トラフィックをルーティングする方法を決定します (最長プレフィックス一致)。ルートテーブルに、インターネットゲートウェイを指すすべてのインターネットトラフィック (0.0.0.0/0) の既存のルートがある場合、エンドポイントルートではサービスへのすべてのトラフィックが優先されます。これは、サービスの IP アドレス範囲が 0.0.0.0/0 よりも具体的であるためです。他のすべてのインターネットトラフィックは、他のリージョンのサービスへのトラフィックを含めて、インターネットゲートウェイに移動します。

ただし、インターネットゲートウェイまたは NAT デバイスを指す IP アドレス範囲への、既存のより具体的なルートがある場合、そのルートが優先されます。サービスで使用されている IP アドレス範囲と同じ IP アドレス範囲への既存のルートがある場合、そのルートが優先されます。

例: ルートテーブルのエンドポイントルート

このシナリオでは、ルーティングテーブルで、インターネットゲートウェイを指すすべてのインターネットトラフィック (0.0.0.0/0) に既存のルートがあります。別の AWS サービスへのサブネットからのトラフィックは、インターネットゲートウェイを使用します。

送信先 Target
10.0.0.0/16 ローカル
0.0.0.0/0 igw-1a2b3c4d

サポートされた AWS のサービスへのエンドポイントを作成し、ルートテーブルをエンドポイントに関連付けます。エンドポイントルートがルートテーブルに自動的に追加され、送信先は pl-1a2b3c4d となります (これがエンドポイントの作成先サービスを表す場合)。これで、同じリージョンのその AWS のサービスへのサブネットからのトラフィックはエンドポイントに移動し、インターネットゲートウェイには移動しません。他のすべてのインターネットトラフィックは、他のサービスへのトラフィックや、他のリージョンの AWS のサービスへのトラフィックを含めて、インターネットゲートウェイに移動します。

送信先 Target
10.0.0.0/16 ローカル
0.0.0.0/0 igw-1a2b3c4d
pl-1a2b3c4d vpce-11bb22cc

例: エンドポイントに対するルートテーブルの調整

このシナリオでは、サブネットのインスタンスがインターネットゲートウェイ経由で Amazon S3 バケットと通信するようにルートテーブルを設定しました。54.123.165.0/24 のルートを宛先とし (これが現在 Amazon S3 内にある IP アドレス範囲と仮定します)、インターネットゲートウェイをターゲットとするルートを追加しました。次に、エンドポイントを作成し、このルートテーブルをエンドポイントに関連付けます。エンドポイントルートがルートテーブルに自動的に追加されます。次に、describe-prefix-lists コマンドを使用して、Amazon S3 の IP アドレス範囲を表示します。この範囲は 54.123.160.0/19 で、これはインターネットゲートウェイを指す範囲ほど具体的ではありません。これは、IP アドレス範囲 54.123.165.0/24 へのトラフィックはインターネットゲートウェイを継続して使用し、 (これが Amazon S3 のパブリック IP アドレス範囲に含まれる限り) エンドポイントを使用しないことを意味します。

送信先 Target
10.0.0.0/16 ローカル
54.123.165.0/24 igw-1a2b3c4d
pl-1a2b3c4d vpce-11bb22cc

同じリージョンの Amazon S3 へのすべてのトラフィックがエンドポイントを通じてルーティングされるようにするには、ルートテーブルのルートを調整する必要があります。これを行うには、インターネットゲートウェイへのルートを削除します。これで、同じリージョンの Amazon S3 へのすべてのトラフィックはエンドポイントを使用し、ルートテーブルに関連付けられたサブネットはプライベートサブネットになります。

送信先 Target
10.0.0.0/16 ローカル
pl-1a2b3c4d vpce-11bb22cc

エンドポイントの制限

エンドポイントを使用するには、現在の制限に注意する必要があります。

  • エンドポイントは IPv4 トラフィックでのみサポートされています。

  • ネットワーク ACL のアウトバウンドルールでプレフィックスリスト ID を使用して、エンドポイントで指定されたサービスへのアウトバウンドトラフィックを許可または拒否することはできません。ネットワーク ACL ルールがトラフィックを制限する場合は、代わりにサービスの CIDR ブロック (IP アドレス範囲) を指定する必要があります。ただし、アウトバウンドセキュリティグループのルールでプレフィックスリスト ID を使用できます。詳細については、「セキュリティグループ」を参照してください。

  • 同じリージョン内のエンドポイントのみがサポートされています。別のリージョンで、VPC と AWS サービス間のエンドポイントを作成することはできません。

  • エンドポイントにタグを付けることはできません。

  • 1 つの VPC から別の VPC にエンドポイントを転送したり、1 つのサービスから別のサービスにエンドポイントを転送することはできません。

  • エンドポイントの接続を、VPC から延長することはできません。VPN 接続、VPC ピア接続、AWS Direct Connect 接続、または VPC の ClassicLink 接続のもう一方の側のリソースは、エンドポイントを使用してエンドポイントサービスのリソースと通信することはできません。

  • VPC 内で DNS 解決を有効にするか、ご自身で所有する DNS サーバーを使用している場合は、Amazon S3 などの必要なサービスに送られる DNS リクエストが AWS により維持される IP アドレスに正しく解決されていることを確認する必要があります。詳細については、「VPC での DNS の使用」を参照してください。

Amazon S3 に固有の制限とルールについては、Amazon S3 におけるエンドポイント を参照してください。

DynamoDB に固有の制限とルールについては、Amazon DynamoDB のエンドポイント を参照してください。

エンドポイントの使用の管理

デフォルトでは、IAM ユーザーにはエンドポイントを使用するためのアクセス権限がありません。エンドポイントを作成、変更、説明、削除するアクセス権限をユーザーに付与する IAM ユーザーポリシーを作成できます。現在、いずれの ec2:*VpcEndpoint* API アクションまたは ec2:DescribePrefixLists アクションについても、リソースレベルのアクセス権限はサポートされていません。特定のエンドポイントまたはプレフィックスリストを使用するアクセス権限をユーザーに付与する IAM ポリシーを作成することはできません。詳細については、「8. VPC エンドポイントの作成と管理」の例を参照してください。

サービスへのアクセスの制御

エンドポイントを作成するときは、接続先のサービスへのアクセスを制御するエンドポイントポリシーを、エンドポイントにアタッチします。エンドポイントのポリシーは、JSON 形式で記述される必要があります。

Amazon S3 へのエンドポイントを使用する場合、Amazon S3 バケットポリシーを使用して、特定のエンドポイントまたは特定の VPC からのバケットへのアクセスを制御できます。詳細については、「Amazon S3 バケットポリシーの使用」を参照してください。

エンドポイントポリシーの使用

VPC エンドポイントポリシーは、エンドポイントを作成または変更するときにエンドポイントにアタッチする IAM リソースポリシーです。エンドポイントの作成時にポリシーをアタッチしない場合、サービスへのフルアクセスを許可するデフォルトのポリシーがアタッチされます。エンドポイントポリシーは、IAM ユーザーポリシーやサービス固有のポリシー (S3 バケットポリシーなど) を上書き、または置き換えません。これは、エンドポイントから指定されたサービスへのアクセスを制御するための別のポリシーです。

エンドポイントに複数のポリシーをアタッチすることはできませんが、ポリシーはいつでも変更できます。ポリシーを修正した場合、変更が適用されるまで数分かかることがある点に注意してください。詳細については、「エンドポイントの変更」を参照してください。ポリシーの詳細については、IAM ユーザーガイド の「IAM ポリシーの概要」を参照してください。

エンドポイントポリシーは、他の IAM ポリシーと同様にすることができます。ただし、以下のことに注意してください。

  • 指定されたサービスに関連するポリシーの一部のみが機能します。エンドポイントポリシーを使用して、VPC のリソースによる他のアクションの実行を許可することはできません。たとえば、Amazon S3 へのエンドポイント用のエンドポイントポリシーに EC2 アクションを追加しても、効果はありません。

  • ポリシーには、Principal 要素を含める必要があります。詳細については、IAM ユーザーガイド の「プリンシパル」を参照してください。

  • エンドポイントポリシーのサイズが 20,480 文字を超えることはできません (空白を含む)。

エンドポイントのポリシーの例については、以下のトピックを参照してください。

セキュリティグループ

デフォルトでは、特にアウトバウンドアクセスを制限していない限り、Amazon VPC セキュリティグループですべてのアウトバウンドトラフィックが許可されます。セキュリティグループのアウトバウンドルールが制限されている場合、VPC からエンドポイントで指定されたサービスへのアウトバウンドトラフィックを許可するルールを追加する必要があります。これを行うには、アウトバウンドルールでサービスのプレフィックスリスト ID を宛先として使用できます。詳細については、「セキュリティグループの変更」を参照してください。

エンドポイントの使用

Amazon VPC を使用して、エンドポイントの作成および管理を行うことができます。

エンドポイントの作成

エンドポイントを作成するには、エンドポイントを作成する VPC と、接続を確立するサービスを指定する必要があります。また、ポリシーをエンドポイントにアタッチして、エンドポイントで使用されるルートテーブルを指定することもできます。

エンドポイントを作成するには

  1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。

  2. ナビゲーションペインで、[Endpoints] を選択します。

  3. [Create Endpoint] を選択します。

  4. ウィザードの最初のステップで、次の情報を入力し、[Next Step] を選択します。

    • エンドポイントおよびサービスを作成して接続する VPC を選択します

    • ポリシーのタイプを選択します。デフォルトのオプションである [Full Access] のみそのまま使用して、サービスへのフルアクセスを許可できます。または、[Custom] を選択し、AWS Policy Generator を使用してカスタムポリシーを作成するか、独自のポリシーをカスタムウィンドウに入力することもできます。

  5. ウィザードの 2 番目のステップで、エンドポイントで使用されるルートテーブルを選択します。ウィザードは、サービスへのトラフィックをエンドポイントに対して示すテーブルにルートを自動的に追加します。終了したら、[Create Endpoint] を選択します。

VPC ウィザードを使用して新しい VPC を作成し、同時にエンドポイントを作成することができます。エンドポイントで使用されるルートテーブルを指定する代わりに、エンドポイントにアクセスするサブネットを指定します。ウィザードは、これらのサブネットに関連付けられたルートテーブルにエンドポイントルートを追加します。

VPC ウィザードを使用して VPC およびエンドポイントを作成するには

  1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。

  2. Amazon VPC ダッシュボードで、[VPC ウィザードの起動] を選択します。

  3. ニーズに合った VPC 設定を選択し、[Select] を選択します。設定の種類の詳細については、「シナリオと例」を参照してください。

  4. ウィザードの 2 番目のページで、必要に応じて VPC 設定を入力します。[Add Endpoint] を選択し、次の情報を入力します。

    • 接続先のサービスを選択します。

    • [Subnet] リストから、エンドポイントにアクセスできるサブネットを選択します。サブネットに関連付けられたルートテーブルには、エンドポイントルートが含まれます。

    • [Policy] リストからポリシーのタイプを選択します。デフォルトのオプションである [Full Access] のみそのまま使用して、サービスへのフルアクセスを許可できます。または、[Custom] を選択し、AWS Policy Generator を使用してカスタムポリシーを作成するか、独自のポリシーをカスタムウィンドウに入力します。

  5. 該当する場合は、ウィザードの手順の残りを完了した後、[Create VPC] をクリックします。

セキュリティグループの変更

VPC セキュリティグループでアウトバウンドトラフィックを制限している場合は、AWS サービスへのトラフィックがインスタンスから送信することを許可するルールを追加する必要があります。

エンドポイントのアウトバウンドルールを追加するには

  1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。

  2. ナビゲーションペインで、[Security Groups] を選択します。

  3. VPC セキュリティグループを選択して、[Outbound Rules] タブを選択し、[Edit] を選択します。

  4. [Type] リストからトラフィックのタイプを選択し、必要に応じてポート範囲を入力します。たとえば、インスタンスを使用して Amazon S3 からオブジェクトを取得する場合、[Type] リストから [HTTPS] を選択します。

  5. [Destination] リストには、使用できる AWS サービスのプレフィックスリスト ID と名前が表示されます。エンドポイントサービスのプレフィックスリスト ID を選択するか、または入力します。

  6. [Save] を選択します。

セキュリティグループの詳細については、VPC のセキュリティグループ を参照してください。

エンドポイントの変更

ポリシーを変更または削除し、エンドポイントで使用されるルートテーブルを追加または削除することで、エンドポイントを変更できます。

エンドポイントに関連付けられたポリシーを変更するには

  1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。

  2. ナビゲーションペインで、[Endpoints] を選択します。

  3. エンドポイントを選択して、[Actions] を選択し、[Edit Policy] を選択します。

  4. ダイアログボックスで、[Full Access] を選択してフルアクセスを許可できます。または、[Custom] を選択し、AWS Policy Generator を使用してカスタムポリシーを作成するか、独自のポリシーをカスタムウィンドウに入力します。完了したら、[Save Policy] を選択します。

    注記

    変更が適用されるまで数分かかることがあります。

エンドポイントで使用されるルートテーブルを追加または削除するには

  1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。

  2. ナビゲーションペインで、[Endpoints] を選択します。

  3. VPC endpoint を選択して、[Actions] を選択し、[Choose Route Tables] を選択します。

  4. ダイアログボックスで、必要なルートテーブルを選択または選択解除してから、[Save] を選択します。

エンドポイントの説明

Amazon VPC コンソールを使用してエンドポイントを表示し、各エンドポイントに関する情報を表示できます。

エンドポイントに関する情報を表示するには

  1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。

  2. ナビゲーションペインで、[Endpoints] を選択します。

  3. エンドポイントを選択します。

  4. [Summary] タブで、エンドポイントに関する情報を表示できます。たとえば、[Service] フィールドでは、サービスのプレフィックスリスト名を取得できます。

    [Route Tables] タブでは、エンドポイントで使用されるルートテーブルに関する情報を表示できます。[Policy] タブでは、エンドポイントにアタッチされた IAM ポリシーを表示できます。

    注記

    [Policy] タブでは、エンドポイントのポリシーのみが表示されます。ここには、エンドポイントを操作するアクセス権限を持っている IAM ユーザー用に IAM ポリシーに関する情報は表示されません。また、サービス固有のポリシー (たとえば S3 バケットポリシー) も表示されません。

エンドポイントの削除

エンドポイントが不要になった場合には、それを削除することができます。エンドポイントを削除すると、エンドポイントで使用されたルートテーブルのエンドポイントルートも削除されますが、エンドポイントが存在する VPC に関連付けらたセキュリティグループに影響はありません。

エンドポイントを削除するには

  1. https://console.aws.amazon.com/vpc/にある Amazon VPC コンソールを開きます。

  2. ナビゲーションペインで、[Endpoints] を選択します。

  3. エンドポイントを選択して、[Actions] を選択し、[Delete Endpoint] を選択します。

  4. 確認ダイアログボックスで、[Yes, Delete] を選択します。

API と CLI の概要

このページで説明しているタスクは、コマンドラインツールまたは Amazon EC2 クエリ API を使用して実行できます。

VPC endpoint の作成

AWS サービスのプレフィックスリストの名前、ID、IP アドレス範囲の取得

VPC endpoint の変更

VPC endpoint の説明

VPC endpoint の作成に使用できる AWS サービスのリストの取得

VPC endpoint の削除