AWS PrivateLink の概念 - Amazon Virtual Private Cloud

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS PrivateLink の概念

Amazon VPC を使用して、論理的に分離された仮想ネットワークである仮想プライベートクラウド (VPC) を定義できます。VPC 内のクライアントがその VPC 外の接続先に接続することを許可できます。例えば、VPC にインターネットゲートウェイを追加してインターネットへのアクセスを許可したり、VPN 接続を追加してオンプレミスネットワークへのアクセスを許可したりします。または、AWS PrivateLink を使用します。これは、ユーザーの VPC 内のクライアントがプライベート IP アドレスを使用して、他の VPC 内のサービスとリソースへの接続を、それらがユーザーの VPC 内で直接ホストされているかのように行うことを可能にします。

AWS PrivateLink の使用を開始する際に理解しておくべき重要な概念を次に示します。

アーキテクチャ図

次の図は、AWS PrivateLink の仕組みの大まかな概要を示しています。コンシューマーが、プロバイダーによってホストされるエンドポイントサービスとリソースに接続するための VPC エンドポイントを作成します。

サービスコンシューマーが、プロバイダーによってホストされるエンドポイントサービスとリソースに接続するための VPC エンドポイントを作成します。

プロバイダー

プロバイダーに関連する概念を理解します。

サービスプロバイダー

サービスプロバイダーはサービスの所有者です。サービスプロバイダーには、AWS、AWS パートナー、および他の AWS アカウント が含まれます。サービスプロバイダーは、EC2 インスタンスなどの AWS リソースを使用するか、オンプレミスサーバーを使用してサービスをホストできます。

リソースプロバイダー

リソースプロバイダーはリソース (データベースや Amazon EC2 インスタンスなど) の所有者です。リソースプロバイダーには、AWS サービス、AWS パートナー、その他の AWS アカウントが含まれます。リソースプロバイダーは、VPC 内またはオンプレミスでリソースをホストできます。

エンドポイントサービス

サービスプロバイダーは、リージョン内でそのサービスを利用できるようにするためのエンドポイントサービスを作成します。サービスプロバイダーは、エンドポイントサービスを作成するときにロードバランサーを指定する必要があります。ロードバランサーは、サービスコンシューマーからリクエストを受け取ってサービスにルーティングします。

デフォルトでは、サービスコンシューマーはエンドポイントサービスを使用できません。特定の AWS プリンシパルがエンドポイントサービスに接続できるようにする許可を追加する必要があります。

サービス名

各エンドポイントサービスはサービス名で識別されます。サービスコンシューマーは、VPC エンドポイントを作成するときに、サービスの名前を指定する必要があります。サービスコンシューマーは、AWS のサービス のサービス名をクエリできます。サービスプロバイダーは、自社のサービスの名前をサービスコンシューマーと共有する必要があります。

サービスの状態

エンドポイントサービスの可能な状態は次のとおりです。

  • 保留中 - エンドポイントサービスが作成されています。

  • 利用可能 - エンドポイントサービスが利用可能です。

  • 失敗 - エンドポイントサービスを作成できませんでした。

  • 削除中 - サービスプロバイダーがエンドポイントサービスを削除し、削除処理が進行中です。

  • 削除済み - エンドポイントサービスが削除されました。

リソース設定

リソースプロバイダーは、リソースを共有するためのリソース設定を作成します。リソース設定は、データベースなどの単一のリソースや、リソースのグループを表す論理オブジェクトです。リソースには、IP アドレス、ドメイン名ターゲット、または Amazon Relational Database Service (Amazon RDS) データベースなどがあります。

リソースを他のアカウントと共有する場合は、リソースプロバイダーが AWS Resource Access Manager (AWS RAM) リソース共有を通じてリソースを共有し、他のアカウント内の特定の AWS プリンシパルがリソース VPC エンドポイント経由でリソースに接続できるようにする必要があります。

リソース設定は、プリンシパルがサービスネットワーク VPC エンドポイント経由で接続するサービスネットワークに関連付けることができます。

リソースゲートウェイ

リソースゲートウェイは、リソースの共有元である VPC へのイングレスポイントです。プロバイダーは、VPC からリソースを共有するためのリソースゲートウェイを作成します。

サービスまたはリソースコンシューマー

サービスコンシューマーは、サービスまたはリソースのユーザーです。コンシューマーは、その VPC またはオンプレミスからエンドポイントサービスやリソースにアクセスできます。

VPC エンドポイント

コンシューマーは、その VPC をエンドポイントサービスまたはリソースに接続するための VPC エンドポイントを作成します。コンシューマーが VPC エンドポイントを作成するときは、エンドポイントサービス、リソース、またはサービスネットワークを指定する必要があります。VPC エンドポイントには複数のタイプがあります。必要なタイプの VPC エンドポイントを作成する必要があります。

  • Interface - TCP または UDP トラフィックをエンドポイントサービスに送信するためのインターフェイスエンドポイントを作成します。エンドポイントサービス宛てのトラフィックは DNS を使用して解決されます。

  • GatewayLoadBalancer - プライベート IP アドレスを使用して仮想アプライアンスのフリートにトラフィックを送信するための Gateway Load Balancer エンドポイントを作成します。ルートテーブルを使用して、VPC から Gateway Load Balancer エンドポイントにトラフィックをルーティングします。Gateway Load Balancer は、トラフィックを仮想アプライアンスに分散し、需要に応じてスケールできます。

  • Resource - 共有されたリソースや別の VPC に格納されているリソースにアクセスするためのリソースエンドポイントを作成します。リソースエンドポイントを使用することで、データベース、Amazon EC2 インスタンス、アプリケーションエンドポイント、ドメイン名ターゲット、または別の VPC 内やオンプレミス環境内のプライベートサブネットにある IP アドレスなどのリソースへのプライベートかつセキュアなアクセスが可能になります。リソースエンドポイントにはロードバランサーが必要なく、リソースに直接アクセスできます。

  • Service network - ユーザーが作成した、またはユーザーと共有されたサービスネットワークにアクセスするためのサービスネットワークエンドポイントを作成します。単一のサービスネットワークエンドポイントを使用して、サービスネットワークに関連付けられている複数のリソースやサービスにプライベートかつセキュアにアクセスできます。

Gateway という別のタイプの VPC エンドポイントがあり、この VPC エンドポイントは Amazon S3 または DynamoDB にトラフィックを送信するためのゲートウェイエンドポイントを作成します。ゲートウェイエンドポイントは、他のタイプの VPC エンドポイントとは異なり、AWS PrivateLink を使用しません。詳細については、「ゲートウェイエンドポイント」を参照してください。

エンドポイントのネットワークインターフェイス

エンドポイントネットワークインターフェイスは、エンドポイントサービス、リソース、またはサービスネットワーク宛てのトラフィックのエントリポイントとして機能する、リクエスタマネージド型のネットワークインターフェイスです。VPC エンドポイントの作成時に指定した各サブネットに、エンドポイントのネットワークインターフェイスを作成します。

VPC エンドポイントが IPv4 をサポートしている場合、エンドポイントのネットワークインターフェイスは IPv4 アドレスを持ちます。VPC エンドポイントが IPv6 をサポートしている場合、エンドポイントのネットワークインターフェイスは IPv6 アドレスを持ちます。エンドポイントのネットワークインターフェイスの IPv6 アドレスに、インターネットからアクセスすることはできません。エンドポイントのネットワークインターフェイスを IPv6 アドレスで記述する場合は、denyAllIgwTraffic が有効になっていることに注意してください。

エンドポイントポリシー

VPC エンドポイントポリシーは、VPC エンドポイントにアタッチする IAM リソースポリシーです。これは、VPC エンドポイントを使用してエンドポイントサービスにアクセスできるプリンシパルを決定します。デフォルトの VPC エンドポイントポリシーでは、すべてのリソースに対して、VPC エンドポイント経由でのすべてのプリンシパルによるすべてのアクションが許可されます。

エンドポイントの状態

インターフェイス VPC エンドポイントを作成すると、エンドポイントサービスが接続リクエストを受け取ります。サービスプロバイダーは、リクエストを受け入れるか、または拒否できます。サービスプロバイダーがリクエストを受け入れると、VPC エンドポイントが利用可能状態になった後でサービスコンシューマーがその VPC エンドポイントを使用できます。

VPC エンドポイントの可能な状態は次のとおりです。

  • 承諾の保留中 - 接続リクエストが保留中です。これは、リクエストが手動で受け入れられた場合の初期状態です。

  • 保留中 - サービスプロバイダーが接続リクエストを受け入れました。これは、リクエストが自動で受け入れられた場合の初期状態です。サービスコンシューマーが VPC エンドポイントを変更すると、VPC エンドポイントはこの状態に戻ります。

  • 利用可能 - VPC エンドポイントが利用可能です。

  • 却下 – サービスプロバイダーが接続リクエストを却下しました。サービスプロバイダーは、接続が使用可能になった後にその接続を拒否することもできます。

  • 期限切れ - 接続リクエストの有効期限が切れました。

  • 失敗 - VPC エンドポイントを利用可能にできませんでした。

  • 削除中 - サービスコンシューマーが VPC エンドポイントを削除し、削除処理が進行中です。

  • 削除済み - VPC エンドポイントが削除されました。

AWS PrivateLink API は、考えられる状態をキャメルケースを使用して返します。

VPC からのトラフィックは、VPC エンドポイントとエンドポイントサービスまたはリソース間の接続を使用してエンドポイントサービスまたはリソースに送信されます。VPC エンドポイントとエンドポイントサービスまたはリソース間のトラフィックは、パブリックインターネットを経由することなく AWS ネットワーク内にとどまります。

サービスプロバイダーは、サービスコンシューマーがエンドポイントサービスにアクセスできるように許可を追加します。サービスコンシューマーが接続を開始すると、サービスプロバイダーは接続リクエストを承諾または拒否します。リソースの所有者またはサービスネットワークの所有者は、コンシューマーがリソースまたはサービスネットワークにアクセスできるように、AWS Resource Access Manager 経由でリソース設定またはサービスネットワークをコンシューマーと共有します。

インターフェイス VPC エンドポイントでは、コンシューマーがエンドポイントポリシーを使用して、エンドポイントサービスやリソースにアクセスするために VPC エンドポイントを使用できる IAM プリンシパルを制御できます。

プライベートホストゾーン

ホストゾーンは、ドメインまたはサブドメインのトラフィックをルーティングする方法を定義する DNS レコードのコンテナです。パブリックホストゾーンでは、インターネット上でトラフィックをルーティングする方法をレコードが指定します。プライベートホストゾーンでは、VPC 内でトラフィックをルーティングする方法をレコードが指定します。

ドメイントラフィックを VPC エンドポイントにルーティングするように Amazon Route 53 を設定できます。詳細については、「ドメイン名を使用してトラフィックを VPC エンドポイントにルーティングする」を参照してください。

Route 53 を使用してスプリットホライズン DNS を設定できます。この場合、AWS PrivateLink を利用したエンドポイントサービスと公開ウェブサイトの両方に同じドメイン名を使用します。コンシューマー VPC からのパブリックホスト名の DNS リクエストは、エンドポイントのネットワークインターフェイスのプライベート IP アドレスに解決されますが、VPC の外部からのリクエストは引き続きパブリックエンドポイントに解決されます。詳細については、「トラフィックをルーティングするための DNS メカニズムおよび AWS PrivateLink デプロイのフェイルオーバーの有効化」を参照してください。