VPC を他のアカウントと共有する
VPC 共有を使用すると、複数の AWS アカウント で、Amazon EC2 インスタンス、Amazon Relational Database Service (RDS) データベース、Amazon Redshift クラスター、AWS Lambda 関数などのアプリケーションリソースを、共有および一元管理される Virtual Private Clouds (VPC) 内に作成できます。このモデルでは、VPC を所有するアカウント (所有者) は、 で同じ組織に属する他のアカウント (参加者) と 1 つまたは複数のサブネットを共有しますAWS Organizations サブネットが共有されると、参加者は共有しているサブネット内にある自分のアプリケーションリソースを表示、作成、変更、および削除できます。参加者は、他の参加者または VPC 所有者に属するリソースを表示、変更、または削除することはできません。
VPC を共有して、同じ信頼境界内にある高度な相互接続を必要とするアプリケーションに、VPC 内の暗黙的なルーティングを活用できます。これにより、作成および管理する VPC の数が減り、課金とアクセスコントロールに別のアカウントを使用できます。AWS PrivateLink、Transit Gateway、VPC ピアリングなどの接続機能を使用して共有の Amazon VPC に相互接続することで、ネットワークトポロジーをさらに簡素化できます。VPC 共有の利点の詳細については、「VPC 共有: 複数のアカウントと VPC 管理への新しいアプローチ
目次
共有 VPC の前提条件
組織の管理アカウントで、リソース共有を有効にしておく必要があります。リソース共有の有効化の詳細については、AWS RAM ユーザーガイドの「AWS Organizations での共有の有効化」を参照してください。
サブネットを共有する
デフォルト以外のサブネットを組織内の他のアカウントと共有できます。サブネットを共有するには、まず共有するサブネットを使用するリソース共有と、そのサブネットを共有する AWS アカウント、組織単位、または組織全体を作成します。リソース共有の作成の詳細については、AWS RAM ユーザーガイドの「リソース共有の作成」を参照してください。
コンソールを使用してサブネットを共有するには
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
ナビゲーションペインで、[Subnets] を選択します。
-
サブネットを選択してから、[Actions (アクション)]、[Share subnet (サブネットの共有)] の順に選択します。
-
リソース共有を選択してから、[Share subnet (サブネットの共有)] を選択します。
AWS CLI を使用してサブネットを共有するには
create-resource-share および associate-resource-share コマンドを使用します。
アベイラビリティーゾーン間でのサブネットのマッピング
リソースがリージョンの複数のアベイラビリティーゾーンに分散されるようにするために、アベイラビリティーゾーンは各 アカウントの名前に個別にマッピングされます。たとえば、us-east-1a
アカウントのアベイラビリティーゾーン AWS の場所は、別の us-east-1a
アカウントのアベイラビリティーゾーン AWS の場所と異なる可能性があります。
VPC 共有のためにアカウント間でアベイラビリティーゾーンを調整するには、アベイラビリティーゾーンの一意で一貫性のある識別子である AZ ID を使用する必要があります。例えば、use1-az1
は us-east-1
リージョンのアベイラビリティーゾーンのうちの 1 つの AZ ID です。AZ ID を使用して、アカウント間でリソースの場所を区別できます。Amazon VPC コンソールで、各サブネットの AZ ID を確認できます。
次の図表は、アベイラビリティーゾーンのコードの AZ ID に対するマッピングが異なる 2 つのアカウントを示しています。

共有サブネットの共有を解除する
所有者は、いつでも参加者との共有サブネットの共有を解除できます。所有者が共有サブネットの共有を解除した後、以下のルールが適用されます。
-
既存の参加者リソースは非共有サブネットで引き続き実行される。
-
参加者は非共有サブネットに新しいリソースを作成できない。
-
参加者はサブネット内のリソースを変更、定義、削除できる。
-
参加者のリソースがまだ非共有サブネットにある場合、所有者は共有サブネットまたは共有サブネット VPC を削除できない。所有者は、参加者が非共有サブネット内のすべてのリソースを削除した後でのみ、サブネットまたは共有サブネット VPC を削除できます。
コンソールを使用してサブネットの共有を解除するには
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
ナビゲーションペインで、[Subnets] を選択します。
-
サブネットを選択してから、[Actions (アクション)]、[Share subnet (サブネットの共有)] の順に選択します。
-
[Actions (アクション)]、[Stop sharing (共有の停止)] の順に選択します。
AWS CLI を使用してサブネットの共有を解除するには
disassociate-resource-share コマンドを使用します。
共有サブネットの所有者の識別
参加者は、Amazon VPC コンソールまたはコマンドラインツールを使用して、共有しているサブネットを表示できます。
コンソールを使用してサブネット所有者を識別するには
Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 -
ナビゲーションペインで、[Subnets] を選択します。[Owner (所有者)] 列にサブネットの所有者が表示されます。
AWS CLI を使用してサブネット所有者を識別するには
describe-subnets および describe-vpcs コマンドを使用します。これらの出力に所有者の ID が含まれます。
VPC リソースを管理する
オーナーと参加者は、所有する VPC リソースに責任を負います。
所有者のリソース
VPC 所有者は、共有 VPC に関連付けられたリソースの作成、管理、削除に責任を負います。これらには、サブネット、ルートテーブル、ネットワーク ACL、ピアリング接続、ゲートウェイエンドポイント、インターフェイスエンドポイント、Amazon Route 53 Resolver エンドポイント、インターネットゲートウェイ、NAT ゲートウェイ、仮想プライベートゲートウェイ、Transit Gateway アタッチメントが含まれます。
VPC 所有者は、EC2 インスタンスやセキュリティグループなど、参加者が作成したリソースを変更または削除することはできません。VPC 所有者は、トラブルシューティングと監査を容易にするために、ネットワークインターフェイスの詳細と、参加者リソースにアタッチされているセキュリティグループを表示できます。VPC 所有者は、VPC、サブネット、およびネットワークインターフェイスのフローログのサブスクリプションを作成できます。
参加者のリソース
参加者は、共有 VPC 内のリソースの作成、管理、削除を実行できます。参加者は、EC2 インスタンス、Amazon RDS データベース、Elastic Load Balancing ロードバランサーなど、自らが VPC で作成するリソースを所有します。
参加者は、ルートテーブルやネットワーク ACL など、VPC 所有者が責任を負うリソースの詳細を表示できますが、変更することはできません。参加者は、他の参加者アカウントに属するリソースを表示したり変更したりはできません。参加者は、自分が所有するネットワークインターフェイスについてのみフローログサブスクリプションを作成できます。
参加者は、次のとおり、他の参加者または所有者に属するセキュリティグループを参照できます。
account-number
/security-group-id
参加者は、プライベートホストゾーンを共有 VPC に直接関連付けることはできません。VPC に関連付けられたプライベートホストゾーンの動作を制御する必要がある参加者は、次のソリューションを使用できます。
-
参加者は、プライベートホストゾーンを作成し、VPC 所有者と共有できます。プライベートホストゾーンの共有については、「Amazon Route 53 デベロッパーガイド」の「別の AWS アカウント で作成した VPC と作成したプライベートホストゾーンの関連付け」を参照してください。
-
VPC 所有者は、既に所有者が VPC に関連付けているプライベートホストゾーンを制御する、クロスアカウント IAM ロールを作成できます。所有者は、ロールを引き受けるのに必要な権限を、参加者のアカウントに付与できます。詳細については、「IAM ユーザーガイド」の「IAM チュートリアル: IAM ロールを使用した AWS アカウント 間のアクセス権の委任」を参照してください。そうして参加者のアカウントがロールを引き受けることができ、所有者が委任したロールの許可によって、プライベートホストゾーンを制御できます。
所有者と参加者の請求と計測
共有 VPC では、各参加者は、Amazon EC2 インスタンス、Amazon Relational Database Service データベース、Amazon Redshift クラスター、AWS Lambda 関数などのアプリケーションリソースに対して料金を支払います。参加者はアベイラビリティーゾーンのデータ転送、VPC ピアリング接続を介するデータ転送、AWS Direct Connect ゲートウェイを介するデータ転送に対しても料金を請求されます。VPC 所有者は、NAT ゲートウェイ、仮想プライベートゲートウェイ、トランジットゲートウェイ、AWS PrivateLink、および VPC エンドポイントでのデータ処理とデータ転送に対して時間単位料金が課金されます(該当する場合)。同じアベイラビリティーゾーン内のデータ転送(AZ ID で一意に識別される)は、通信リソースを所有しているアカウントにかかわらず無料です。
機能制限
VPC 共有の使用には、以下の制限があります。
-
所有者は、 の同じ組織内にある他のアカウントまたは組織単位とのみサブネットを共有できますAWS Organizations
-
所有者は、デフォルトの VPC 内にあるサブネットを共有できません。
-
参加者は、VPC を共有する他の参加者または VPC 所有者が所有するセキュリティグループを使用してリソースを起動することはできません。
-
VPC のデフォルトセキュリティグループは所有者に属しているため、参加者はデフォルトのセキュリティグループを使用してリソースを起動することはできません。
-
所有者は、他の参加者が所有するセキュリティグループを使用してリソースを起動することはできません。
-
参加者が共有サブネットでリソースを起動するときは、デフォルトのセキュリティグループに頼らずに、自分のセキュリティグループをリソースにアタッチする必要があります。参加者は、VPC 所有者に属しているため、デフォルトのセキュリティグループを使用することはできません。
-
参加者は、所有していない VPC に Route53 Resolver エンドポイントを作成することはできません。インバウンドエンドポイントなどの VPC レベルのリソースを作成できるのは VPC 所有者のみです。
-
VPC タグ、および共有 VPC 内のリソースのタグは、参加者と共有されません。
-
サブネット所有者のみが、共有サブネットにトランジットゲートウェイをアタッチできます。参加者はできません。
-
参加者は、共有 VPC 内に Application Load Balancer および Network Load Balancer を作成できますが、共有されていないサブネットで実行されているターゲットを登録することはできません。
-
Gateway Load Balancer の作成時に、共有サブネットを選択できるのはサブネット所有者のみです。参加者はできません。
-
サービスクォータはアカウントごとに適用されます。