本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
与跨账户共享注册表 AWS RAM
您可以使用 AWS 资源访问管理器 (RAM) 与其他 AWS 账户共享 AWS 代理注册表。通过 RAM 共享,您自己的账户可以发现、发布或管理注册表中的记录,而无需拥有注册表本身。
当您共享注册表时,RAM 会代表您创建和管理基于资源的策略。您可以选择托管权限来控制消费者账户可以执行的操作,其余操作由 RAM 处理。
跨账户共享的工作原理
Cross-account 共享遵循三个步骤:
-
注册表所有者共享注册表-所有者创建 RAM 资源共享,选择托管权限,并添加一个或多个消费者账户 ID 作为委托人。RAM 将基于资源的策略附加到注册表。
-
消费者接受邀请 -对于所有者 AWS 组织以外的账户,RAM 会发送消费者必须接受的邀请。对于同一组织内的帐户(启用了与组织共享 RAM),系统会自动接受——无需邀请。
-
消费者访问共享注册表 — 消费者使用自己的凭据对应所有者的注册表 ARN 调用 AWS 代理注册表 API。他们可以执行的操作取决于附加到共享的管理权限。
主要特性:
-
只有注册表所有者才能发起共享。
-
RAM 代表您创建和管理基于资源的策略——您可以选择托管权限来控制其授予的操作。
-
您选择的托管权限决定了消费者可以做什么(发现、发布或管理)。
-
Control-plane 注册表变更 (
UpdateRegistry,DeleteRegistry) 始终归所有者所有,不能通过 RAM 进行委托。
先决条件
在共享注册表之前,请确保满足以下要求:
在注册表所有者账户中:
-
注册表处于
READY状态。 -
调用者拥有 AWS RAM 操作(
ram:CreateResourceShare、、、ram:AssociateResourceShare、ram:DisassociateResourceShareram:DeleteResourceShareram:GetResourceShares、ram:GetResourceShareAssociations)和 IAM 权限agent-registry:PutResourcePolicy。
在消费者账户中:
-
调用者拥有 AWS 代理注册表操作的 IAM 权限,这些权限与附加到共享的托管权限相对应。
-
对于外部(跨组织)共享,调用者还需要
ram:GetResourceShareInvitations和ram:AcceptResourceShareInvitation(或ram:RejectResourceShareInvitation)。
对于组织内部共享:
-
AWS 必须启用与 AWS 组织共享 RAM。有关更多信息,请参阅 AWS RAM 用户指南中的启用与 AWS 组织共享。
-
启用组织共享后,组织内的账户无需接受邀请,共享会自动生效。
的 RAM 管理权限 AWS 代理注册表
共享注册表时,您可以附加一个 AWS RAM 管理权限,用于控制消费者账户可以执行哪些操作。 AWS 代理注册表提供四种托管权限:一种默认权限和三种基于角色的权限。这些允许您授予每个用例所需的最低访问权限。
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) |
|
|
发现工具并调用 MCP 端点 |
|
|
发布和管理记录 + 探索工具 |
|
|
完整记录生命周期(发布 + approve/reject /deprecate) |
|
提示
对于消费者账户代理需要发现和调用工具的典型共享场景,我们建议使用消费者权限。
创建客户管理的权限
对于高级用例(例如仅限特定账户使用条件密钥创建的记录),您可以创建客户管理的 RAM 权限。 Customer-managed 权限允许您定义引用 AWS 代理注册表条件键的自定义Condition块。
有关创建客户管理权限的更多信息,请参阅 AWS RAM 用户指南中的可共享资源。
有关可用于 AWS 代理注册表的条件密钥,请参见用于细粒度记录访问的条件密钥。
与其他账户共享注册表
只有注册表所有者才能发起共享。
控制台
-
打开AWS 代理注册表控制台
。 -
选择要共享的注册表。
-
在注册表详细信息页面上,向下滚动到注册表共享部分。
-
选择 “共享注册表” 。
-
在共享注册表面板的 AWS 资源访问管理器 (RAM) 共享下,选择以下选项之一:
-
AWS Organization-only RAM 共享 —您指定的账户必须位于您的 AWS 组织中。必须从 AWS RAM 设置页面启用与 AWS 组织共享。
-
外部 RAM 共享-账户可以在您的 AWS 组织内或组织外部。
-
-
在 AWS RAM 共享管理权限下,从下拉列表中选择托管权限。这是必填项——必须选择权限才能共享。
有关选择权限的帮助,请参阅选择托管权限。
-
在 “帐户” 下,输入您要共享的每个账户的账户 ID。 AWS 选择 “添加其他帐户” 以添加更多帐户。
-
选择共享。
注册表共享表显示了关联。对于外部共享,在消费者接受邀请之前,关联状态显示为正在关联。
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 组织之外,请添加此标志。将其省略以供组织内部共享。
验证共享是否处于活动状态:
aws ram get-resource-share-associations \ --association-type RESOURCE \ --resource-arns "arn:aws:agent-registry:us-east-1:111122223333:registry/MyRegistryId"
接受分享邀请
当注册表与所有者 AWS 组织之外的账户共享时,消费者账户会收到邀请。消费者必须接受邀请才能访问共享注册表。
注意
如果两个账户位于同一个 AWS 组织中,并且启用了与组织共享 AWS RAM 的功能,则会自动接受——无需邀请,您可以跳过此步骤。
控制台
-
打开AWS 代理注册表控制台
。 -
在注册表概述页面的顶部,蓝色横幅显示待处理的共享请求(一次最多显示 3 个):
“新的注册共享申请——账户 111122223333 想在 2026 年 8 月 11 日 MyRegistryId 与你共享注册表。”
-
选择 Accept (接受)。
接受后,共享注册表将出现在消费者的注册表列表中。您也可以选择查看邀请详细信息以在 AWS RAM 控制台中查看共享。
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"
拒绝分享邀请
如果您不想访问共享注册表,则可以拒绝邀请。拒绝邀请意味着您将无权访问共享注册表。
控制台
-
打开AWS 代理注册表控制台
。 -
在注册表概述页面的顶部,找到待处理的共享请求横幅。
-
选择 Reject (拒绝)。
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。可用的具体操作取决于附加到共享的托管权限。
示例:以消费者身份发现记录
# 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"
停止与账号共享
要撤消使用者对共享注册表的访问权限,请从资源共享中移除该消费者账户。
控制台
-
打开AWS 代理注册表控制台
。 -
选择您要共享的注册表。
-
在注册表详细信息页面上,向下滚动到注册表共享部分。
-
选择您要移除的账户。
-
选择 Stop sharing(停止共享)。
消费者立即失去对注册表的访问权限。在完全撤消访问权限之前,可能存在短暂的传播延迟(最多 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 代理注册表提供两个特定于服务的条件密钥。您可以在客户管理的 RAM 权限、IAM 身份策略和 SCP 中使用这些密钥来控制个人记录级别的访问权限。它们在跨账户共享注册表时特别有用,在这些账户中,即使另一个账户拥有注册表本身,你也希望消费者账户仅根据其拥有或来自自己账户的记录进行操作。
这两个密钥都是在授权时从存储的记录中解析出来的,不能通过请求输入进行设置,因此消费者无法伪造它们以获取对属于其他账户的记录的访问权限。
注册表记录条件键
以下条件密钥适用于 API 操作列中列出的记录级别操作。
| 条件键 | Type | API 操作 | 说明 |
|---|---|---|---|
|
|
字符串 |
|
按创建注册记录的委托人的 AWS 账户 ID 筛选访问权限。在授权时从存储的记录中解析;无法通过请求输入进行设置。 |
|
|
字符串 |
|
按与注册表记录关联的源资源的 AWS 账户 ID 筛选访问权限,例如,自动检测到的资源所在的帐户。在授权时从存储的记录中解析;无法通过请求输入进行设置。 |
注意
这些条件键仅对引用特定记录的操作进行评估。不对它们进行评估的依据是:
-
CreateRegistryRecord—记录在创建时尚不存在,因此没有存储的创建者或源帐户可供比较。 -
SearchDiscoverableRegistryRecordsListRegistryRecords、和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 用户指南中的创建客户管理的权限。
问题排查
| 症状 | 可能原因 | 解决方案 |
|---|---|---|
|
消费者接受邀请 |
该共享尚未完全激活,或者消费者的 IAM 角色缺少 |
确认共享状态正在 |
|
创建共享 |
RAM 未接受注册表 ARN。 |
确认 ARN 开头为 |
|
消费者找不到待处理的邀请 |
账户位于启用了 RAM AWS 组织共享的同一个组织中。 |
对于组织内部共享,系统会自动接受。验证共享注册表是否显示在中 |
|
消费者可以致电 |
附加了客户管理的 RAM 权限,该权限仅授予 |
使用验证附加了哪个权限 |
|
停止共享后,消费者仍然可以短暂访问注册表 |
Resource-based 策略传播的延迟很短。 |
等待大约 30 秒,然后重试。访问权限撤销最终是一致的。 |
|
|
所有者的 IAM 角色缺少 RAM 权限。 |
将 |