Cloud Service
AWS Resource Access Manager (RAM)
サブネットやTransit Gatewayなどのリソースをアカウント間で安全に共有し、重複作成を避けて一元管理するマネージドサービス。
- 1.自分のアカウントのリソースを、複製せずに他アカウントへ共有して相互利用できるようにするサービス
- 2.サブネットやTransit Gateway、Route 53のルールなど共有可能なリソースを共有しても所有権と課金は所有者に残る
- 3.AWS Organizationsと統合し、組織や組織単位を単位とした安全でIAMで制御された共有を実現できる
AWS Resource Access Manager(RAM)は、自分の AWS アカウントが所有するリソースを、コピーや再作成をすることなく他のアカウントへ共有し、相互に利用できるようにするマネージドサービスです。サブネット、Transit Gateway、Route 53 の Resolver ルール、ライセンス設定など、特定の種類のリソースを安全に共有でき、共有してもリソースの所有権と課金は所有アカウントに残ります。
解決する課題
マルチアカウント環境では、アカウントごとに同じ種類のリソースを重複して作成しがちです。たとえば各アカウントが個別に VPC とサブネットを用意し、別々に Transit Gateway を立てると、ネットワークの設計と運用が分散し、IP アドレス空間の管理も煩雑になります。アカウント数が増えるほど、同等の構成を維持するコストと手間が膨らみます。
従来この問題を避けるには、リソースを共有するためにアカウント間で複雑なクロスアカウントの IAM ロールや個別の許可設定を組む必要があり、対象リソースごとに作法が異なって統一が困難でした。
RAM は、共有可能なリソースを「リソース共有」という単位にまとめ、共有先のアカウントや組織単位を指定するだけで、相手アカウントから自分のリソースをそのまま参照・利用できるようにします。これにより、ネットワークなどの基盤リソースを一元的に作成・運用しながら、複数のアカウントから無駄なく利用する構成を実現できます。
主要概念と用語
- リソース共有: 共有したいリソースの集合、共有先のプリンシパル、付与する許可をまとめた単位。RAM の操作はこのリソース共有を中心に行う。
- 共有可能なリソース: RAM で共有できる対象。代表例はサブネット、Transit Gateway、Route 53 Resolver ルール、License Manager の設定、Prefix List などで、サービスごとに共有可否が定められている。
- プリンシパル: 共有先を表す対象。具体的には個別の AWS アカウント、組織全体、組織単位(OU)を指定できる。
- 所有者と参加者: リソースを共有する側を所有者、共有を受けて利用する側を参加者と呼ぶ。所有権と課金は所有者に残り、参加者は利用のみ行う。
- マネージド許可: 共有するリソースの種類ごとに、参加者が実行できる操作の範囲を定める許可セット。リソースタイプに応じた許可が用意される。
- 信頼されたアクセス(Organizations 統合): AWS Organizations と連携し、組織や OU を単位として共有できるようにする設定。これを有効にすると共有招待の承認を省略できる。
- 共有招待: 組織外のアカウントへ共有する場合に送られる承認依頼。参加者が招待を受諾して初めて共有が有効になる。
仕様・制限・クォータ
- RAM はリージョン単位で動作します。リソース共有は作成したリージョン内のリソースを対象とし、グローバルなリソースは専用の扱いになります。
- 共有できるリソースの種類はサービス側で定義されており、すべてのリソースが共有可能なわけではありません。共有可否は対象サービスの対応状況に依存するため、設計時に対象リソースが RAM 共有に対応しているかを確認する必要があります。
- 1 つのリソース共有に含められるリソース数やプリンシパル数、アカウントあたりのリソース共有数などにはクォータが定められています。具体的な数値はリージョンや時期で変動しうるため、最新の公式クォータを確認してください。
- 組織内のアカウントへ共有する場合は、Organizations の信頼されたアクセスを有効にすることで招待の受諾を省略でき、組織外のアカウントへ共有する場合は招待の受諾が必要です。
- 共有しても、参加者がリソースに対して実行できる操作はマネージド許可の範囲に限定されます。所有者だけが共有設定そのものの変更や削除を行えます。
内部の仕組み
RAM では、所有者がリソース共有を作成し、その中に共有対象のリソース、共有先のプリンシパル、適用するマネージド許可を登録します。共有が成立すると、参加者側のアカウントからは、共有されたリソースが自分のアカウントの操作画面や API 上に表示され、許可された範囲で利用できるようになります。
たとえばサブネットを共有した場合、参加者は共有されたサブネット内に自分のリソース(インスタンスやロードバランサーなど)を起動できますが、サブネットや VPC そのものの構成変更はできません。ネットワークの所有と管理は所有者に集約され、利用だけが参加者に開放される形です。
組織と統合している場合、組織内のアカウントへの共有は招待なしで即座に有効になります。組織外への共有では、参加者に共有招待が送られ、参加者がこれを受諾した時点で利用可能になります。いずれの場合も、参加者が実際に何を実行できるかは、リソースタイプに対応するマネージド許可と、参加者アカウント側の IAM ポリシーの両方によって決まります。共有によって自動的にすべての操作が許可されるわけではない点が重要です。
設計パターン / ベストプラクティス
代表的な構成は、ネットワーク専用の管理アカウントで VPC・サブネット・Transit Gateway を一元的に作成し、それらを RAM で各ワークロードアカウントへ共有する「共有 VPC(シェアード VPC)」や集中型ネットワークのパターンです。これにより、IP アドレス設計やルーティング、インスペクションといったネットワークの責務を一か所に集約しつつ、各アカウントは自分のワークロードの実行に専念できます。
組織内で共有を多用するなら、AWS Organizations の信頼されたアクセスを有効にしておくのが定石です。これにより共有招待の受諾が不要になり、OU 単位での共有も可能になるため、新規アカウントの追加にも追従しやすくなります。
- 共有先は可能な限り組織や OU を単位に指定し、アカウントを個別列挙する運用を避けて、メンテナンス負荷とミスを減らす。
- マネージド許可は必要最小限のものを選び、参加者へ過剰な操作を許さないようにする。
- 共有するリソースに分かりやすい命名やタグを付け、どのリソースがどの目的で共有されているかを追跡可能にする。
RAM で共有しても、参加者が共有リソースに対してできることは限定されます。たとえば共有サブネットでは、所有者が VPC とサブネットを管理し、参加者は内部にリソースを置くだけ、といった責務分界を前提に設計してください。期待した操作ができないトラブルの多くは、この分界の認識違いに起因します。
運用・監視
RAM に対する操作(リソース共有の作成・更新・削除、プリンシパルやリソースの関連付け、招待の受諾など)は CloudTrail に記録されるため、いつ誰がどの共有を変更したかを監査できます。共有状態の変化を追跡することで、意図しない共有範囲の拡大を検知できます。
- 既存のリソース共有を定期的に棚卸しし、不要になった共有や、想定より広い範囲に共有されているものを洗い出す。
- 組織への共有を有効にしている場合、新しいアカウントが OU に追加されると自動的に共有対象に含まれることを踏まえ、OU 設計と共有範囲を一致させておく。
- リソース共有の構成を Infrastructure as Code で管理し、共有先や許可の変更を履歴として残すことで、到達範囲の意図しない変更を防ぐ。
コスト
RAM 自体は、リソースを共有する機能の利用に対して追加の料金がかからないのが基本的な考え方です。共有されたリソースの課金は引き続き所有アカウントに発生し、共有によって所有とコストの帰属が変わることはありません。
一方で、共有したリソースを利用することで発生する周辺の費用には注意が必要です。たとえば共有サブネットを通じたデータ転送や、共有された Transit Gateway を経由する通信のデータ処理料などは、それぞれのサービスの料金体系に従って発生します。具体的な単価はリージョンや時期で変動するため、最新の料金ページで確認したうえで、共有によって増えうる周辺コストを見積もってください。
セキュリティ
共有はあくまで所有者が明示的に作成したリソース共有の範囲に限られ、参加者ができる操作はマネージド許可で制限されます。さらに参加者アカウント側でも IAM ポリシーによって実際の操作を制御できるため、共有された事実だけで無制限のアクセスが許されることはありません。
組織外の任意のアカウントへ共有できる設定は強力ですが、共有先を誤ると意図しないアカウントへリソースを開放してしまいます。原則として組織や OU を単位とした共有に限定し、組織外への共有は本当に必要な相手だけに絞り、招待と受諾のプロセスで相手を確認してください。
組織内に共有範囲を閉じたい場合は、RAM の設定で外部アカウントへの共有を抑制し、共有先を組織内に限定する運用が有効です。すべての共有操作は CloudTrail で記録し、共有範囲の変更を継続的に監査することで、過剰な共有を早期に発見できます。
Well-Architected の観点
- セキュリティの柱: 共有はリソース共有とマネージド許可の範囲に限定され、参加者側の IAM とあわせて最小権限を維持できる。組織や OU 単位の共有で範囲を明確に管理する。
- 運用上の優秀性の柱: ネットワークなどの基盤リソースを一元作成し、重複作成と分散管理を避けて運用負荷を下げられる。
- コスト最適化の観点: 同等リソースの重複作成を避け、共有によって基盤を効率的に使い回せる。
試験で問われるポイント
- マルチアカウントでサブネットや Transit Gateway を共有したい場合の標準解が RAM である点。リソースを複製せず共有でき、所有権と課金は所有者に残る。
- AWS Organizations と統合して信頼されたアクセスを有効にすると、組織や OU を単位に共有でき、共有招待の受諾が不要になる点。組織外への共有では招待の受諾が必要。
- 共有サブネットでは、所有者が VPC とサブネットを管理し、参加者は内部にリソースを起動するだけ、という責務分界になる点。
- 参加者の実行可能な操作はマネージド許可と参加者側 IAM の両方で決まり、共有しただけで全操作が許可されるわけではない点。
- Transit Gateway をマルチアカウントで一元管理する構成では、RAM による共有が前提になる点。
関連サービス・比較
リソースをまたぐ管理という意味では AWS Organizations と関連が深いですが、両者の役割は異なります。Organizations が複数アカウントの一元管理とガードレール(SCP など)の適用を担うのに対し、RAM は個々のリソースをアカウント間で共有する仕組みを提供します。多くの場合、Organizations を土台として、その上で RAM による共有を組み合わせて使います。
| 観点 | Resource Access Manager | Organizations |
|---|---|---|
| 主な役割 | 個々のリソースをアカウント間で共有 | 複数アカウントの一元管理とガバナンス |
| 共有の単位 | サブネットやTGWなどのリソース共有 | アカウントや組織単位(OU) |
| 権限制御 | マネージド許可と参加者側IAM | SCPによる上限ガードレール |
| 典型的な使い方 | 基盤リソースの共有利用 | アカウント構成と統制の土台 |
| 関係性 | Organizationsと統合して共有範囲を指定 | RAMの組織単位共有の前提となる |
ハンズオン / CLI例
以下は、組織との統合を有効にし、サブネットを含むリソース共有を作成して、組織単位を共有先に指定する最小の流れの例です。リソースの ARN や ID は実際の値に置き換えてください。
# AWS Organizations との統合(信頼されたアクセス)を有効化
aws ram enable-sharing-with-aws-organization
# リソース共有を作成し、サブネットを共有対象、OU を共有先に指定
aws ram create-resource-share \
--name shared-network \
--resource-arns arn:aws:ec2:ap-northeast-1:111122223333:subnet/subnet-0123456789abcdef0 \
--principals arn:aws:organizations::111122223333:ou/o-exampleorgid/ou-examplerootid-exampleouid
# 既存のリソース共有へ追加でリソースを関連付け
aws ram associate-resource-share \
--resource-share-arn arn:aws:ram:ap-northeast-1:111122223333:resource-share/abcd1234-ef56-7890-abcd-ef1234567890 \
--resource-arns arn:aws:ec2:ap-northeast-1:111122223333:transit-gateway/tgw-0123456789abcdef0
# 自分が所有するリソース共有の一覧を確認
aws ram get-resource-shares --resource-owner SELF
AWS Service
AWS Resource Access Manager (RAM)を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
セキュリティ・ID
比較で見る軸
クラウド: AWS / カテゴリ: セキュリティ・ID / 難易度: intermediate
導入後に効く点
サブネットやTransit Gateway、Route 53のルールなど共有可能なリソースを共有しても所有権と課金は所有者に残る
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- AWS
- カテゴリ
- セキュリティ・ID
- 難易度
- intermediate
- 関連資格
- SCS-C02 / SAA-C03
- 設計柱
- security / operational
判断チェックリスト
- 自社の用途が「セキュリティ・ID / security」に近いか確認する。
- 強みである「自分のアカウントのリソースを、複製せずに他アカウントへ共有して相互利用できるようにするサービス」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。