

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 跨账户可发现性
<a name="model-registry-ram"></a>

通过探索和访问在其他账户中注册的模型软件包组，数据科学家和数据工程师可以促进数据一致性、简化协作并减少重复作业。借助 Amazon SageMaker 模型注册表，您可以跨账户共享模型包组。与资源共享相关的权限分为两类：
+ **可发现性**：*可发现性*是指资源用户账户查看一个或多个资源所有者账户共享的模型软件包组的能力。只有当资源所有者将必要的资源策略附加到共享模型软件包组时，才能实现可发现性。资源使用者可以在 AWS RAM 用户界面中查看所有共享的模型包组，以及 AWS CLI。
+ **可访问性**：*可访问性*是指资源用户账户使用共享模型软件包组的能力。例如，如果资源用户拥有必要的权限，他们可以从不同的账户注册或部署模型软件包。

**Topics**
+ [在 Studio 中共享模型组](model-registry-ram-studio-share.md)
+ [在 Studio 中查看共享模型组](model-registry-ram-studio-view.md)
+ [可访问性](model-registry-ram-accessibility.md)
+ [设置可发现性](model-registry-ram-discover.md)
+ [查看共享模型软件包组](model-registry-ram-view-shared.md)
+ [从资源共享中分离主体并删除资源共享](model-registry-ram-dissociate.md)
+ [促进权限和资源共享](model-registry-ram-promote.md)

# 在 Studio 中共享模型组
<a name="model-registry-ram-studio-share"></a>

您可以使用 Studio 用户界面与其他 AWS 委托人（AWS 账户 或 AWS Organizations）共享您的模型组。这种简化的共享流程可实现跨团队协作，推广最佳实践，并促进各团队之间的模型重用。下面将说明如何在 Studio 中共享模型组。

此功能在 Amazon SageMaker Studio 经典版中不可用。
+ 如果 Studio 是您的默认体验，则用户界面与 [亚马逊 SageMaker 工作室用户界面概述](studio-updated-ui.md) 中的映像类似。
+ 如果 Studio Classic 是您的默认体验，则用户界面与 [亚马逊 SageMaker Studio 经典用户界面概述](studio-ui.md) 中的映像类似。

要共享模型组，首先需要确保在共享资源的执行角色中添加了以下权限。

1. [获取执行角色](sagemaker-roles.md#sagemaker-roles-get-execution-role)。

1. [更新角色权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html)，内容如下：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ram:ListPermissions",
                   "ram:GetPermission",
                   "ram:GetResourceShareAssociations",
                   "ram:ListResourceSharePermissions",
                   "ram:DeleteResourceShare",
                   "ram:GetResourceShareInvitations",
                   "ram:AcceptResourceShareInvitation"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

下面将说明如何与其他 AWS 主体共享模型组。

**与其他 AWS 负责人共享模型组**

1. 按照 [启动亚马逊 SageMaker Studio](studio-updated-launch.md) 中的说明打开 Studio 管理控制台。

1. 从左侧导航窗格中选择**模型**。

1. 如果尚未选择**已注册模型**选项卡，请选择该选项卡。

1. 在**已注册模型**选项卡标签下方，选择**模型组**（如果尚未选择）。

1. 选择注册模型。

1. 在右上角选择**共享**。这将打开**共享模型组**部分。

   如果在屏幕底部看到错误信息，则需要为执行角色添加适当的权限。更多信息，请参阅上述权限。

1. 在**资源共享**下，选择要更新的资源共享或创建新的资源共享。

1. 在**管理权限**下，选择一个管理权限来控制模型的访问级别。

   可查看的选项包括已为您创建的权限或您在 AWS RAM中自定义的权限。请参阅 *AWS Resource Access Manager* 用户指南中的[创建和使用客户管理的权限](https://docs.aws.amazon.com/ram/latest/userguide/create-customer-managed-permissions.html)。

1. **在 “**AWS 委托人**” 下，输入您想要共享 AWS 账户 IDs 的 AR AWS Organizations N，然后选择 “添加”。**您可以通过这种方式添加多个 AWS 委托人。

1. 满足最低要求后，即可使用**共享**按钮。验证设置后，选择**共享**。

   共享成功后，屏幕底部会出现绿色横幅信息。

# 在 Studio 中查看共享模型组
<a name="model-registry-ram-studio-view"></a>

您可以查看与您或属于同一 AWS Organizations的帐户共享的模型组。如果与属于该模型组的帐户共享该模型组 AWS Organizations，则该共享模型组将自动获得批准并可供您在 Studio 中查看。否则，您需要先批准待发邀请，然后才能在 Studio 中查看共享模型组。下面将说明如何在 Studio 中查看共享模型组和接受模型组共享邀请。

此功能在 Amazon SageMaker Studio 经典版中不可用。
+ 如果 Studio 是您的默认体验，则用户界面与 [亚马逊 SageMaker 工作室用户界面概述](studio-updated-ui.md) 中的映像类似。
+ 如果 Studio Classic 是您的默认体验，则用户界面与 [亚马逊 SageMaker Studio 经典用户界面概述](studio-ui.md) 中的映像类似。

下面将说明如何查看和接受与您共享的模型组。

**查看并接受与您共享的模型组**

1. 按照 [启动亚马逊 SageMaker Studio](studio-updated-launch.md) 中的说明打开 Studio 管理控制台。

1. 从左侧导航窗格中选择**模型**。

1. 如果尚未选择**已注册模型**选项卡，请选择该选项卡。

1. 在**已注册模型**选项卡标签下方，选择**模型组**（如果尚未选择）。

1. 选择**与我共享**查看与您共享的模型组。

1. 接受待处理的模型组邀请：

   1. 选择**查看待批**，打开**待批邀请**列表。

   1. 如果您想接受邀请，请选择**接受**。

# 可访问性
<a name="model-registry-ram-accessibility"></a>

如果资源用户拥有使用共享模型软件包组的访问权限，他们就可以注册或部署模型软件包组的一个版本。有关资源用户如何注册共享模型软件包组的详情，请参阅 [从其他账户注册模型版本](model-registry-version.md#model-registry-version-xaccount)。有关资源用户如何部署共享模型软件包组的详细信息，请参阅 [从其他账户部署模型版本](model-registry-deploy.md#model-registry-deploy-xaccount)。

# 设置可发现性
<a name="model-registry-ram-discover"></a>

资源所有者可通过创建资源共享和为实体附加资源策略来设置模型软件包组的可发现性。有关如何在中创建常规资源共享的详细步骤 AWS RAM，请参阅[AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html)文档中的[创建资源共享](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-create)。

按照以下说明使用 AWS RAM 控制台或模型注册表资源策略 APIs设置模型包组的可发现性。

------
#### [ AWS CLI ]

1. 在模型所有者账户中创建资源共享。

   1. 模型所有者使用 SageMaker AI 资源策略 API [put-model-package-group-](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/put-model-package-group-policy.html) policy 将资源策略附加到模型包组，如以下命令所示。

      ```
      aws sagemaker put-model-package-group-policy
      --model-package-group-name <model-package-group-name>
      --resource-policy "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":[{\"Sid\":
      \"ExampleResourcePolicy\",\"Effect\":\"Allow\",\"Principal\":<principal>,
      \"Action\":[\"sagemaker:DescribeModelPackage\",
      \"sagemaker:ListModelPackages\",\"sagemaker:DescribeModelPackageGroup\"],
      \"Resource\":[\"<model-package-group-arn>,\"
      \"arn:aws:sagemaker:<region>:<owner-account-id>:model-package/
      <model-package-group-name>/*\"]}]}"
      ```
**注意**  
资源策略可以附加不同的行动组合。对于自定义策略，创建的权限应由模型软件包组所有者推广，只有附加了推广权限的实体才能被发现。无法通过 AWS RAM发现或管理不可推广的资源共享。

   1. 要检查是否 AWS RAM 创建了资源共享 ARN，请使用以下命令：

      ```
      aws ram get-resource-share-associations --association-type resource --resource-arn <model-package-group-arn>
      ```

      响应中包含实体*resource-share-arn*的。

   1. 要检查所附策略权限是托管式策略还是自定义策略，请使用以下命令：

      ```
      aws ram list-resource-share-permissions --resource-share-arn <resource-share-arn>
      ```

      `featureSet` 字段的值可以是 `CREATED_FROM_POLICY` 或 `STANDARD`，其定义如下：
      + `STANDARD`：权限已存在。
      + `CREATED_FROM_POLICY`：需要提升权限才能发现实体。有关更多信息，请参阅 [促进权限和资源共享](model-registry-ram-promote.md)。

1. 接受模型用户账户中的资源共享邀请。

   1. 模型软件包组用户接受资源共享邀请。要查看所有资源邀请，请运行以下命令：

      ```
      aws ram get-resource-share-invitations
      ```

      识别状态为 `PENDING` 的申请，并包含所有者账户的 ID。

   1. 使用以下命令接受模型所有者发出的资源共享邀请：

      ```
      aws ram accept-resource-share-invitation --resource-share-invitation-arn <resource-share-invitation-arn>
      ```

------
#### [ AWS RAM console ]

1. 登录 [AWS RAM 控制台](https://console.aws.amazon.com/ram/home)。

1. 完成以下步骤，从模型软件包组所有者账户创建资源共享。

   1. 完成以下步骤指定资源共享详细信息。

      1. 在 **Name** 字段中，为资源添加一个唯一名称。

      1. 在**资源**卡中，选择下拉菜单并选择 **SageMaker AI Model Package Groups**。

      1. 选择模型软件包组资源共享 ARN 的复选框。

      1. 在**选择资源**卡中，选择模型软件包组资源共享的复选框。

      1. 在**标签**卡中，为要添加到资源共享中的标签添加键值对。

      1. 选择**下一步**。

   1. 完成以下步骤，将管理权限与资源共享关联。

      1. 如果使用管理权限，请在**管理权限**下拉菜单中选择管理权限。

      1. 如果使用自定义权限，请选择**客户管理权限**。在这种情况下，无法立即发现模型软件包组。创建资源共享后，必须推广权限和资源策略。有关如何提升权限和资源共享的信息，请参阅 [促进权限和资源共享](model-registry-ram-promote.md)。有关如何附加自定义权限的更多信息，请参阅[在 AWS RAM中创建和使用客户管理的权限](https://docs.aws.amazon.com/ram/latest/userguide/create-customer-managed-permissions.html)。

      1. 选择**下一步**。

   1. 完成以下步骤，授予主体访问权限。

      1. 选择**允许与任何人共享**以允许与组织外的账户共享，或选择**仅允许在组织内共享**。

      1. 在**选择主体类型**下拉菜单中，添加要添加的主体类型和 ID。

      1. 为共享添加并选择所选主体。

      1. 选择**下一步**。

   1. 查看显示的共享配置，然后选择**创建资源共享**。

1. 接受用户账户发出的资源共享邀请。一旦模型所有者创建了资源共享和主体关联，指定的资源用户账户就会收到加入资源共享的邀请。资源用户账户可在 AWS RAM 管理控制台中的[与我共享：资源共享](https://console.aws.amazon.com/ram/home#SharedResourceShares:)页面查看并接受邀请。有关接受和查看中资源的更多信息 AWS RAM，请参阅[访问与您共享的 AWS 资源](https://docs.aws.amazon.com//ram/latest/userguide/working-with-shared.html)。

------

# 查看共享模型软件包组
<a name="model-registry-ram-view-shared"></a>

在资源所有者完成之前创建资源共享的步骤并且使用者接受共享邀请后，使用者可以在 AWS RAM 控制台中使用 AWS CLI 或查看共享模型包组。

## AWS CLI
<a name="model-registry-ram-view-shared-cli"></a>

要查看共享的模型软件包组，请在模型用户账户中使用以下命令：

```
aws sagemaker list-model-package-groups --cross-account-filter-option CrossAccount
```

## AWS RAM 控制台
<a name="model-registry-ram-view-shared-ram"></a>

在 AWS RAM 控制台中，资源所有者和使用者可以查看共享模型包组。资源所有者可以通过以下步骤查看与用户共享的模型软件包组：[查看您在 AWS RAM中创建的资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-view-rs.html)。资源用户可以按照[查看与您共享的资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-shared-view-rs.html)中的步骤，查看所有者共享的模型软件包组。

# 从资源共享中分离主体并删除资源共享
<a name="model-registry-ram-dissociate"></a>

资源所有者可以使用或控制台取消委托人与资源共享的关联以获得一组权限，或者删除整个资源共享。 AWS CLI AWS RAM 有关如何从资源共享中分离主体的详细信息，请参阅 [AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) 文档中的[更新资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-update.html)。有关如何删除资源共享的详细信息，请参阅 [AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) 文档中的[删除资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-delete.html)。

## AWS CLI
<a name="model-registry-ram-dissociate-cli"></a>

要解除委托人与资源共享的关联，请按如下方式使用命令 [dissociate-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/disassociate-resource-share.html)：

```
aws ram disassociate-resource-share --resource-share-arn <resource-share-arn> --principals <principal>
```

要删除资源共享，请[delete-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/delete-resource-share.html)按以下方式使用命令：

```
aws ram delete-resource-share --resource-share-arn <resource-share-arn>
```

## AWS RAM 控制台
<a name="model-registry-ram-dissociate-ram"></a>

有关如何从资源共享中分离主体的更多详情，请参阅 [AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) 文档中的[更新资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-update.html)。有关如何删除资源共享的详细信息，请参阅 [AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) 文档中的删除资源共享。

# 促进权限和资源共享
<a name="model-registry-ram-promote"></a>

如果使用自定义（客户管理）权限，则需要推广权限和相关资源共享，以便模型软件包组可被发现。完成以下步骤，促进权限和资源共享。

1. 要将您的自定义权限提升为可供访问 AWS RAM，请使用以下命令：

   ```
   aws ram promote-permission-created-from-policy —permission-arn <permission-arn>
   ```

1. 使用以下命令推广资源共享：

   ```
   aws ram promote-resource-share-created-from-policy --resource-share-arn <resource-share-arn>
   ```

如果在执行前面的步骤时出现 `OperationNotPermittedException` 错误，说明实体不可被发现，但可以被访问。例如，如果资源所有者在资源策略中附加了 `“Principal”: {“AWS”: “arn:aws:iam::3333333333:role/Role-1”}` 等假定角色本金，或者如果资源策略允许 `“Action”: “*”`，则相关的模型软件包组既不可推广，也不可被发现。