AWS Resource Access Manager (AWS RAM)
1. サービス概要¶
AWS Resource Access Manager (AWS RAM)は、複数の AWS アカウント間でリソースを安全に共有するためのサービスである。
AWS Organizations を用いたマルチアカウント構成や、外部アカウントとの共有においても、RAM を使うことで信頼できる方法でリソースをシームレスに共有できる。
主なユースケースとして、
- VPC サブネットや Transit Gateway の共有
- License Manager で管理するソフトウェアライセンスの共同利用
- ロードバランサや Route 53 のホストゾーン
- さまざまなサービスのリソースを組織全体で効率的に利用するケース
などが挙げられます。
2. 主な特徴と機能¶
2.1 中央集約的なリソース共有¶
RAM を利用すると、メインとなるアカウントが VPC やサブネットといったリソースを「リソース共有」として定義し、他のアカウントがそれを使えるようにする仕組みを提供する。
- 一元管理: リソース共有を一括で設定し、組織全体に波及
- 重複コストの削減: リソースを使い回すことで、同等機能を再作成する必要性を低減
2.2 AWS Organizations とのシームレス連携¶
AWS Organizations を用いたマルチアカウント構成では、組織単位(OU)や特定のメンバーアカウントを選択し、その範囲で RAM の共有設定を容易に行える。
これにより、大規模環境でもスケーラブルかつセキュアにリソースを分配できる。
2.3 多種多様なリソースタイプをサポート¶
AWS RAM は以下を含む複数のリソースを共有可能である:
- VPC サブネット: 他アカウントの EC2 インスタンスが同一 VPC 内で稼働するよう設定
- AWS Transit Gateway: マルチアカウントでのネットワークハブを効率的に共有
- Route 53 Hosted Zone: DNS ゾーンの共同管理
- License Manager: ソフトウェアライセンスの利用枠を組織横断で割り当て
2.4 アクセスコントロールとポリシー¶
リソース共有はリソースシェアポリシーによって管理され、共有先のアカウントがどのようにリソースを使用できるかを定義する。
AWS Organizations との連携で、組織全体に自動適用することも可能である。
2.5 外部アカウント共有にも対応¶
同じ組織外の AWS アカウントともリソースを共有できるため、共同開発やパートナー企業との連携など、組織の垣根を越えた連携が必要な場合にも対応できる。
3. アーキテクチャおよび技術要素¶
- リソース所有者アカウントが「Resource Share」を作成し、対象リソース(例: サブネット)を選択
- 共有先として Organizations の OU、全メンバーアカウント、または特定アカウントを指定
- 共有先アカウント側では、共有リソースを利用した VPC 設定やインスタンス起動などが可能
- 不要になったらリソースシェアを削除、または共有範囲を変更することでアクセスを制御
RAM は IAM ポリシーや Organizations 設定と連携し、共有先を動的に管理できるため、大規模運用でも柔軟なアーキテクチャを構築できる。
4. セキュリティと認証・認可¶
リソース共有をセキュアに行うため、以下の観点が重要である:
- IAM ポリシー: RAM の「CreateResourceShare」「AssociateResourceShare」などの操作を許可するユーザーやロールを限定
- Organizations 連携: 承認されたメンバーアカウントだけがリソースを利用できるように制御
- アクセススコープの明確化: リソースシェアポリシーで使用可能範囲を明確に定義
- 監査ログ: AWS CloudTrail を用いてリソース共有の操作履歴を常に記録
5. 料金形態¶
AWS Resource Access Manager 自体には利用料金はなく、無料で使用可能である。
ただし、共有するリソースそのものの利用料金(VPC や EC2 など)は通常どおり発生する。
例えば、共有先が EC2 インスタンスを立ち上げると、そのインスタンス料金は起動したアカウント側に課金される。
6. よくあるアーキテクチャ・設計パターン¶
RAM の代表的な活用パターンは以下の通りです:
- 集中管理されたネットワーク設計: ネットワークを管理する専用アカウントで VPC やサブネットを作成し、他アカウントと共有
- ライセンス一元管理: License Manager でソフトウェアライセンスを組織横断で共有し、重複購入を回避
- 組織内・外部との共同開発: 特定リソース(サブネットや Route 53 Hosted Zone)を外部アカウントにも安全に提供
- 一時的な開発環境共有: 開発プロジェクトごとに必要なリソースだけを限定的に共有し、プロジェクト終了時に解除
7. 設定・デプロイ手順(ハンズオン例)¶
- AWS コンソールで「AWS Resource Access Manager」を検索し、「Create resource share」をクリック
- 共有したいリソースタイプ(例: VPC サブネット)を選び、対象となるリソースを追加
- 「Add principals」画面で共有先として Organizations の OU やメンバーアカウント、外部アカウント ID を指定
- 必要に応じて「Allow external accounts」オプションを有効化し、外部とのリソース共有を許可
- 設定完了後、共有先アカウントで RAM の「Shared with me」タブを確認し、共有リソースを利用できるか確認
8. 試験で問われやすいポイント¶
8.1 共有可能なリソースタイプ¶
- VPC 関連: サブネット、Transit Gateway
- Route 53: Hosted Zone の共有
- AWS License Manager: ソフトウェアライセンス
- その他: コードベースでアップデートされる場合があるので最新ドキュメントを参照
8.2 Organizations との連携¶
- 条件: RAM を管理するアカウントが Organizations 管理アカウントか、またはリソースシェアを許可されたメンバーアカウント
- OU 単位共有: OU を指定するだけで配下のすべてのアカウントに共有可能
- メリット: 大規模運用でも管理の手間を抑えられる
8.3 アクセス許可ポリシーと IAM¶
- IAM ポリシー: 「ram:CreateResourceShare」「ram:AssociateResourceShare」など、操作権限を限定
- リソースシェアポリシー: 共有先アカウントがどのようにリソースを操作できるかの範囲を定義
- 最小権限の原則: 余計なリソース共有を許可しないよう注意
8.4 外部アカウント共有¶
- アカウント ID 指定: 組織外アカウントの場合、アカウント ID を明示的に指定
- セキュリティ要件: 共有先が正しいアカウント ID であることを厳密に確認
- 通信確認: 組織外アカウントでリソースを利用できるかどうかテスト
8.5 運用上の注意点¶
- リソース変更: 所有者アカウントでのリソース削除や設定変更は共有先にも影響
- 共有解除: プロジェクト終了などで共有不要となったら迅速に解除
- トラブルシューティング: CloudTrail ログで操作履歴やエラーを確認
8.6 試験で頻出となる具体的な問われ方と答え¶
Q: AWS Resource Access Manager (RAM)の主な目的は? A: 複数アカウント間で VPC サブネットや Route 53 などのリソースを安全に共有する。 Q: リソースを共有する際に必要な設定要素は? A: Resource Share の作成、共有するリソースの選択、共有先(アカウントや OU)の指定。 Q: マルチアカウントにおける利点は? A: 重複リソースを作成せずに済み、コスト削減と運用効率の向上が期待できる。 Q: Organizations の OU と連携するメリットは? A: OU 配下のすべてのアカウントに対して一括でリソースを共有・管理できる。 Q: RAM 自体の料金は? A: 無料。ただし共有されるリソースの利用料金は通常どおり発生。