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