从另一个 AWS 账户 导入自定义模型 - Amazon Comprehend

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

从另一个 AWS 账户 导入自定义模型

在 Amazon Comprehend 中,您可以导入另一个 AWS 账户 中的自定义模型。当您导入模型时,您会在您的账户中创建一个新的自定义模型。您的新自定义模型是您导入的模型的经过全面训练的副本。

开始之前

在您从另一个 AWS 账户 导入自定义模型之前,请确保与您共享该模型的人员执行以下操作:

  • 授权您进行导入。此授权是在附加到模型版本的基于资源的策略中授予的。有关更多信息,请参阅 自定义模型的基于资源的策略

  • 为您提供以下信息:

    • 模块版本的 Amazon 资源名称(ARN)。

    • 包含模型的 AWS 区域。导入时必须使用相同的 AWS 区域。

    • 模型是否使用 AWS KMS 密钥加密,如果是,则使用密钥的类型。

如果模型已加密,则可能需要采取其他步骤,具体取决于所使用的 KMS 密钥类型:

  • AWS 拥有的密钥:此类型的 KMS 密钥由 AWS 拥有和管理。如果模型使用 AWS 拥有的密钥 加密,则无需执行其他步骤。

  • 客户自主管理型密钥:此类型的 KMS 密钥由AWS 客户在其 AWS 账户 中创建、拥有和管理。如果模型使用客户自主管理型密钥加密,则共享模型的人员必须:

    • 授权您解密模型。此授权是在客户自主管理型密钥的 KMS 密钥策略中授予的。有关更多信息,请参阅 AWS KMS 密钥策略语句

    • 提供客户自主管理型密钥的标识符。创建 IAM 服务角色时使用此 ARN。此角色授权 Amazon Comprehend 使用 KMS 密钥解密模型。

所需的权限

在导入自定义模型之前,您或您的管理员必须在 AWS Identity and Access Management (IAM) 中授权所需的操作。作为 Amazon Comprehend 用户,您必须获得 IAM policy 语句的导入授权。如果在导入过程中需要加密或解密,则必须授权 Amazon Comprehend 使用必要的 AWS KMS 密钥。

您的用户、组或角色必须附加允许 ImportModel 操作的策略,如下例中所示。

例 导入自定义模型的 IAM policy
{ "Effect": "Allow", "Action": [ "comprehend:ImportModel" ], "Resource": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/foo/version/*" }

有关创建 IAM policy 的更多信息,请参阅《IAM 用户指南》中的创建 IAM policy。有关附加 IAM policy 的信息,请参阅《IAM 用户指南》中的添加和删除 IAM 身份权限

导入自定义模型时,您必须授权 Amazon Comprehend 在以下任一情况下使用 AWS KMS 密钥:

  • 您正在导入使用 AWS KMS 中客户自主管理型密钥加密的自定义模型。在这种情况下,Amazon Comprehend 需要访问 KMS 密钥,以便在导入期间解密模型。

  • 您想对通过导入创建的新自定义模型进行加密,并且使用客户自主管理型密钥。在这种情况下,Amazon Comprehend 需要访问您的 KMS 密钥,以便对新模型进行加密。

要授权 Amazon Comprehend 使用这些 AWS KMS 密钥,您需要创建一个 IAM 服务角色。这种类型的 IAM 角色允许 AWS 服务代表您访问其他服务中的资源。有关创建服务角色的更多信息,请参阅《IAM 用户指南》中的创建角色以将权限委托给 AWS 服务

如果您使用 Amazon Comprehend 控制台进行导入,则可以让 Amazon Comprehend 为您创建服务角色。否则,您必须在导入之前在 IAM 中创建服务角色。

IAM 服务角色必须具有权限策略和信任策略,如下例中所示。

例 权限策略

以下权限策略允许 Amazon Comprehend 用于加密和解密自定义模型的 AWS KMS 操作。它授予对两个 KMS 密钥的访问权限:

  • 其中有一个 KMS 密钥位于包含要导入的模型的 AWS 账户 中。它被用来加密模型,Amazon Comprehend 在导入过程中使用它来解密模型。

  • 另一个 KMS 密钥位于导入模型的 AWS 账户 中。Amazon Comprehend 使用此密钥对通过导入创建的新自定义模型进行加密。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant" ], "Resource": [ "arn:aws:kms:us-west-2:111122223333:key/key-id", "arn:aws:kms:us-west-2:444455556666:key/key-id" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDatakey" ], "Resource": [ "arn:aws:kms:us-west-2:111122223333:key/key-id", "arn:aws:kms:us-west-2:444455556666:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": [ "s3.us-west-2.amazonaws.com" ] } } } ] }
例 信任策略

以下信任策略允许 Amazon Comprehend 担任此角色并获得其权限。它允许 comprehend.amazonaws.com 服务主体执行 sts:AssumeRole 操作。为了帮助避免混淆代理,您可以使用一个或多个全局条件上下文键来限制权限的范围。对于 aws:SourceAccount,请指定正在导入模型的用户的账户 ID。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "comprehend.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "444455556666" } } } ] }

导入自定义模型

您可以使用 AWS Management Console、AWS CLI 或 Amazon Comprehend API 导入自定义模型。

您可以在 AWS Management Console 中使用 Amazon Comprehend。

导入自定义模型
  1. 登录 AWS Management Console 并打开 Amazon Comprehend 控制台,网址:https://console.aws.amazon.com/comprehend/

  2. 在左侧导航菜单的自定义下,选择要导入的模型类型的页面:

    1. 如果要导入自定义文档分类器,请选择自定义分类

    2. 如果要导入自定义实体识别器,请选择自定义实体识别

  3. 选择导入版本

  4. 导入模板版本页面上,输入以下详细信息:

    • 模型版本 ARN:要导入的模型版本的 ARN。

    • 模型名称:导入时创建的新模型的自定义名称。

    • 版本名称:导入时创建的新模型版本的自定义名称。

  5. 对于模型加密,请选择用于加密导入时创建的新自定义模型的 KMS 密钥类型:

    • 使用 AWS 自有密钥:Amazon Comprehend 使用由 AWS 代表您创建、管理和使用的 AWS Key Management Service (AWS KMS) 中的密钥来加密您的模型。

    • 选择其他 AWS KMS 密钥(高级):Amazon Comprehend 使用您在 AWS KMS 中管理的客户自主管理型密钥对您的模型进行加密。

      如果您选择此选项,请选择您的 AWS 账户 中的 KMS 密钥,或者通过选择创建 AWS KMS 密钥来创建新的密钥。

  6. 服务访问权限部分,授予 Amazon Comprehend 访问其所需的任何 AWS KMS 密钥的权限,以便:

    • 解密您导入的自定义模型。

    • 对您通过导入创建的新自定义模型进行加密。

    您可以使用允许 Amazon Comprehend 使用 KMS 密钥的 IAM 服务角色授予访问权限。

    对于服务角色,请执行下列操作之一:

    • 如果您有要使用的现有服务角色,请选择使用现有 IAM 角色。然后,在角色名称下将其选中。

    • 如果您希望 Amazon Comprehend 为您创建角色,请选择创建 IAM 角色

  7. 如果您选择让 Amazon Comprehend 为您创建角色,请执行以下操作:

    1. 对于角色名称,请输入有助于您稍后识别此角色的角色名称后缀。

    2. 对于源 KMS 密钥 ARN,请输入用于加密您导入的模型的 KMS 密钥 ARN。Amazon Comprehend 在导入过程中使用此密钥对模型进行解密。

  8. (可选)在标签部分,您可以向通过导入创建的新自定义模型添加标签。有关为自定义模型添加标签的更多信息,请参阅 标记新的资源

  9. 选择确认

可以通过利用 AWS CLI 运行命令来使用 Amazon Comprehend。

例 导入模型命令

要导入自定义模型,请使用 import-model 命令:

$ aws comprehend import-model \ > --source-model arn:aws:comprehend:us-west-2:111122223333:document-classifier/foo/version/bar \ > --model-name importedDocumentClassifier \ > --version-name versionOne \ > --data-access-role-arn arn:aws:iam::444455556666:role/comprehendAccessRole \ > --model-kms-key-id kms-key-id

本示例使用以下参数:

  • source-model:要导入的自定义模型的 ARN。

  • model-name:导入时创建的新模型的自定义名称。

  • version-name:导入时创建的新模型版本的自定义名称。

  • data-access-role-arn:IAM 服务角色的 ARN,它允许 Amazon Comprehend 使用必要的 AWS KMS 密钥来加密或解密自定义模型。

  • model-kms-key-id:Amazon Comprehend 用于加密您通过此导入创建的自定义模型的 KMS 密钥的 ARN 或 ID。此密钥必须位于您的 AWS 账户 中的 AWS KMS 中。

要使用 Amazon Comprehend API 导入自定义模型,请使用 API 操作。ImportModel