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

作成者: 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。

前提条件と制限

前提条件

制約事項

アーキテクチャ

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

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

次のイメージは、このソリューションのサンプルアーキテクチャを示しています。このアーキテクチャでは、ハブアカウントの ルート 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 ツールとサービス

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

コードリポジトリ

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

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

エピック

タスク 説明 必要なスキル
コードリポジトリを複製します。 コマンドラインインターフェースで、作業ディレクトリをサンプルファイルを保存する場所に変更します。次のコマンドを入力します。git clone https://github.com/aws-samples/vpc-endpoint-sharing.git ネットワーク管理者、クラウドアーキテクト
テンプレートを変更します。 クローンしたリポジトリで hub.yml ファイルと spoke.yml ファイルを開きます。これらのテンプレートにより、作成されたリソースを確認し、環境に合わせて必要に応じてテンプレートを調整してください。詳細なリストについては、「ツール」 のコードリポジトリセクションを参照してください。これらのリソースが既にアカウントにある場合は、 CloudFormation テンプレートから削除します。詳細については、「 テンプレートの操作 (CloudFormation ドキュメント)」を参照してください。hub.yml ファイルと spoke.yml ファイルを保存して閉じます。 ネットワーク管理者、クラウドアーキテクト
タスク 説明 必要なスキル
ハブリソースをデプロイする。 hub.yml テンプレートを使用して、 CloudFormation スタックを作成します。提示された場合、テンプレートのパラメータに値を提供します。詳細については、「スタックの作成 (CloudFormation ドキュメント)」を参照してください。 クラウドアーキテクト、ネットワーク管理者
スポーク・リソースをデプロイします。 spoke.yml テンプレートを使用して、 CloudFormation スタックを作成します。提示された場合、テンプレートのパラメータに値を提供します。詳細については、「スタックの作成 (CloudFormation ドキュメント)」を参照してください。 クラウドアーキテクト、ネットワーク管理者
タスク 説明 必要なスキル
AWS サービスへのプライベートDNSクエリをテストします。 AWS Systems Manager の一機能である Session Manager を使用してrInstanceEC2インスタンスに接続します。詳細については、「Session Manager を使用して Linux インスタンスに接続する」 (Amazon EC2ドキュメント) を参照してください。ハブアカウントにVPCエンドポイントがあるAWSサービスの場合、 nslookup を使用して、インバウンド Route 53 Resolver のプライベート IP アドレスが返されていることを確認します。Amazon Systems Manager nslookup エンドポイントに到達するための使用例を次に示します。nslookup ssm..amazonaws.comAWS コマンドラインインターフェイス (AWS CLI) で、変更がサービス機能に影響を与えていないことを確認するのに役立つコマンドを入力します。コマンドのリストについては、AWSCLI「 コマンドリファレンス」を参照してください。たとえば、次のコマンドでは、Amazon Systems Manager のドキュメントのリストが返されます。aws ssm list-documents ネットワーク管理者
AWS サービスへのパブリックDNSクエリをテストします。 ハブアカウントにVPCエンドポイントがないAWSサービスの場合、 nslookupを使用してパブリック IP アドレスが返されていることを確認します。nslookup を使用して Amazon Simple Notification Service (Amazon SNS) エンドポイントに到達する例を次に示します。nslookup sns..amazonaws.comでAWSCLI、変更がサービス機能に影響を与えていないことを確認するのに役立つコマンドを入力します。コマンドのリストについては、AWSCLI「 コマンドリファレンス」を参照してください。例えば、Amazon SNSトピックがハブアカウントに存在する場合、次のコマンドはトピックのリストを返すはずです。aws sns list-topics ネットワーク管理者

関連リソース