##目的
Re:Invent2018の期間中にResource Access ManagerでVPC(Subnet毎)が異なるAWSアカウント間で共有出来るによなったので試してみます。
今までは、フォワードプロキシなどアウトバウンド通信制御やZabbilxなど監視ソフトウェアが起動する管理用VPCを作る場合は、AWSアカウントごとに同じ構成を取る必要がありましたが、Shared VPCが出来るようになっため、1つの管理用VPCを複数アカウントで使い回すことができます。
今回は以下のような通信を確認したいと思います。
##前提
シェア元)
デフォルトVPCは共有できない
セキュリティグループは共有できない
シェア先)
起動できるサービスに制限がある(EC2,RDS,Lambdaなどが使用できる)
シェアされたVPCでサブネットの作成はできない
ルートテーブル、NACLはシェア元のものを使用する(編集できない)
共通)
お互いのアカウント間でセキュリティグループをソースとしたインバウンド設定は可能
###シェア先
Organizationsの組織内
or
Organizationsの組織外
###アカウントA(シェア元) ※Organizationsのマスターアカウント
Public Subnet/Private Subnetを作成する
NAT GatewayをPublic Subnetで起動する
Resource Access Manager(RAM)でVPC(Private Subnet)を共有する
###アカウントB(シェア先)
共有されたSubnetでEC2を起動する
アカウントAのNAT Gateway経由でインターネットアクセスができることを確認する
##試す
###重要
RAMの管理コンソールのSettingsで「Enable sharing within your AWS Organization」を有効にする
一度有効にすると全リージョンで有効になる
上記を設定せずに、リソースを共有すると以下のようなエラーがでてリソースの共有ができない。
Resource share creation has failed.
Orgazationsのマスターアカウントでないと設定できない
###共有リソースを作成する(アカウントA:シェア元)
Create resource share
共有先のAWSアカウントIDを入力してCreate resource shareをクリック
###疎通確認(アカウントB:シェア先)
VPCの画面でOwnerがシェア元のAWSアカウントとなっているVPCを確認する
EC2インスタンスを起動する
シェアされたVPCのPrivate Subnetを指定してEC2インスタンスを起動する
疎通確認
8c8590130da5:~ $ aws ssm start-session --target i-06d67857985475388
Starting session with SessionId: ssm-user-084c81a8f97caae8d
sh-4.2$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=1.59 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=1.21 ms
##約束
投稿内容は私個人の意見であり、所属企業・部門見解を代表するものではありません。