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

ゲートウェイ VPC エンドポイント

ゲートウェイエンドポイントを作成して設定するには、以下の一般的な手順に従います。

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

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

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

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

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

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

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

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

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

エンドポイントを作成または変更するときは、エンドポイントを通じてサービスにアクセスするために使用する 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 を使用するか、Amazon 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

ゲートウェイエンドポイントの制限

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

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

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

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

  • エンドポイントは IPv4 トラフィックのみをサポートします。

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

  • VPC あたりに作成できるエンドポイントの数には制限があります。詳細については、「VPC エンドポイント」を参照してください。

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

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

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

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

ゲートウェイエンドポイントの作成

エンドポイントを作成するには、エンドポイントを作成する VPC と、接続を確立するサービスを指定する必要があります。

コンソールを使用してゲートウェイエンドポイントを作成するには

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

  2. ナビゲーションペインで、[Endpoints]、[Create Endpoint] の順に選択します。

  3. [Service Name] で、接続先のサービスを選択します。DynamoDB または Amazon S3 へのゲートウェイエンドポイントを作成するには、[Type] 例に [Gateway] と表示されていることを確認します。

  4. 次の情報を入力し、[Create endpoint] を選択します。

    • [VPC] で、エンドポイントを作成する先の VPC を選択します。

    • [Configure route tables] で、エンドポイントで使用するルートテーブルを選択します。選択したルートテーブルに、サービスへのトラフィックを対象とするルートが自動的に追加されます。

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

エンドポイントの作成後に、その関連情報を表示できます。

コンソールを使用してゲートウェイエンドポイントに関する情報を表示するには

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

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

  3. エンドポイントに関する情報を表示するには、[Summary] を選択します。サービスのプレフィックスリスト名は [Service] で取得できます。

  4. エンドポイントで使用するルートテーブルに関する情報を表示するには、[Route Tables] を選択します。

  5. エンドポイントにアタッチされた IAM ポリシーを表示するには、[Policy] を選択します。

    注記

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

AWS CLI を使用してエンドポイントを作成および表示するには

  1. describe-vpc-endpoint-services コマンドを使用して使用可能なサービスのリストを取得します。返された出力で、接続先のサービスの名前をメモします。serviceType フィールドは、インターフェイスエンドポイントまたはゲートウェイエンドポイントを介してサービスに接続するかどうかを示します。

    aws ec2 describe-vpc-endpoint-services
    { "serviceDetailSet": [ { "serviceType": [ { "serviceType": "Gateway" } ...
  2. ゲートウェイエンドポイント (Amazon S3 など) を作成するには、create-vpc-endpoint コマンドを使用して、VPC ID、サービス名、およびエンドポイントを使用するルートテーブルを指定します。オプションとして、--policy-document パラメータを使用してサービスへのアクセスを制御するカスタムポリシーを指定できます。このパラメータを使用しない場合は、サービスへのフルアクセスを許可するデフォルトのポリシーがアタッチされます。

    aws ec2 create-vpc-endpoint --vpc-id vpc-1a2b3c4d --service-name com.amazonaws.us-east-1.s3 --route-table-ids rtb-11aa22bb
  3. describe-vpc-endpoints コマンドを使用してエンドポイントを記述します。

    aws ec2 describe-vpc-endpoints

AWS Tools for Windows PowerShell または API を使用して使用可能なサービスを記述するには

AWS Tools for Windows PowerShell または API を使用して VPC エンドポイント を作成するには

AWS Tools for Windows PowerShell または API を使用して 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 と名前が表示されます。AWS のサービスのプレフィックスリスト ID を選択するか、入力します。

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

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

コマンドラインまたは API を使用して、AWS のサービスのプレフィックスリスト名、ID、および IP アドレス範囲を取得するには

ゲートウェイエンドポイントの変更

ゲートウェイエンドポイントを変更するには、そのポリシーを変更または削除し、エンドポイントで使用されているルートテーブルを追加または削除します。

ゲートウェイエンドポイントに関連付けられているポリシーを変更するには

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

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

  3. [Actions]、[Edit policy] の順に選択します。

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

    注記

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

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

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

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

  3. [Actions]、[Manage route tables] の順に選択します。

  4. 該当するルートテーブルを選択または選択解除し、[Save] を選択します。

AWS CLI を使用してゲートウェイエンドポイントを変更するには

  1. describe-vpc-endpoints コマンドを使用してゲートウェイエンドポイントの ID を取得します。

    aws ec2 describe-vpc-endpoints
  2. 次の例では、modify-vpc-endpoint コマンドを使用してルートテーブル rtb-aaa222bb をゲートウェイエンドポイントに関連付け、ポリシードキュメントをリセットします。

    aws ec2 modify-vpc-endpoint --vpc-endpoint-id vpce-1a2b3c4d --add-route-table-ids rtb-aaa222bb --reset-policy

AWS Tools for Windows PowerShell または API を使用して VPC エンドポイント を変更するには