跨账户可发现性 - Amazon SageMaker

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

跨账户可发现性

通过探索和访问在其他账户中注册的模型包群组,数据科学家和数据工程师可以提高数据一致性、简化协作并减少重复工作。借助 Amazon SageMaker 模型注册表,您可以跨账户共享模型包组。与资源共享相关的权限分为两类:

  • 可发现性可发现性是指资源使用者账户能够查看一个或多个资源所有者账户共享的模型包组。只有当资源所有者将必要的资源策略附加到共享模型包组时,才有可能被发现。资源使用者可以在 AWS RAM 用户界面中查看所有共享的模型包组,以及 AWS CLI。

  • 可访问性:可访问性是指资源使用者帐户使用共享模型包群组的能力。例如,如果资源使用者具有必要的权限,他们可以从其他账户注册或部署模型包。

可访问性

如果资源使用者拥有使用共享模型包组的访问权限,则他们可以注册或部署该模型包组的版本。有关资源使用者如何注册共享模型包组的详细信息,请参阅从其他账户注册模型版本。有关资源使用者如何部署共享模型包组的详细信息,请参阅从其他账户部署模型版本

可发现性

资源所有者可以通过创建资源共享并将资源策略附加到实体来设置模型包组的可发现性。有关如何在中创建常规资源共享的详细步骤 AWS RAM,请参阅AWS RAM文档中的创建资源共享

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

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

    1. 模型所有者使用资源策略 API put-model-package-group- policy 将 SageMaker 资源策略附加到模型包组,如以下命令所示。

      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

    2. 要检查是否 AWS RAM 创建了资源共享ARN,请使用以下命令:

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

      响应包含 resource-share-arn 对于实体。

    3. 要检查附加的策略权限是托管策略还是自定义策略,请使用以下命令:

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

      featureSet字段可以采用CREATED_FROM_POLICY或的值STANDARD,其定义如下:

      • STANDARD: 权限已存在。

      • CREATED_FROM_POLICY:需要提升权限才能发现该实体。有关更多信息,请参阅 提升权限和资源共享

  2. 在模型使用者账户中接受资源共享邀请。

    1. 模型包组使用者接受资源共享邀请。要查看所有资源邀请,请运行以下命令:

      aws ram get-resource-share-invitations

      确定具有状态的请求,PENDING并包含所有者账户的账户 ID。

    2. 使用以下命令接受模型所有者的资源共享邀请:

      aws ram accept-resource-share-invitation --resource-share-invitation-arn <resource-share-invitation-arn>
AWS RAM console
  1. 登录 AWS RAM 控制台

  2. 完成以下步骤,使用模型包群组所有者账户创建资源共享。

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

      1. 名称字段中,为您的资源添加一个唯一的名称。

      2. 资源卡中,选择下拉菜单,然后选择 SageMaker Model Package Groups

      3. 选中模型包组资源共享ARN的复选框。

      4. 选择资源卡片中,选中您的模型包组资源共享的复选框。

      5. 标签卡片中,为要添加到资源共享中的标签添加键值对。

      6. 选择下一步

    2. 完成以下步骤,将托管权限关联到资源共享。

      1. 如果您使用托管权限,请在 “托管权限” 下拉菜单中选择托管权限

      2. 如果您使用自定义权限,请选择客户托管权限。在这种情况下,模型包组无法立即被发现。创建资源共享后,您必须提升权限和资源策略。有关如何提升权限和资源共享的信息,请参阅提升权限和资源共享。有关如何附加自定义权限的更多信息,请参阅中的创建和使用客户托管权限 AWS RAM

      3. 选择下一步

    3. 完成以下步骤以向委托人授予访问权限。

      1. 选择 “允许与任何人共享” 以允许与组织外部的帐户共享,或者选择 “仅允许在组织内共享”。

      2. 选择主体类型下拉菜单中,添加要添加的委托人类型和 ID。

      3. 为共享添加并选择所选的委托人。

      4. 选择下一步

    4. 查看显示的共享配置,然后选择创建资源共享

  3. 接受消费者账户的资源共享邀请。模型所有者创建资源共享和委托人关联后,指定的资源使用者账户就会收到加入资源共享的邀请。资源使用者账户可以在 AWS RAM 控制台的 “与我共享:资源共享” 页面中查看和接受邀请。有关接受和查看中资源的更多信息 AWS RAM,请参阅访问与您共享的 AWS 资源

查看共享模型包组

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

AWS CLI

要查看共享的模型包组,请在模型使用者账户中使用以下命令:

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

AWS RAM 控制台

在 AWS RAM 控制台中,资源所有者和使用者可以查看共享模型包组。资源所有者可以按照您在中创建的查看资源共享中的步骤来查看与使用者共享的模型包组 AWS RAM。资源使用者可以按照查看与您共享的资源共享中的步骤查看所有者共享的模型包组。

解除委托人与资源共享的关联并移除资源共享

资源所有者可以使用或控制台取消委托人与资源共享的关联以获得一组权限,或者删除整个资源共享。 AWS CLI AWS RAM 有关如何解除委托人与资源共享的关联的详细信息,请参阅文档中的更新资源共享AWS RAM有关如何删除资源共享的详细信息,请参阅AWS RAM文档中的删除资源共享

AWS CLI

要解除委托人与资源共享的关联,请按如下方式使用命令 dissociate-resource-share

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

要删除资源共享,请delete-resource-share按以下方式使用命令:

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

AWS RAM 控制台

有关如何解除委托人与资源共享的关联的更多详细信息,请参阅文档中的更新资源共享AWS RAM有关如何删除资源共享的更多详细信息,请参阅AWS RAM文档中的删除资源共享

提升权限和资源共享

如果您使用自定义(客户管理)权限,则需要提升权限和关联的资源共享,才能发现模型包组。完成以下步骤以提升权限和资源共享。

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

    aws ram promote-permission-created-from-policy —permission-arn <permission-arn>
  2. 使用以下命令提升资源共享:

    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”: “*”,则关联的模型包组不可升级也不可发现。