翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
の用語と概念 AWS RAM
以下の概念は、 AWS Resource Access Manager (AWS RAM) を使用してリソースを共有する方法を説明するのに役立ちます。
リソースの共有
を使用してリソースを共有するには、リソース共有 AWS RAM を作成します。リソース共有には次の 3 つの要素があります。
AWS RAM を使用してリソース共有を作成すると、リソース共有で指定されたプリンシパルに、共有のリソースへのアクセスを許可できます。
-
と AWS RAM の共有を有効にし AWS Organizations、共有するプリンシパルが共有アカウントと同じ組織にある場合、アカウント管理者が AWS Identity and Access Management (IAM) アクセス許可ポリシーを使用してリソースを使用するアクセス許可を付与すると、それらのプリンシパルはすぐにアクセスできるようになります。
-
Organizations と AWS RAM の共有を有効にしない場合でも、組織 AWS アカウント 内の個人とリソースを共有できます。コンシューマーアカウントの管理者は、リソース共有に参加するための招待状を受け取ります。管理者が招待状を承諾すると、リソース共有で指定されたプリンシパルは共有リソースにアクセスできるようになります。
-
リソースタイプでサポートされている場合は、組織外のアカウントと共有することもできます。コンシューマーアカウントの管理者は、リソース共有に参加するための招待状を受け取ります。管理者が招待状を承諾すると、リソース共有で指定されたプリンシパルは共有リソースにアクセスできるようになります。このタイプの共有がサポートされているリソースタイプについては、「共有可能な AWS リソース」の「組織外のアカウントと共有可能」列を参照してください。
共有アカウント
共有アカウントには、共有されているリソースと、 AWS RAM 管理者が を使用してリソース共有を作成する AWS リソースが含まれます AWS RAM。
AWS RAM 管理者は、 でリソース共有を作成および設定するアクセス許可を持つ IAMプリンシパルです AWS アカウント。はリソースベースのポリシーをリソース共有のリソースにアタッチすることで AWS RAM 機能するため、 AWS RAM 管理者はリソース共有に含まれる各リソースタイプ AWS のサービス について で PutResourcePolicy
オペレーションを呼び出すアクセス許可も必要です。
コンシューマープリンシパル
消費アカウントは、 AWS アカウント リソースを共有する です。リソース共有は、アカウント全体をプリンシパルとして指定することも、リソースタイプによってはアカウント内の個々のロールやユーザーを指定することもできます。このタイプの共有をサポートするリソースタイプについては、共有可能な AWS リソース「」およびIAM「ロールとユーザーと共有できる」列を参照してください。
AWS RAM は、リソース共有のコンシューマーとしてサービスプリンシパルもサポートしています。このタイプの共有がサポートされているリソースタイプについては、「共有可能な AWS リソース」の「サービスプリンシパルと共有可能」列を参照してください。
コンシューマーアカウントのプリンシパルは、以下の両方のアクセス許可で許可されているアクションのみを実行できます。
-
リソース共有にアタッチされた管理アクセス許可。これは、コンシューマーアカウントのプリンシパルに付与できる最大のアクセス許可を指定します。
-
消費アカウントのIAM管理者が個々のロールまたはユーザーにアタッチしたIAMアイデンティティベースのポリシー。これらのポリシーは、指定されたアクションと、共有アカウントのリソースの Amazon リソースネーム (ARN)
Allow
へのアクセスを許可する必要があります。
AWS RAM は、リソース共有のコンシューマーとして次のIAMプリンシパルタイプをサポートしています。
-
もう AWS アカウント 1 つの - リソース共有は、共有アカウントに含まれるリソースを消費アカウントで利用できるようにします。
-
別のアカウントの個々のIAMロールまたはユーザー – 一部のリソースタイプでは、個々のIAMロールまたはユーザーと直接共有できます。このプリンシパルタイプを で指定しますARN。
-
IAM ロール –
arn:aws:iam::123456789012:role/rolename
-
IAM ユーザー –
arn:aws:iam::123456789012:user/username
-
-
サービスプリンシパル - リソースを AWS サービスと共有して、サービスにリソース共有へのアクセスを許可します。サービスプリンシパル共有を使用すると、 AWS サービスがユーザーに代わってアクションを実行し、運用上の負担を軽減できます。
サービスプリンシパルと共有するには、[すべてのユーザーとの共有を許可] を選択して、[プリンシパルタイプの選択] のドロップボックスリストで [サービスプリンシパル] を選択します。サービスプリンシパルの名前を次の形式で指定します。
-
service-id
.amazonaws.com
混乱した代理のリスクを軽減するため、リソースポリシーでは
aws:SourceAccount
条件キーにリソース所有者のアカウント ID が表示されます。 -
-
組織内のアカウント – 共有アカウントが によって管理されている場合 AWS Organizations、リソース共有は組織内のすべてのアカウントと共有するための組織の ID を指定できます。リソース共有では、組織単位 (OU) ID を指定して、その OU 内のすべてのアカウントと共有することもできます。共有アカウントは、自分の組織または自分の組織IDs内の OU とのみ共有できます。組織のアカウントを組織の ARN または OU で指定します。
-
組織内のすべてのアカウント – のARN組織の例を次に示します AWS Organizations。
arn:aws:organizations::123456789012:organization/o-<orgid>
-
組織単位内のすべてのアカウント – OU ID ARNの例を次に示します。
arn:aws:organizations::123456789012:organization/o-<orgid>/ou-<rootid>-<ouid>
重要
組織または OU と共有し、スコープにリソース共有を所有するアカウントが含まれる場合、共有アカウントのすべてのプリンシパルは、共有内のリソースに自動的にアクセスできるようになります。付与されるアクセスは、共有に関連付けられている管理アクセス許可によって定義されます。これは、共有内の各リソースに が AWS RAM アタッチするリソースベースのポリシーが を使用するためです
"Principal": "*"
。詳細については、「の使用に伴う影響 "Principal": "*" リソースベースのポリシーの」を参照してください。他のコンシューマーアカウントのプリンシパルは、共有のリソースにすぐにはアクセスできません。他のアカウントの管理者は、まず ID ベースのアクセス許可ポリシーを適切なプリンシパルにアタッチする必要があります。これらのポリシーは、リソース共有内の個々のリソースARNsの
Allow
へのアクセスを許可する必要があります。これらのポリシーのアクセス許可は、リソース共有に関連付けられた管理アクセス許可で指定されているアクセス許可を超えることはできません。 -
リソースベースのポリシー
リソースベースのポリシーは、IAMポリシー言語を実装するJSONテキストドキュメントです。IAM ロールやユーザーなど、プリンシパルにアタッチするアイデンティティベースのポリシーとは異なり、リソースベースのポリシーをリソースにアタッチします。 AWS RAM は、リソース共有に提供した情報に基づいて、ユーザーに代わってリソースベースのポリシーを作成します。ユーザーは、リソースにアクセスできるユーザーを決定する Principal
ポリシー要素を指定する必要があります。詳細については、「 IAMユーザーガイド」の「アイデンティティベースのポリシーとリソースベースのポリシー」を参照してください。
によって生成されたリソースベースのポリシー AWS RAM は、他のすべてのIAMポリシータイプとともに評価されます。これには、リソースにアクセスしようとしているプリンシパルにアタッチ AWS Organizations されたIAMアイデンティティベースのポリシーと、 に適用される可能性のある のサービスコントロールポリシー (SCPs) が含まれます AWS アカウント。によって生成されたリソースベースのポリシーは、他のすべてのポリシーと同じIAMポリシー評価ロジック AWS RAM に参加します。ポリシー評価の詳細と、結果として得られるアクセス許可を決定する方法については、「 IAMユーザーガイド」の「ポリシー評価ロジック」を参照してください。
AWS RAM は、抽 easy-to-use象化リソースベースのポリシーを提供することで、シンプルで安全なリソース共有エクスペリエンスを提供します。
リソースベースのポリシーをサポートするリソースタイプの場合、 はリソースベースのポリシー AWS RAM を自動的に構築および管理します。指定されたリソースで、 AWS RAM はそのリソースを含むすべてのリソース共有からの情報を組み合わせて、リソースベースのポリシーを作成します。例えば、 を使用して共有 AWS RAM し、2 つの異なるリソース共有に含める Amazon SageMaker AI パイプラインを考えてみましょう。1 つのリソース共有を使用して、組織全体に読み取り専用アクセス権を付与できます。その後、他のリソース共有を使用して、1 つのアカウントに SageMaker AI 実行アクセス許可のみを付与できます。 は、これらの 2 つの異なるアクセス許可セット AWS RAM を複数のステートメントを持つ 1 つのリソースポリシーに自動的に結合します。その後、結合されたリソースベースのポリシーをパイプラインリソースにアタッチします。この基盤となるリソースポリシーを表示するには、 GetResourcePolicy operation. AWS のサービス 次に、そのリソースベースのポリシーを使用して、共有リソースに対してアクションを実行しようとするプリンシパルを承認します。
リソースベースのポリシーを手動で作成し、PutResourcePolicy
を呼び出してリソースにアタッチすることもできますが、以下の利点があるため AWS RAM
を使用することを推奨します。
-
共有コンシューマーの検出可能性 – を使用してリソースを共有すると AWS RAM、ユーザーはリソース所有サービスのコンソールとAPIオペレーションで、共有されているすべてのリソースを、それらのリソースがユーザーのアカウントに直接あったかのように直接表示できます。例えば、 AWS CodeBuild プロジェクトを別のアカウントと共有する場合、コンシューマーアカウントのユーザーは CodeBuild 、コンソールでプロジェクトを表示し、実行されたオペレーションの結果 CodeBuild APIを確認できます。リソースベースのポリシーを直接アタッチして共有したリソースは、この方法では表示されません。代わりに、 リソースを検出して明示的に参照する必要がありますARN。
-
共有所有者の管理可能性 – を使用してリソースを共有すると AWS RAM、共有アカウントのリソース所有者は、自分のリソースにアクセスできる他のアカウントを一元的に確認できます。リソースベースのポリシーを使用してリソースを共有する場合、関連するサービスコンソールまたは で個々のリソースのポリシーを調べることによってのみ、消費アカウントを表示できますAPI。
-
効率 – を使用してリソースを共有する場合 AWS RAM、複数のリソースを共有し、それらをユニットとして管理できます。リソースベースのポリシーのみを使用してリソースを共有する場合は、共有するすべてのリソースに個別のポリシーをアタッチする必要があります。
-
シンプル – では AWS RAM、 JSONベースのIAMポリシー言語を理解する必要はありません。 は、リソース共有にアタッチするために選択できる ready-to-use AWS 管理アクセス許可 AWS RAM を提供します。
を使用すると AWS RAM、リソースベースのポリシーをまだサポートしていない一部のリソースタイプを共有することもできます。このようなリソースタイプでは、 は実際のアクセス許可の表現としてリソースベースのポリシー AWS RAM を自動的に生成します。ユーザーは、 を呼び出してこの表現を表示できます。 GetResourcePolicy。 これには、次のリソースタイプが含まれます。
-
Amazon Aurora – DB クラスター
-
Amazon EC2 – キャパシティ予約と専用ホスト
-
AWS License Manager – ライセンス設定
-
AWS Outposts – ローカルゲートウェイルートテーブル、アウトポスト、サイト
-
Amazon Route 53 – 転送ルール
-
Amazon Virtual Private Cloud – カスタマー所有のIPv4アドレス、プレフィックスリスト、サブネット、トラフィックミラーターゲット、トランジットゲートウェイ、トランジットゲートウェイマルチキャストドメイン
AWS RAM 生成されたリソースベースのポリシーの例
EC2 Image Builder イメージリソースを個々のアカウントと共有する場合、 は次の例のようなポリシー AWS RAM を生成し、リソース共有に含まれるイメージリソースにアタッチします。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:root"}, "Action": [ "imagebuilder:GetImage", "imagebuilder:ListImages", ], "Resource": "arn:aws:imagebuilder:us-east-1:123456789012:image/testimage/1.0.0/44" } ] }
EC2 Image Builder イメージリソースを別の の IAMロールまたはユーザーと共有する場合 AWS アカウント、 は次の例のようなポリシー AWS RAM を生成し、リソース共有に含まれるイメージリソースにアタッチします。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/MySampleRole" }, "Action": [ "imagebuilder:GetImage", "imagebuilder:ListImages", ], "Resource": "arn:aws:imagebuilder:us-east-1:123456789012:image/testimage/1.0.0/44" } ] }
EC2 Image Builder イメージリソースを組織内のすべてのアカウントまたは OU アカウントと共有する場合、 は次の例のようなポリシー AWS RAM を生成し、リソース共有に含まれるイメージリソースにアタッチします。
注記
このポリシーは "Principal": "*"
を使用し、その後 "Condition"
要素を使用して、指定された PrincipalOrgID
と一致する ID のアクセス許可を制限します。詳細については、「の使用に伴う影響 "Principal":
"*" リソースベースのポリシーの」を参照してください。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "imagebuilder:GetImage", "imagebuilder:ListImages", ], "Resource": "arn:aws:imagebuilder:us-east-1:123456789012:image/testimage/1.0.0/44" "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-123456789" } } } ] }
の使用に伴う影響 "Principal": "*" リソースベースのポリシーの
リソースベースのポリシー"Principal": "*"
に を含めると、ポリシーは、リソースを含むアカウント内のすべてのIAMプリンシパルへのアクセスを許可します。ただし、存在する場合は、 Condition
要素によって課される制限が適用されます。呼び出し元のプリンシパルに適用されるポリシーの明示的な Deny
ステートメントは、このポリシーによって付与されたアクセス許可を上書きします。ただし、すべての適用可能な ID ポリシーでの 暗示的な Deny
(つまり明示的な Allow
の欠如)、アクセス許可の境界、またはプリンシパルに対して Deny
しないセッションポリシーは、そのようなリソースベースのポリシーによってアクションへのアクセスを付与します。
この動作がユースケースで適切でない場合は、関連するロールやユーザーに影響を与える明示的な Deny
ステートメントを ID ポリシー、アクセス許可の境界、またはセッションポリシーに追加することで、この動作を制限できます。
管理アクセス許可
管理アクセス許可は、リソース共有内のサポートされているリソースタイプに対して、プリンシパルがどのような条件でアクションを実行できるかを定義します。リソース共有を作成する際に、リソース共有に含まれるリソースタイプごとに、どの管理アクセス許可を使用するかを指定する必要があります。管理アクセス許可は、プリンシパルが を使用して共有リソースで実行できる一連の actions
および 条件を一覧表示します AWS RAM。
リソース共有では、リソースタイプごとに 1 つの管理アクセス許可のみをアタッチすることができます。特定のタイプの一部のリソースである管理アクセス許可を使用し、同じタイプの他のリソースでは別の管理アクセス許可を使用するようなリソース共有を作成することはできません。これを行うには、2 つの異なるリソース共有を作成し、それらのリソースを分割して、それぞれのセットに異なる管理アクセス許可を付与する必要があります。管理アクセス許可には、2 つの異なるタイプがあります。
- AWS マネージドアクセス許可
-
AWS 管理アクセス許可は、 によって作成および管理 AWS され、一般的なお客様のシナリオに対するアクセス許可を付与します。 は、サポートされているリソースタイプごとに少なくとも 1 つの AWS 管理アクセス許可 AWS RAM を定義します。一部のリソースタイプでは、複数の AWS 管理アクセス許可がサポートされ、1 つの管理アクセス許可が AWS デフォルトとして指定されています。特に指定しない限り、デフォルトの AWS 管理アクセス許可が関連付けられます。
- カスタマー管理アクセス許可
-
カスタマー管理アクセス許可は、 AWS RAMで共有リソースを使用する場合に、どのような条件下でどのアクションを実行できるかを正確に指定する、ユーザーが作成し管理する管理アクセス許可です。例えば、Amazon VPC IP Address Manager (IPAM) プールの読み取りアクセスを制限し、IP アドレスを大規模に管理する場合などです。IP アドレスの割り当てはできるものの、他の開発者アカウントが割り当てた IP アドレスの範囲は表示できないようなカスタマー管理アクセス許可を開発者に対して作成することができます。最小特権のベストプラクティスに従って、必要なアクセス許可のみを付与し、共有リソースでタスクを実行できるような環境を構築することができます。
グローバルコンテキストキーやサービス固有のキーなどの条件を追加して、プリンシパルがリソースにアクセスする条件を指定するオプションを使用して、リソース共有内のリソースタイプに対して独自のアクセス許可を定義します。これらのアクセス許可は、1 つ以上の AWS RAM 共有で使用できます。カスタマー管理アクセス許可はリージョンに固有のものです。
AWS RAM は、共有するリソースのリソースベースのポリシーを作成するための入力として、 管理アクセス許可を取得します。
管理アクセス許可のバージョン
管理アクセス許可を変更すると、管理アクセス許可の新しいバージョンが作成されます。新しいバージョンはすべての新しいリソース共有のデフォルトになります。各管理アクセス許可には、必ず 1 つのバージョンがデフォルトバージョンとして指定されています。新しい管理アクセス許可バージョン AWS を作成する場合、既存のリソース共有ごとに管理アクセス許可を明示的に更新する必要があります。リソース共有に適用する前に、この手順で変更を評価できます。すべての新しいリソース共有は、対応するリソースタイプ用の新しいバージョンの管理アクセス許可を自動的に使用します。
- AWS マネージドアクセス許可のバージョン
-
AWS は、 AWS 管理アクセス許可に対するすべての変更を処理します。このような変更で、新しい機能への対応や発見された不具合の除去を行うことができます。リソース共有には、デフォルトの管理アクセス許可のバージョンのみを適用できます。
- カスタマー管理アクセス許可のバージョン
-
カスタマー管理アクセス許可へのすべての変更は、ユーザーが行います。ユーザーは、新しいデフォルトバージョンを作成したり、古いバージョンをデフォルトとして設定したり、リソース共有に関連付けられていないバージョンを削除したりできます。各カスタマー管理アクセス許可には最大 5 つのバージョンを作成できます。
リソース共有を作成または更新する場合、指定した管理アクセス許可のデフォルトバージョンのみをアタッチできます。詳細については、「AWS 管理アクセス許可を新しいバージョンに更新する」を参照してください。