目次
AWS RAM(Resource Access Manager)の特徴
RAM は、組織内の AWS アカウント間または AWS Organizations 内の組織単位 (OU) 間で、IAM ロールおよび IAM ユーザー間でリソースを共有できるようにします。
共有できるリソースは、Aurora、EC2インスタンス、ACMのプライベートCA、Route 53、サブネットなどです。
RAM(Resource Access Manager)にもコマンドライン(RAM CLI)があり、コマンドラインから設定等が可能です。
【例】サブネットを共有する
共有できるリソースを確認したらサブネットも共有することができます。マルチアカウント戦略で他の AWS アカウントとサブネットを共有して、そのサブネット上で EC2 インスタンスを構築したりできるようです。
RAM で直接共有するものと共有された土台の上で各自自分で作るものがある
上記 AWS 公式サイトを確認すると、RAM で直接共有されるものと、共有された土台の上で各 AWS アカウントが自分でリソースを作成して利用するものがあります。
例えば、EC2 インスタンスについては以下が共有できると上の公式サイトにはあります。
- キャパシティ予約
ec2:CapacityReservation - 専用ホスト
ec2:DedicatedHost - プレイスメントグループ
ec2:PlacementGroup
これらは EC2 インスタンスそのものではありません。その一方、同じく RAM で共有できるサブネットには以下の記述があります。
https://docs.aws.amazon.com/ja_jp/ram/latest/userguide/shareable.html#shareable-vpc
サブネットを一元的に作成して管理し、自分の組織内の AWS アカウント と共有します。これにより、複数 AWS アカウント がそれらのアプリケーションリソースを一元管理された VPC に起動できます。これらのリソースには、Amazon EC2 インスタンス、Amazon Relational Database Service (RDS) データベース、Amazon Redshift クラスター、 AWS Lambda 関数が含まれます。詳細については、Amazon VPC ユーザーガイドの「共有 VPC の使用」を参照してください。
注記
リソース共有を作成する際にサブネットを含めるには、
ram:CreateResourceShareに加えてec2:DescribeSubnetsおよびec2:DescribeVpcsのアクセス許可が必要です。デフォルトサブネットは共有できません。共有できるのは自分で作成したサブネットだけです。
例えば、アカウント A が RAM でサブネットを共有する。アカウント B がこのサブネットで EC2 インスタンスを起動して利用する。というような2つのレイヤーから構成されているようです。
通常、他のアカウントのリソースを利用しようと思ったら、VPC ピアリング接続を設定して Web サーバーから DB へアクセスをさせるというような構成になると思いますが、VPC ピアリング接続は不要で、他人の AWS アカウント?上の共有されたサブネット上にWebサーバーを構築して DB を利用することができるわけです。これはセキュリティ的にも運用管理的にも非常に便利な機能です。
コメント