对 Amazon SageMaker 模型卡的跨账户支持 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

对 Amazon SageMaker 模型卡的跨账户支持

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

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

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

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

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

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

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

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

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

设置跨账户模型卡共享

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

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

  • 所共享的资源

  • 有权访问资源的人或物

  • 资源的托管权限

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

重要

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

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

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

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

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

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

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

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

为共享账户设置 Amazon KMS 权限

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

要向共享账户中的用户提供 Amazon KMS 权限,请使用以下语句更新密钥策略:

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

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

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

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

有关接受资源共享邀请的信息,请参阅《Amazon Resource Access Manager 用户指南》中的使用共享 Amazon 资源

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

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

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

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

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

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