View a markdown version of this page

RAM AWS を使用してアカウント間でレジストリを共有する - Amazon Bedrock AgentCore

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

RAM AWS を使用してアカウント間でレジストリを共有する

AWS エージェントレジストリレジストリは、 AWS Resource Access Manager (RAM) を使用して他の AWS アカウントと共有できます。RAM 共有を使用すると、自分のアカウント以外のアカウントは、レジストリ自体を所有することなく、レジストリ内のレコードを検出、公開、管理できます。

レジストリを共有すると、RAM はユーザーに代わってリソースベースのポリシーを作成および管理します。コンシューマーアカウントが実行できるアクションを制御するマネージドアクセス許可を選択すると、RAM が残りを処理します。

クロスアカウント共有の仕組み

クロスアカウント共有は 3 ステップのプロセスに従います。

  1. レジストリ所有者がレジストリを共有する — 所有者は RAM リソース共有を作成し、マネージドアクセス許可を選択し、プリンシパルとして 1 つ以上のコンシューマーアカウント IDs を追加します。RAM はリソースベースのポリシーをレジストリにアタッチします。

  2. コンシューマーが招待を承諾する - 所有者の AWS 組織外のアカウントの場合、RAM はコンシューマーが承諾する必要がある招待を送信します。同じ組織内のアカウント (Organizations で RAM 共有が有効になっている) の場合、承認は自動的に行われます。招待は必要ありません。

  3. コンシューマーが共有レジストリにアクセスする — コンシューマーは、所有者のレジストリ ARN に対して独自の認証情報を使用して AWS エージェントレジストリ API を呼び出します。 APIs 実行できるアクションは、共有にアタッチされた管理アクセス許可によって異なります。

主な特徴

  • 共有を開始できるのはレジストリ所有者のみです。

  • RAM はユーザーに代わってリソースベースのポリシーを作成および管理します。付与するアクションを制御するための管理アクセス許可を選択します。

  • 選択した管理アクセス許可によって、コンシューマーが実行できる操作 (検出、公開、管理) が決まります。

  • コントロールプレーンレジストリミューテーション (UpdateRegistry、DeleteRegistry) は常に所有者に残ります。RAM を介して委任することはできません。

前提条件

レジストリを共有する前に、次の要件を満たしていることを確認してください。

レジストリ所有者アカウントの場合:

  • レジストリは READYステータスです。

  • 呼び出し元には、RAM AWS オペレーション (ram:CreateResourceShare、ram:AssociateResourceShare、、ram:DisassociateResourceShare、、ram:GetResourceShareAssociations) ram:DeleteResourceShareおよび に対する IAM ram:GetResourceSharesアクセス許可がありますagent-registry:PutResourcePolicy。

コンシューマーアカウントで:

  • 発信者には、共有にアタッチされた管理アクセス許可に対応する AWS エージェントレジストリアクションの IAM アクセス許可があります。

  • 外部 (組織間) 共有の場合、発信者には ram:GetResourceShareInvitationsおよび ram:AcceptResourceShareInvitation (または ) も必要ですram:RejectResourceShareInvitation。

組織内部共有の場合:

  • AWS AWS Organizations との RAM 共有を有効にする必要があります。詳細については、 AWS 「RAM ユーザーガイド」のAWS 「Organizations との共有を有効にする」を参照してください。

  • 組織共有が有効になっている場合、組織内のアカウントは招待を受け入れる必要はありません。共有は自動的に有効になります。

AWS エージェントレジストリの RAM 管理アクセス許可

レジストリを共有するときは、コンシューマーアカウントが実行できるアクションを制御する AWS RAM 管理アクセス許可をアタッチします。 AWS エージェントレジストリには、1 つのデフォルトと 3 つのロールベースの 4 つの管理アクセス許可があります。これにより、各ユースケースに必要な最小限のアクセス許可を付与できます。

AWSRAMDefaultPermissionAgentRegistryReadOnly

これは、 agent-registry:Registryリソースタイプのデフォルトのアクセス許可です。アクセス許可を指定せずにリソース共有を作成すると、RAM はこのアクセス許可を自動的にアタッチします。コントロールプレーン読み取りとデータプレーン検出の両方のレジストリメタデータとレコードへの読み取り専用アクセスを許可しますが、レコードの発行やレジストリのモデルコンテキストプロトコル (MCP) エンドポイントの呼び出しは許可されません。

ユースケース: 可視性と監査のためにレジストリを共有します。コンシューマーはカタログを参照および検索できますが、MCP エンドポイントを介してツールを発行、変更、または呼び出すことはできません。

付与されたアクセス許可:

  • agent-registry:GetRegistry— レジストリ設定とメタデータを表示します。

  • agent-registry:GetRegistryRecord— 個々のレコードの詳細 (コントロールプレーン) を読み取ります。

  • agent-registry:ListRegistryRecords— レジストリ (コントロールプレーン) 内のすべてのレコードを一覧表示します。

  • agent-registry:SearchDiscoverableRegistryRecords— ハイブリッド検索を使用して承認済みレコードを検索します。

  • agent-registry:GetDiscoverableRegistryRecord— 承認済みレコード (データプレーン) の完全な詳細を取得します。

  • agent-registry:ListDiscoverableRegistryRecords— 承認されたレコード (データプレーン) を一覧表示します。

AWSRAMPermissionAgentRegistryForConsumer

このアクセス許可は、データプレーン検出アクセスに加えて、レジストリの MCP エンドポイントを呼び出す機能を付与します。このアクセス許可は、コンシューマーペルソナ、つまりカタログに登録されているツールを検出して使用する必要がある AI エージェントまたはヒューマンユーザーに使用します。

ユースケース: エージェントがツールを検出して MCP エンドポイント経由で呼び出す必要があるアカウントとレジストリを共有します。コンシューマーはレコードを作成または管理できません。

付与されたアクセス許可:

  • agent-registry:SearchDiscoverableRegistryRecords— 承認されたレコードを検索します。

  • agent-registry:GetDiscoverableRegistryRecord— 承認されたレコードの完全な詳細を取得します。

  • agent-registry:ListDiscoverableRegistryRecords— 承認されたレコードを一覧表示します。

  • agent-registry:InvokeRegistryMcp— レジストリの MCP エンドポイントを呼び出します。

AWSRAMPermissionAgentRegistryForPublisher

このアクセス許可は、コンシューマーが付与するすべてのアクセス許可に加えて、承認のためにレコードを作成、更新、削除、送信するためのコントロールプレーンアクセスを付与します。このアクセス許可は、パブリッシャーペルソナ、つまり一元的に所有されるレジストリにリソースを提供する共有アカウントのビルダーに使用します。

ユースケース: MCP サーバー、エージェント、またはツールをカタログに公開する必要があるチームとレジストリを共有します。パブリッシャーは独自のレコードを管理し、他のレコードを検出できますが、レコードを承認または拒否することはできません。

付与されたアクセス許可:

  • agent-registry:GetRegistry— レジストリ設定を表示します。

  • agent-registry:CreateRegistryRecord— 新しいレコードを作成します。

  • agent-registry:UpdateRegistryRecord— 既存のレコードを更新します。

  • agent-registry:DeleteRegistryRecord— レコードを削除します。

  • agent-registry:GetRegistryRecord— 個々のレコードの詳細を読み取ります。

  • agent-registry:ListRegistryRecords— すべてのレコードを一覧表示します。

  • agent-registry:SubmitRegistryRecordForApproval— キュレーターレビューのためにレコードを送信します。

  • agent-registry:SearchDiscoverableRegistryRecords— 承認されたレコードを検索します。

  • agent-registry:GetDiscoverableRegistryRecord— 承認されたレコードの完全な詳細を取得します。

  • agent-registry:ListDiscoverableRegistryRecords— 承認されたレコードを一覧表示します。

  • agent-registry:InvokeRegistryMcp— レジストリの MCP エンドポイントを呼び出します。

AWSRAMPermissionAgentRegistryForAdmin

このアクセス許可は、パブリッシャーが付与するすべてのアクセス許可に加えて、レコードを承認、拒否、または廃止する機能を付与します。管理者ペルソナにこのアクセス許可を使用します。これは、所有者に代わって共有レジストリをキュレートする別のアカウントの委任管理者です。

ユースケース: レジストリインフラストラクチャ自体を所有することなく、レコードの公開、レビュー、承認など、レコードライフサイクル全体を管理するアカウントとレジストリを共有します。管理者はレジストリを更新または削除することはできません。

付与されたアクセス許可:

  • agent-registry:GetRegistry— レジストリ設定を表示します。

  • agent-registry:CreateRegistryRecord— 新しいレコードを作成します。

  • agent-registry:UpdateRegistryRecord— 既存のレコードを更新します。

  • agent-registry:UpdateRegistryRecordStatus— レコードを承認、拒否、または廃止します。

  • agent-registry:DeleteRegistryRecord— レコードを削除します。

  • agent-registry:GetRegistryRecord— 個々のレコードの詳細を読み取ります。

  • agent-registry:ListRegistryRecords— すべてのレコードを一覧表示します。

  • agent-registry:SubmitRegistryRecordForApproval— キュレーターレビューのためにレコードを送信します。

  • agent-registry:SearchDiscoverableRegistryRecords— 承認されたレコードを検索します。

  • agent-registry:GetDiscoverableRegistryRecord— 承認されたレコードの完全な詳細を取得します。

  • agent-registry:ListDiscoverableRegistryRecords— 承認されたレコードを一覧表示します。

  • agent-registry:InvokeRegistryMcp— レジストリの MCP エンドポイントを呼び出します。

管理アクセス許可の選択

コンシューマーに.. このアクセス許可を選択する

カタログを参照および検索する (読み取り専用、MCP 呼び出しなし)

AWSRAMDefaultPermissionAgentRegistryReadOnly

ツールを検出して MCP エンドポイントを呼び出す

AWSRAMPermissionAgentRegistryForConsumer

レコードの発行と管理 + ツールの検出

AWSRAMPermissionAgentRegistryForPublisher

完全なレコードライフサイクル (公開 + approve/reject/deprecate)

AWSRAMPermissionAgentRegistryForAdmin

ヒント

コンシューマーアカウントのエージェントがツールを検出して呼び出す必要がある一般的な共有シナリオでは、コンシューマーアクセス許可をお勧めします。

カスタマー管理アクセス許可の作成

条件キーを使用して特定のアカウントによって作成されたレコードのみへのアクセスを制限するなどの高度なユースケースでは、カスタマー管理の RAM アクセス許可を作成できます。カスタマー管理アクセス許可を使用すると、 AWS エージェントレジストリの条件キーを参照するカスタムConditionブロックを定義できます。

カスタマー管理アクセス許可の作成の詳細については、 AWS 「RAM ユーザーガイド」の「共有可能なリソース」を参照してください。

AWS エージェントレジストリで使用できる条件キーについては、「」を参照してくださいきめ細かなレコードアクセスの条件キー。

レジストリを別のアカウントと共有する

共有を開始できるのはレジストリ所有者のみです。

コンソール

  1. AWS エージェントレジストリコンソールを開きます。

  2. 共有するレジストリを選択します。

  3. レジストリの詳細ページで、レジストリ共有セクションまでスクロールダウンします。

  4. レジストリの共有を選択します。

  5. レジストリ共有パネルの AWS Resource Access Manager (RAM) 共有で、次のいずれかを選択します。

    • AWS 組織のみの RAM 共有 — 指定するアカウントは AWS 組織に存在する必要があります。 AWS Organizations との共有は、AWS RAM 設定ページから有効にする必要があります。

    • 外部 RAM 共有 — アカウントは AWS 組織内またはその外部にあることができます。

  6. AWS RAM 共有管理アクセス許可で、ドロップダウンから管理アクセス許可を選択します。これは必須です。共有する前にアクセス許可を選択する必要があります。

    アクセス許可の選択については、「」を参照してください管理アクセス許可の選択。

  7. アカウントで、共有する各アカウントのアカウント AWS ID を入力します。追加するには、別のアカウントの追加を選択します。

  8. [共有] を選択します。

レジストリ共有テーブルに関連付けが表示されます。外部共有の場合、関連付けステータスは、コンシューマーが招待を受け入れるまで関連付け中と表示されます。

AWS CLI

create-resource-share コマンドを使用して、レジストリ ARN とコンシューマーアカウント ID を使用して RAM リソース共有を作成します。

aws ram create-resource-share \ --name "my-registry-share" \ --resource-arns "arn:aws:agent-registry:us-east-1:111122223333:registry/MyRegistryId" \ --principals "444455556666" \ --permission-arns "arn:aws:ram::aws:permission/AWSRAMPermissionAgentRegistryForConsumer" \ --allow-external-principals

以下に置き換えます:

  • my-registry-share— リソース共有のわかりやすい名前。

  • レジストリ ARN — 共有するレジストリの ARN。

  • 444455556666— コンシューマーの AWS アカウント ID。

  • アクセス許可 ARN — アタッチするマネージドアクセス許可の ARN。を省略--permission-arnsしてデフォルトの を使用しますAWSRAMDefaultPermissionAgentRegistryReadOnly。

  • --allow-external-principals— コンシューマーアカウントが AWS Organization の外部にある場合は、このフラグを含めます。組織内部共有の場合は省略します。

共有がアクティブであることを確認します。

aws ram get-resource-share-associations \ --association-type RESOURCE \ --resource-arns "arn:aws:agent-registry:us-east-1:111122223333:registry/MyRegistryId"

共有の招待を受け入れる

レジストリが所有者の AWS Organization 外のアカウントと共有されると、コンシューマーアカウントは招待を受け取ります。コンシューマーは、共有レジストリにアクセスする前に招待を受け入れる必要があります。

注記

両方のアカウントが同じ AWS Organization にあり、Organizations との AWS RAM 共有が有効になっている場合、承認は自動的に行われます。招待は必要なく、このステップをスキップできます。

コンソール

  1. AWS エージェントレジストリコンソールを開きます。

  2. レジストリの概要ページの上部には、保留中の共有リクエストが青いバナーに表示されます (一度に最大 3 つ表示されます)。

    「新しいレジストリ共有リクエスト — アカウント 111122223333 は、2026 年 8 月 11 日にレジストリ MyRegistryId を共有したいと考えています」

  3. [Accept (承諾)] を選択します。

承諾すると、共有レジストリがコンシューマーのレジストリリストに表示されます。招待の詳細を表示を選択して、RAM AWS コンソールで共有を確認することもできます。

AWS CLI

保留中の招待を検索します。

aws ram get-resource-share-invitations \ --query 'resourceShareInvitations[?status==`PENDING`]'

応答からの招待 ARN を使用して招待を受け入れます。

aws ram accept-resource-share-invitation \ --resource-share-invitation-arn "arn:aws:ram:us-east-1:111122223333:resource-share-invitation/12345678-abcd-efgh-ijkl-123456789012"

共有招待を拒否する

共有レジストリにアクセスしない場合は、招待を拒否できます。招待を拒否すると、共有レジストリにアクセスできなくなります。

コンソール

  1. AWS エージェントレジストリコンソールを開きます。

  2. レジストリの概要ページの上部で、保留中の共有リクエストバナーを見つけます。

  3. [拒否] を選択します。

AWS CLI

保留中の招待を検索します。

aws ram get-resource-share-invitations \ --query 'resourceShareInvitations[?status==`PENDING`]'

招待を拒否します。

aws ram reject-resource-share-invitation \ --resource-share-invitation-arn "arn:aws:ram:us-east-1:111122223333:resource-share-invitation/12345678-abcd-efgh-ijkl-123456789012"
注記

共有の招待を承諾すると、アクセス許可の伝播に少し時間がかかる場合があります。

共有レジストリにアクセスする

共有がアクティブになった後 (招待の承諾または組織レベルの自動承諾)、コンシューマーは所有者のレジストリ ARN に対して独自の認証情報を使用して AWS エージェントレジストリ API を呼び出します。 APIs 使用できる特定のオペレーションは、共有にアタッチされたマネージドアクセス許可によって異なります。

例: コンシューマーとしてレコードを検出する

# List approved records in the shared registry aws agent-registry list-discoverable-registry-records \ --registry-id "arn:aws:agent-registry:us-east-1:111122223333:registry/MyRegistryId" # Search for tools aws agent-registry search-discoverable-registry-records \ --registry-ids "arn:aws:agent-registry:us-east-1:111122223333:registry/MyRegistryId" \ --search-query "order management" # Get full record details aws agent-registry batch-get-discoverable-registry-record \ --entries '[{"registryId":"arn:aws:agent-registry:us-east-1:111122223333:registry/MyRegistryId","recordIds":["arn:aws:agent-registry:us-east-1:111122223333:registry/MyRegistryId/record/MyRecordId"]}]'

例: レコードをパブリッシャーとして発行する

aws agent-registry-control create-registry-record \ --registry-id "arn:aws:agent-registry:us-east-1:111122223333:registry/MyRegistryId" \ --name "my-mcp-server" \ --display-name "Order Management MCP Server" \ --record-type MCP \ --descriptors '{"mcpServer": {"data": "{\"name\": \"order-mgmt\", \"description\": \"Order management tools\", \"version\": \"1.0.0\"}", "dataSchemaVersion": "2025-12-11"}}' \ --record-version "1.0"

アカウントとの共有を停止する

共有レジストリへのコンシューマーのアクセスを取り消すには、リソース共有からコンシューマーアカウントを削除します。

コンソール

  1. AWS エージェントレジストリコンソールを開きます。

  2. 共有するレジストリを選択します。

  3. レジストリの詳細ページで、レジストリ共有セクションまでスクロールダウンします。

  4. 削除するアカウントを選択します。

  5. [共有の停止] を選択します。

コンシューマーはすぐにレジストリにアクセスできなくなります。アクセスが完全に取り消されるまでに、短い伝達遅延 (最大 30 秒) が発生する場合があります。

AWS CLI

disassociate-resource-share を使用して共有からコンシューマーアカウントを削除します。

aws ram disassociate-resource-share \ --resource-share-arn "arn:aws:ram:us-east-1:111122223333:resource-share/12345678-1234-1234-1234-123456789012" \ --principals "444455556666"

プリンシパルの関連付けが解除されていることを確認します。

aws ram get-resource-share-associations \ --association-type PRINCIPAL \ --resource-share-arns "arn:aws:ram:us-east-1:111122223333:resource-share/12345678-1234-1234-1234-123456789012"

リソース共有全体を削除するには (すべてのコンシューマーアカウントを一度に削除する):

aws ram delete-resource-share \ --resource-share-arn "arn:aws:ram:us-east-1:111122223333:resource-share/12345678-1234-1234-1234-123456789012"

きめ細かなレコードアクセスの条件キー

AWS エージェントレジストリには、2 つのサービス固有の条件キーが用意されています。これらのキーは、カスタマー管理の RAM アクセス許可、IAM ID ポリシー、SCPsで使用して、個々のレコードレベルでアクセスを制御できます。これらは、別のアカウントがレジストリ自体を所有している場合でも、コンシューマーアカウントが所有しているレコードまたは独自のアカウントから発信されたレコードに対してのみ動作させる場合、アカウント間でレジストリを共有する場合に特に便利です。

両方のキーは、保存されたレコードから認可時に解決され、リクエスト入力から設定できないため、コンシューマーはそれらをなりすまして他のアカウントに属するレコードにアクセスすることはできません。

レジストリレコード条件キー

次の条件キーは、 API オペレーション列にリストされているレコードレベルのオペレーションに適用されます。

条件キー タイプ API オペレーション 説明

agent-registry:RecordCreatorAccount

文字列

GetRegistryRecord, UpdateRegistryRecord, DeleteRegistryRecord, SubmitRegistryRecordForApproval, UpdateRegistryRecordStatus, GetDiscoverableRegistryRecord

レジストリレコードを作成したプリンシパルの AWS アカウント ID でアクセスをフィルタリングします。保存されたレコードから認可時に解決されます。リクエスト入力から設定することはできません。

agent-registry:RecordSourceAccount

String

GetRegistryRecord, UpdateRegistryRecord, DeleteRegistryRecord, SubmitRegistryRecordForApproval, UpdateRegistryRecordStatus, GetDiscoverableRegistryRecord

自動検出されたリソースが存在する AWS アカウントなど、レジストリレコードに関連付けられたソースリソースのアカウント ID でアクセスをフィルタリングします。保存されたレコードから認可時に解決されます。リクエスト入力から設定することはできません。

注記

これらの条件キーは、特定のレコードを参照するオペレーションでのみ評価されます。これらは、以下では評価されません。

  • CreateRegistryRecord— レコードは作成時にまだ存在しないため、比較する保存済み作成者またはソースアカウントはありません。

  • SearchDiscoverableRegistryRecords、ListRegistryRecords、および ListDiscoverableRegistryRecords— これらのオペレーションは、条件キーの制限に関係なく、一致するすべてのレコードの概要を返します。キーは、列挙を検索または一覧表示するのではなく、個々のレコード読み取りおよびレコード書き込みオペレーションに適用されます。

他のアカウントのレコードをコンシューマーのビューから完全に取り除く必要がある場合は、共有アクセス許可で検索アクションとリストアクションを許可しないでください。

例: コンシューマーが作成したレコードへのアクセスを制限する

次のカスタマー管理の RAM アクセス許可により、コンシューマーは、作成者アカウントがコンシューマー自身のアカウントと一致するレコードのみを読み取り、更新、削除できます。

{ "Effect": "Allow", "Action": [ "agent-registry:GetDiscoverableRegistryRecord", "agent-registry:GetRegistryRecord", "agent-registry:UpdateRegistryRecord", "agent-registry:DeleteRegistryRecord" ], "Condition": { "StringEquals": { "agent-registry:RecordCreatorAccount": "${aws:PrincipalAccount}" } } }

${aws:PrincipalAccount} ポリシー変数は評価時に動的に解決されます。各コンシューマーは、共有レジストリ内であっても、自分で作成したレコードにのみアクセスできます。

例: コンシューマーのアカウントから送信されるレコードへのアクセスを制限する

次のカスタマー管理の RAM アクセス許可により、コンシューマーはソースリソースがコンシューマー自身のアカウントにあるレコードのみを読み取ることができます。これは、コンシューマーが所有するリソースからレコードが自動検出された場合に便利です。

{ "Effect": "Allow", "Action": [ "agent-registry:GetDiscoverableRegistryRecord", "agent-registry:GetRegistryRecord" ], "Condition": { "StringEquals": { "agent-registry:RecordSourceAccount": "${aws:PrincipalAccount}" } } }

カスタマー管理の RAM アクセス許可を作成する手順については、 AWS 「RAM ユーザーガイド」の「カスタマー管理のアクセス許可の作成」を参照してください。

トラブルシューティング

症状 考えられる原因 解決策

コンシューマーが招待を受け入れAccessDeniedExceptionた後に取得する

共有がまだ完全にアクティブになっていないか、コンシューマーの IAM ロールにアクセスagent-registry:*許可がありません。

共有ステータスが ACTIVEを使用していることを確認しますaws ram get-resource-shares --resource-owner OTHER-ACCOUNTS。コンシューマーの ID ポリシーに、 管理アクセス許可によって付与されたアクションが含まれていることを確認します。

リソースの関連付けステータスは、共有の作成FAILED後に表示されます。

レジストリ ARN が RAM で受け入れられませんでした。

ARN が で始まりarn:aws:agent-registry:、レジストリのステータスが であることを確認しますREADY。

コンシューマーが保留中の招待を見つけることができない

アカウントは同じ AWS Organization にあり、RAM 組織共有が有効になっています。

組織内部共有の場合、承認は自動的に行われます。共有レジストリが に表示されることを確認しますaws ram list-resources --resource-owner OTHER-ACCOUNTS --resource-type agent-registry:Registry。

コンシューマーは を呼び出すことはできますlist-discoverable-registry-recordsが、 searchまたは は 403 batch-getを返します

カスタマー管理の RAM アクセス許可がアタッチされ、 SearchDiscoverableRegistryRecordsまたは ListDiscoverableRegistryRecordsなしでのみ が付与されますGetDiscoverableRegistryRecord。

を使用してアタッチされているアクセス許可を確認しますaws ram list-resource-share-permissions --resource-share-arn …​。 AWS 管理アクセス許可 (4 つすべてにリスト、検索、取得が含まれます) に切り替えるか、カスタマー管理アクセス許可を更新して欠落しているアクションを含めます。

共有を停止しても、コンシューマーはレジストリに短時間アクセスできます。

リソースベースのポリシーの伝播には短い遅延があります。

約 30 秒待ってから再試行します。アクセス取り消しは結果的に一貫しています。

ram:CreateResourceShare は AccessDeniedException を返す

所有者の IAM ロールに RAM アクセス許可がありません。

所有者の IAM ロールagent-registry:PutResourcePolicyに ram:CreateResourceShareと をアタッチします。