複数の から中央AWSサービスエンドポイントにプライベートにアクセスする VPCs - AWS 規範ガイダンス

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

複数の から中央AWSサービスエンドポイントにプライベートにアクセスする VPCs

作成者: Martin Guenthner (AWS) と Samuel Gordon (AWS)

コードリポジトリ: VPC Endpoint Sharing

環境:本稼働

テクノロジー: ネットワーキング、インフラストラクチャ

AWS サービス: AWS RAM、Amazon Route 53、Amazon SNS、AWSTransit Gateway、Amazon VPC

[概要]

環境のセキュリティおよびコンプライアンス要件では、Amazon Web Services (AWS) のサービスまたはエンドポイントへのトラフィックがパブリックインターネットを経由しないように指定される場合があります。このパターンは、中央ハブが複数の分散スポーク VPC に接続されているhub-and-spokeトポロジー用に設計されたソリューションですVPCs。このソリューションでは、 AWS PrivateLink を使用してハブアカウントでAWSサービスのインターフェイスVPCエンドポイントを作成します。次に、トランジットゲートウェイと分散型ドメインネームシステム (DNS) ルールを使用して、接続された 全体でエンドポイントのプライベート IP アドレスへのリクエストを解決しますVPCs。

このパターンでは、AWSTransit Gateway、インバウンド Amazon Route 53 Resolver エンドポイント、共有 Route 53 転送ルールを使用して、接続された のリソースからのDNSクエリを解決する方法について説明しますVPCs。エンドポイント、トランジットゲートウェイ、リゾルバー、転送ルールはハブアカウントで作成します。次に、AWSResource Access Manager (AWS RAM) を使用して、トランジットゲートウェイと転送ルールをスポーク と共有しますVPCs。提供されたAWS CloudFormation テンプレートは、ハブアンドスポーク にリソースをデプロイVPCして設定するのに役立ちますVPCs。

前提条件と制限

前提条件

  • Organizations の同じ組織で管理されているハブアカウントと 1 AWS つ以上のスポークアカウント。詳細については、「組織の作成と管理」 を参照してください。

  • AWS Resource Access Manager (AWS RAM) は、AWSOrganizations の信頼されたサービスとして設定されています。詳細については、「AWSOrganizations を他の AWSのサービスで使用する」を参照してください。

  • DNS 解決は、ハブアンドスポーク で有効にする必要がありますVPCs。詳細については、 (Amazon Virtual Private Cloud ドキュメント) DNSの属性VPCを参照してください。

制約事項

  • このパターンは、同じAWSリージョンのハブアカウントとスポークアカウントを接続します。マルチリージョンデプロイでは、リージョンごとにこのパターンを繰り返す必要があります。

  • AWS サービスは、インターフェイスVPCエンドポイント PrivateLink として と統合する必要があります。完全なリストについては、 (PrivateLink ドキュメント) AWS と統合されている のサービスAWS PrivateLinkを参照してください。

  • アベイラビリティーゾーンのアフィニティは保証されません。例えば、アベイラビリティーゾーン A からのクエリは、アベイラビリティーゾーン B からの IP アドレスで応答する場合があります。

  • VPC エンドポイントに関連付けられたElastic Network Interface には、1 秒あたり 10,000 クエリの制限があります。

アーキテクチャ

ターゲットテクノロジースタック

  • ハブAWSアカウントのVPCハブ

  • スポークAWSアカウントVPCs内の 1 つ以上のスポーク

  • ハブアカウントの 1 つ以上のインターフェイスVPCエンドポイント

  • ハブアカウントの着信と発信のルート 53 リゾルバー

  • ハブアカウントにデプロイされ、スポークアカウントと共有されるルート 53 Resolver 転送ルール

  • ハブアカウントにデプロイされ、スポークアカウントと共有されるトランジットゲートウェイ

  • AWS ハブとスポークを接続する Transit Gateway VPCs

ターゲット アーキテクチャ

次のイメージは、このソリューションのサンプルアーキテクチャを示しています。このアーキテクチャでは、ハブアカウントの ルート 53 Resolver 転送ルールは、他のアーキテクチャコンポーネントと次のような関係にあります。

  1. 転送ルールは、 AWS VPCを使用してスポークと共有されますRAM。

  2. 転送ルールは、ハブ のアウトバウンドリゾルバーに関連付けられていますVPC。

  3. 転送ルールは、ハブ のインバウンドリゾルバーを対象としていますVPC。

スポークアカウントとハブアカウントのリソースを表示するアーキテクチャダイアグラム。

次のイメージは、サンプルアーキテクチャを経由するトラフィックフローを示しています。

  1. スポーク内の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスなどのリソースVPCが にDNSリクエストします<service>.<region>.amazonaws.com。リクエストは、スポークされた Amazon DNS Resolver によって受信されます。

  2. Route 53 転送ルールは、ハブアカウントから共有されVPC、スポーク に関連付けられ、リクエストを傍受します。

  3. ハブ ではVPC、アウトバウンドリゾルバーは転送ルールを使用して、リクエストをインバウンドリゾルバーに転送します。

  4. インバウンドリゾルバーは、ハブ VPC Amazon DNS Resolver を使用して、 の IP アドレスをVPCエンドポイントのプライベート IP アドレス<service>.<region>.amazonaws.comに解決します。VPC エンドポイントが存在しない場合、パブリック IP アドレスに解決されます。

スポーク内のリソースからハブ内のサービスエンドポイントVPCへのトラフィックフローVPC。

ツール

AWS ツールとサービス

  • AWS CloudFormation は、AWSリソースをセットアップし、迅速かつ一貫してプロビジョニングし、AWSアカウントとリージョン全体のライフサイクルを通じてリソースを管理するのに役立ちます。

  • Amazon Elastic Compute Cloud (Amazon EC2) は、AWSクラウドでスケーラブルなコンピューティング容量を提供します。仮想サーバーを必要な数だけ起動して、迅速にスケールアップまたはスケールダウンができます。

  • AWS Identity and Access Management (IAM) は、誰が認証され、誰に使用を許可されているかを制御することで、AWSリソースへのアクセスを安全に管理できます。

  • AWS Resource Access Manager (AWS RAM) は、 AWSアカウント間でリソースを安全に共有し、運用上のオーバーヘッドを減らし、可視性と監査可能性を提供します。

  • Amazon Route 53 は、可用性が高くスケーラブルなドメインネームシステム (DNS) ウェブサービスです。

  • AWS Systems Manager は、AWSクラウドで実行されているアプリケーションとインフラストラクチャの管理に役立ちます。アプリケーションとリソースの管理を簡素化し、運用上の問題を検出して解決する時間を短縮し、AWSリソースを大規模に安全に管理できます。

  • AWS Transit Gateway は、 VPCsとオンプレミスネットワークを接続する中央ハブです。

  • Amazon Virtual Private Cloud (Amazon VPC) は、定義した仮想ネットワークにAWSリソースを起動するのに役立ちます。この仮想ネットワークは、独自のデータセンターで運用する従来のネットワークに似ており、 のスケーラブルなインフラストラクチャを使用する利点がありますAWS。

その他のツールとサービス

  • nslookup は、DNSレコードのクエリに使用されるコマンドラインツールです。このパターンでは、このツールを使用してソリューションをテストします。

コードリポジトリ

このパターンのコードは GitHub、 vpc-endpoint-sharingリポジトリの で使用できます。このパターンには、次の 2 つのAWS CloudFormation テンプレートがあります。

  • ハブアカウントに以下のリソースをデプロイするためのテンプレート。

    • rSecurityGroupEndpoints – VPCエンドポイントへのアクセスを制御するセキュリティグループ。

    • rSecurityGroupResolvers — ルート 53 リゾルバーへのアクセスを制御するセキュリティグループ。

    • rKMSEndpointrSSMEndpoint、、 rEC2MessagesEndpoint- rSSMMessagesEndpointハブアカウントのインターフェイスVPCエンドポイントの例。ユースケースに合わせてこれらのエンドポイントをカスタマイズします。

    • rInboundResolver – ハブ Amazon Resolver に対するDNSクエリを解決する Route 53 DNS Resolver。

    • rOutboundResolver — クエリを着信リゾルバーに転送する発信ルート 53 リゾルバー。

    • rAWSApiResolverRule – すべてのスポーク と共有されている Route 53 Resolver 転送ルールVPCs。

    • rRamShareAWSResolverRule – スポークがrAWSApiResolverRule転送ルールVPCsを使用できるようにするAWSRAM共有。

    • *rVPC – 共有サービスのモデル化VPCに使用されるハブ 。

    • * rSubnet1 — ハブリソースを格納するプライベートサブネット。

    • *rRouteTable1 – ハブ のルートテーブルVPC。

    • *rRouteTableAssociation1 – ハブ のrRouteTable1ルートテーブルの場合VPC、プライベートサブネットの関連付け。

    • *rRouteSpoke – ハブからスポーク VPCへのルートVPC。

    • *rTgw – すべてのスポーク と共有されるトランジットゲートウェイVPCs。

    • *rTgwAttach – ハブがトラフィックVPCをrTgwトランジットゲートウェイにルーティングできるようにするアタッチメント。

    • *rTgwShare – スポークアカウントがrTgwトランジットゲートウェイを使用できるようにするAWSRAM共有。

  • スポークアカウントに以下のリソースをデプロイするためのテンプレート。

    • rAWSApiResolverRuleAssociation – スポークがハブアカウントで共有転送ルールVPCを使用できるようにする関連付け。

    • *rVPC – スポーク VPC。

    • * rSubnet1, rSubnet2, rSubnet3 — スポークプライベートリソースを格納するために使用される各アベイラビリティーゾーンのサブネット。

    • *rTgwAttach – スポークがトラフィックをrTgwトランジットゲートウェイVPCにルーティングできるようにするアタッチメント。

    • *rRouteTable1 – スポーク のルートテーブルVPC。

    • *rRouteEndpoints – スポーク内のリソースからトランジットゲートウェイVPCへのルート。

    • *rRouteTableAssociation1/2/3 – スポーク のrRouteTable1ルートテーブルの場合VPC、プライベートサブネットの関連付け。

    • *rInstanceRole – ソリューションをテストするために使用されるIAMロール。

    • *rInstancePolicy – ソリューションをテストするために使用されるIAMポリシー。

    • * rInstanceSg — ソリューションのテストに使用されたセキュリティグループ。

    • *rInstanceProfile – ソリューションをテストするために使用されるIAMインスタンスプロファイル。

    • *rInstance – AWS Systems Manager を介したアクセス用に事前設定されたEC2インスタンス。このインスタンスを使用してソリューションをテストします。

* これらのリソースはサンプルアーキテクチャをサポートしているため、既存のランディングゾーンにこのパターンを実装する場合は必要ない場合があります。

エピック

タスク説明必要なスキル

コードリポジトリを複製します。

  1. コマンドラインインターフェースで、作業ディレクトリをサンプルファイルを保存する場所に変更します。

  2. 次のコマンドを入力します。

    git clone https://github.com/aws-samples/vpc-endpoint-sharing.git
ネットワーク管理者、クラウドアーキテクト

テンプレートを変更します。

  1. クローンしたリポジトリで hub.yml ファイルと spoke.yml ファイルを開きます。

  2. これらのテンプレートにより、作成されたリソースを確認し、環境に合わせて必要に応じてテンプレートを調整してください。詳細なリストについては、「ツール」 のコードリポジトリセクションを参照してください。これらのリソースが既にアカウントにある場合は、 CloudFormation テンプレートから削除します。詳細については、「 テンプレートの操作 (CloudFormation ドキュメント)」を参照してください。

  3. hub.yml ファイルと spoke.yml ファイルを保存して閉じます。

ネットワーク管理者、クラウドアーキテクト
タスク説明必要なスキル

ハブリソースをデプロイする。

hub.yml テンプレートを使用して、 CloudFormation スタックを作成します。提示された場合、テンプレートのパラメータに値を提供します。詳細については、「スタックの作成 (CloudFormation ドキュメント)」を参照してください。

クラウドアーキテクト、ネットワーク管理者

スポーク・リソースをデプロイします。

spoke.yml テンプレートを使用して、 CloudFormation スタックを作成します。提示された場合、テンプレートのパラメータに値を提供します。詳細については、「スタックの作成 (CloudFormation ドキュメント)」を参照してください。

クラウドアーキテクト、ネットワーク管理者
タスク説明必要なスキル

AWS サービスへのプライベートDNSクエリをテストします。

  1. AWS Systems Manager の一機能である Session Manager を使用してrInstanceEC2インスタンスに接続します。詳細については、「Session Manager を使用して Linux インスタンスに接続する」 (Amazon EC2ドキュメント) を参照してください。

  2. ハブアカウントにVPCエンドポイントがあるAWSサービスの場合、 nslookup を使用して、インバウンド Route 53 Resolver のプライベート IP アドレスが返されていることを確認します。

    Amazon Systems Manager nslookup エンドポイントに到達するための使用例を次に示します。

    nslookup ssm.<region>.amazonaws.com
  3. AWS コマンドラインインターフェイス (AWS CLI) で、変更がサービス機能に影響を与えていないことを確認するのに役立つコマンドを入力します。コマンドのリストについては、AWSCLI「 コマンドリファレンス」を参照してください。

    たとえば、次のコマンドでは、Amazon Systems Manager のドキュメントのリストが返されます。

    aws ssm list-documents
ネットワーク管理者

AWS サービスへのパブリックDNSクエリをテストします。

  1. ハブアカウントにVPCエンドポイントがないAWSサービスの場合、 nslookupを使用してパブリック IP アドレスが返されていることを確認します。nslookup を使用して Amazon Simple Notification Service (Amazon SNS) エンドポイントに到達する例を次に示します。

    nslookup sns.<region>.amazonaws.com
  2. でAWSCLI、変更がサービス機能に影響を与えていないことを確認するのに役立つコマンドを入力します。コマンドのリストについては、AWSCLI「 コマンドリファレンス」を参照してください。

    例えば、Amazon SNSトピックがハブアカウントに存在する場合、次のコマンドはトピックのリストを返すはずです。

    aws sns list-topics
ネットワーク管理者

関連リソース