为 Amazon SageMaker 模型卡设置跨账户支持 - Amazon SageMaker

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

为 Amazon SageMaker 模型卡设置跨账户支持

使用 Amazon SageMaker 模型卡片中的跨账户支持在 AWS 账户之间共享模型卡。创建模型卡的账户是模型卡账户。模型卡账户中的用户与共享账户 共享模型卡。共享账户中的用户可以更新模型卡片或创建PDFs模型卡。

模型卡账户中的用户通过 AWS Resource Access Manager (AWS RAM) 共享他们的模型卡。 AWS RAM 帮助您跨 AWS 账户共享资源。有关简介 AWS RAM,请参阅什么是 AWS Resource Access Manager?

以下是共享模型卡的过程:

  1. 模型卡账户中的用户使用 AWS Resource Access Manager设置跨账户模型卡共享。

  2. 如果模型卡使用 AWS KMS 密钥加密,则设置模型共享的用户还必须为共享账户中的用户提供 AWS KMS 权限。

  3. 共享账户中的用户接受资源共享的邀请。

  4. 共享账户中的用户向其他用户提供访问模型卡的权限。

如果您是模型卡账户中的用户,请参阅以下章节:

如果您是共享账户中的用户,请参阅在共享账户中设置IAM用户权限,了解如何为自己和账户中的其他用户设置权限。

设置跨账户模型卡共享

使用 AWS Resource Access Manager (AWS RAM) 授予您 AWS 账户中的用户查看或更新在其他 AWS 账户中创建的模型卡片的权限。

要设置模型卡共享,必须创建资源共享。资源共享指定:

  • 所共享的资源

  • 有权访问资源的人或物

  • 资源的托管权限

有关资源共享的更多信息,请参阅 AWS RAM的术语和概念。我们建议您在完成创建资源共享的过程之前,花点时间 AWS RAM 从概念上进行理解。

重要

您必须拥有创建资源共享的权限。有关权限的更多信息,请参阅如何 AWS RAM 使用IAM

有关创建资源共享的过程以及有关这些过程的其他信息,请参阅创建资源共享

在创建资源共享的过程中,您需要指定 sagemaker:ModelCard 作为资源类型。您还必须指定基于资源的策略的 Amazon AWS RAM 资源编号 (ARN)。您可以指定默认策略或具有创建模型卡片的额外权限PDF的策略。

使用默认的基于 AWSRAMPermissionSageMakerModelCards 资源的策略,共享账户中的用户有权执行以下操作:

使用基于 AWSRAMPermissionSageMakerModelCardsAllowExport 资源的策略,共享账户中的用户有权执行上述所有操作。他们还有权创建模型卡导出作业并通过以下操作对其进行描述:

共享账户中的用户可以创建导出任务来生成PDF模型卡片。他们还可以描述为查找 Amazon S3 而创建PDF的导出任务URI。

模型卡和导出作业是资源。模型卡账户拥有共享账户中的用户创建的导出作业。例如,账户 A 中的用户与共享账户 B 共享模型卡 X。账户 B 中的用户为模型卡 X 创建导出作业 Y,将输出结果存储在账户 B 中用户指定的 Amazon S3 位置。尽管账户 B 创建了导出作业 Y,但它属于账户 A。

每个 AWS 账户都有资源配额。有关与模型卡相关的配额的信息,请参阅 Amazon SageMaker 终端节点和配额

为共享账户设置 AWS KMS 权限

如果您共享的模型卡已使用 AWS Key Management Service 密钥加密,则还需要与共享帐户共享对密钥的访问权限。否则,共享账户中的用户将无法查看、更新或导出模型卡。有关概述 AWS KMS,请参阅AWS Key Management Service

要向共享账户中的用户提供 AWS KMS 权限,请使用以下声明更新您的密钥策略:

{ "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::shared-account-id::role/example-IAM-role" ] }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", ] "Resource": "arn:aws:kms:AWS-Region-of-model-card-account:model-card-account-id:key/AWS KMS-key-id" "Condition": { "Bool": {"kms:GrantIsForAWSResource": true }, "StringEquals": { "kms:ViaService": [ "sagemaker.AWS-Region.amazonaws.com", "s3.AWS-Region.amazonaws.com" ], }, "StringLike": { "kms:EncryptionContext:aws:sagemaker:model-card-arn": "arn:aws:sagemaker:AWS-Region:model-card-account-id:model-card/model-card-name" } } }

上述语句为共享账户中的用户提供了 kms:Decryptkms:GenerateDataKey 权限。使用 kms:Decrypt,用户可以解密模型卡。使用kms:GenerateDataKey,用户可以加密他们更新的或他们创建PDFs的模型卡。

获取对资源共享邀请的回复

创建资源共享后,您在资源共享中指定的共享账户会收到加入该共享的邀请。这些账户必须接受邀请才能访问资源。

有关接受资源共享邀请的信息,请参阅 Resource Acc ess Manager 用户指南中的使用共享 AWS 资源。AWS

在共享账户中设置IAM用户权限

以下信息假设您已接受模型卡账户发出的资源共享邀请。有关接受资源共享邀请的更多信息,请参阅使用共享 AWS 资源

您和您账户中的其他用户使用IAM角色访问从模型卡账户共享的模型卡片。使用以下模板更改IAM角色的策略。您可以根据自己的使用案例修改模板。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:DescribeModelCard", "sagemaker:UpdateModelCard", "sagemaker:CreateModelCardExportJob", "sagemaker:ListModelCardVersions", "sagemaker:DescribeModelCardExportJob" ], "Resource": [ "arn:aws:sagemaker:AWS-Region:AWS-model-card-account-id:model-card/example-model-card-name-0", "arn:aws:sagemaker:AWS-Region:AWS-model-card-account-id:model-card/example-model-card-name-1/*" ] }, { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-storing-the-pdf-of-the-model-card/model-card-name/*" } ] }

要访问使用加密的模型卡 AWS KMS,您必须为账户中的用户提供以下 AWS KMS 权限。

{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt", ], "Resource": "arn:aws:kms:AWS-Region:AWS-account-id-where-the-model-card-is-created:key/AWS Key Management Service-key-id" }