

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

# 从另一个模型导入自定义模型 AWS 账户
<a name="custom-copy-importing"></a>

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

**Topics**
+ [开始前的准备工作](#custom-copy-importing-prerequisites)
+ [导入自定义模型](#custom-copy-importing-procedure)

## 开始前的准备工作
<a name="custom-copy-importing-prerequisites"></a>

在您可以从另一个模型导入自定义模型之前 AWS 账户，请确保与您共享该模型的人执行以下操作：
+ 授权您进行导入。此授权是在附加到模型版本的基于资源的策略中授予的。有关更多信息，请参阅 [Resource-based 自定义模型的策略](custom-copy-sharing.md#custom-copy-sharing-example-policy)。
+ 为您提供以下信息：
  + 模块版本的 Amazon 资源名称（ARN)。
  + 包含模型的 AWS 区域 。导入 AWS 区域 时必须使用相同的名称。
  + 模型是否使用 AWS KMS 密钥加密，如果是，则使用密钥的类型。

如果模型已加密，则可能需要采取其他步骤，具体取决于所使用的 KMS 密钥类型：
+ **AWS 拥有的密钥**：此类型的 KMS 密钥由 AWS拥有和管理。如果模型使用加密 AWS 拥有的密钥，则无需执行其他步骤。
+ **客户托管密钥** — 这种类型的 KMS 密钥由 AWS 客户在其中创建、拥有和管理 AWS 账户。如果模型使用客户自主管理型密钥加密，则共享模型的人员必须：
  + 授权您解密模型。此授权是在客户自主管理型密钥的 KMS 密钥策略中授予的。有关更多信息，请参阅 [AWS KMS 关键政策声明](custom-copy-sharing.md#custom-copy-sharing-prerequisites-permissions-kms)。
  + 提供客户自主管理型密钥的标识符。创建 IAM 服务角色时使用此 ARN。此角色授权 Amazon Comprehend 使用 KMS 密钥解密模型。

### 所需的权限
<a name="custom-copy-importing-prerequisites-permissions"></a>

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

### IAM policy 语句
<a name="custom-copy-importing-prerequisites-permissions-iam"></a>

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

**Example 导入自定义模型的 IAM policy**  

```
{ 
  "Effect": "Allow",
  "Action": [
    "comprehend:ImportModel"
  ],
  "Resource": "{{arn:aws:comprehend:us-west-2:111122223333:document-classifier/foo/version/*}}"
}
```

有关创建 IAM policy 的更多信息，请参阅《*IAM 用户指南》*中的[创建 IAM policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。有关附加 IAM policy 的信息，请参阅《*IAM 用户指南*》中的[添加和删除 IAM 身份权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)。

### 用于 AWS KMS 加密的 IAM 服务角色
<a name="custom-copy-importing-prerequisites-permissions-kms"></a>

导入自定义模型时，您必须授权 Amazon Comprehend 在以下任一 AWS KMS 情况下使用密钥：
+ 您正在导入使用客户托管密钥加密的自定义模型 AWS KMS。在这种情况下，Amazon Comprehend 需要访问 KMS 密钥，以便在导入期间解密模型。
+ 您想对通过导入创建的新自定义模型进行加密，并且使用客户自主管理型密钥。在这种情况下，Amazon Comprehend 需要访问您的 KMS 密钥，以便对新模型进行加密。

*要授权 Amazon Comprehend AWS KMS 使用这些密钥，您需要创建一个 IAM 服务角色。*这种类型的 IAM 角色允许 AWS 服务代表您访问其他服务中的资源。有关服务角色的更多信息，请参阅 *IAM 用户指南*中的[创建角色以向 AWS 服务委派权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

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

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

**Example 权限策略**  
以下权限策略允许 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"
                ]
            }
        }
    }
  ]
}
```

**Example 信任策略**  

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

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

****  

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

------

## 导入自定义模型
<a name="custom-copy-importing-procedure"></a>

您可以使用 AWS 管理控制台、 AWS CLI或 Amazon Comprehend API 导入自定义模型。

## AWS 管理控制台
<a name="custom-copy-importing-procedure-console"></a>

您可以在 AWS 管理控制台中使用 Amazon Comprehend。

**导入自定义模型**

1. 登录 AWS 管理控制台 并打开亚马逊 Comprehend 控制台，网址为 [https://console.aws.amazon.com/comprehend/](https://console.aws.amazon.com/comprehend/)

1. 在左侧导航菜单的**自定义**下，选择要导入的模型类型的页面：

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

   1. 如果要导入自定义实体识别器，请选择**自定义实体识别**。

1. 选择**导入版本**。

1. 在**导入模板版本**页面上，输入以下详细信息：
   + **模型版本 ARN**：要导入的模型版本的 ARN。
   + **模型名称**：导入时创建的新模型的自定义名称。
   + **版本名称**：导入时创建的新模型版本的自定义名称。

1. 对于**模型加密**，请选择用于加密导入时创建的新自定义模型的 KMS 密钥类型：
   + **使用 AWS 自有密钥** — Amazon Comprehend 使用代表您创建、管理和使用的 ()AWS KMS中的 AWS Key Management Service 密钥来加密您的模型。 AWS
   + **选择其他 AWS KMS 密钥（高级）**— Amazon Comprehend 使用您管理的客户托管密钥对您的模型进行加密。 AWS KMS

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

1. 在**服务访问权限**部分，授予 Amazon Comprehend 访问其所需的任何 AWS KMS 密钥的权限，以便：
   + 解密您导入的自定义模型。
   + 对您通过导入创建的新自定义模型进行加密。

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

   对于**服务角色**，请执行下列操作之一：
   + 如果您有要使用的现有服务角色，请选择**使用现有 IAM 角色**。然后，在**角色名称**下将其选中。
   + 如果您希望 Amazon Comprehend 为您创建角色，请选择**创建 IAM 角色**。

1. 如果您选择让 Amazon Comprehend 为您创建角色，请执行以下操作：

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

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

1. （可选）在**标签**部分，您可以向通过导入创建的新自定义模型添加标签。有关为自定义模型添加标签的更多信息，请参阅 [标记新的资源](tagging-newtags.md)。

1. 选择**确认**。

## AWS CLI
<a name="custom-copy-importing-procedure-cli"></a>

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

**Example Import-model 命令**  
要导入自定义模型，请使用 `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 KMS 位于您的 AWS 账户。

## Amazon Comprehend API
<a name="custom-copy-importing-procedure-api"></a>

要使用 Amazon Comprehend API 导入自定义模型，请使用 API 操作。[ImportModel](https://docs.aws.amazon.com/comprehend/latest/dg/API_ImportModel.html)