选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

与其他人共享自定义模型 AWS 账户

聚焦模式
与其他人共享自定义模型 AWS 账户 - Amazon Comprehend

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

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

借助 Amazon Comprehend,您可以与其他人共享您的自定义模型,这样他们就可以将您的模型导入他们的 AWS 账户。当用户导入您的一个自定义模型时,他们会在自己的账户中创建一个新的自定义模型。他们的新模型与您共享的模型相同。

要共享自定义模型,您需要为其附加一个授权他人导入该模型的策略。然后,您可以向这些用户提供他们需要的详细信息。

注意

当其他用户导入您共享的自定义模型时,他们必须使用包含您的模型 AWS 区域 的相同模型,例如美国东部(弗吉尼亚北部)。

开始前的准备工作

在共享模型之前,您必须在 AWS 账户中的 Amazon Comprehend 中拥有经过训练的自定义分类器或自定义实体识别器。有关训练自定义模型的更多信息,请参阅自定义分类自定义实体识别

所需的权限

在向自定义模型添加基于资源的策略之前,您需要在 AWS Identity and Access Management (IAM) 中获得权限。您的用户、组或角色必须附加策略,这样您才能创建、获取和删除模型策略,如以下示例所示。

例 用于管理自定义模型的基于资源的策略的 IAM policy
{ "Effect": "Allow", "Action": [ "comprehend:PutResourcePolicy", "comprehend:DeleteResourcePolicy", "comprehend:DescribeResourcePolicy" ], "Resource": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/foo/version/*" }

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

IAM policy 语句

在向自定义模型添加基于资源的策略之前,您需要在 AWS Identity and Access Management (IAM) 中获得权限。您的用户、组或角色必须附加策略,这样您才能创建、获取和删除模型策略,如以下示例所示。

例 用于管理自定义模型的基于资源的策略的 IAM policy
{ "Effect": "Allow", "Action": [ "comprehend:PutResourcePolicy", "comprehend:DeleteResourcePolicy", "comprehend:DescribeResourcePolicy" ], "Resource": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/foo/version/*" }

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

如果您要共享加密模型,则可能需要为添加权限 AWS KMS。此要求取决于您在 Amazon Comprehend 中用于加密模型的 KMS 密钥的类型。

AWS 拥有的密钥 AWS 服务拥有和管理。如果您使用 AWS 拥有的密钥,则无需为添加权限 AWS KMS,并且可以跳过本节。

客户自主管理型密钥是在您的 AWS 账户中创建、拥有和管理的密钥。若要使用客户自主管理型密钥,您必须向 KMS 密钥策略添加一条语句。

该策略声明授权一个或多个实体(例如用户或账户)执行解密模型所需的 AWS KMS 操作。

您可以使用条件键来帮助防止混淆代理问题。有关更多信息,请参阅 防止跨服务混淆座席

在策略中使用以下条件密钥来验证访问您的 KMS 密钥的实体。当用户导入模型时, AWS KMS 会检查源模型版本的 ARN 是否符合条件。如果您未在策略中包含条件,则指定的委托人可以使用您的 KMS 密钥解密任何模型版本:

  • a@@ ws: SourceArn — 将此条件键与kms:GenerateDataKeykms:Decrypt操作一起使用。

  • kms: EncryptionContext — 将此条件密钥与kms:GenerateDataKeykms:Decrypt、和kms:CreateGrant操作配合使用。

在以下示例中,策略授权使用 AWS 账户 444455556666所拥有的指定分类器模型的版本 1。 AWS 账户 111122223333

例 用于访问特定分类器模型版本的 KMS 密钥策略
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/classifierName/version/1" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:comprehend:arn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/classifierName/version/1" } } } ] }

以下示例策略授权用户ExampleUser 通过 Amazon C AWS 账户 444455556666 om ExampleRolep AWS 账户 123456789012 rehend 服务访问此 KMS 密钥。

例 允许访问 Amazon Comprehend 服务的 KMS 密钥策略(替代方案 1)。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::444455556666:user/ExampleUser", "arn:aws:iam::123456789012:role/ExampleRole" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:comprehend:*" } } }, { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::444455556666:user/ExampleUser", "arn:aws:iam::123456789012:role/ExampleRole" ] }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:comprehend:arn": "arn:aws:comprehend:*" } } } ] }

以下示例策略授权 AWS 账户 444455556666通过 Amazon Comprehend 服务访问此 KMS 密钥,使用前一个示例的替代语法。

例 允许访问 Amazon Comprehend 服务的 KMS 密钥策略(替代方案 2)。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:comprehend:arn": "arn:aws:comprehend:*" } } } ] }

有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的在 AWS KMS中使用密钥策略

如果您要共享加密模型,则可能需要为添加权限 AWS KMS。此要求取决于您在 Amazon Comprehend 中用于加密模型的 KMS 密钥的类型。

AWS 拥有的密钥 AWS 服务拥有和管理。如果您使用 AWS 拥有的密钥,则无需为添加权限 AWS KMS,并且可以跳过本节。

客户自主管理型密钥是在您的 AWS 账户中创建、拥有和管理的密钥。若要使用客户自主管理型密钥,您必须向 KMS 密钥策略添加一条语句。

该策略声明授权一个或多个实体(例如用户或账户)执行解密模型所需的 AWS KMS 操作。

您可以使用条件键来帮助防止混淆代理问题。有关更多信息,请参阅 防止跨服务混淆座席

在策略中使用以下条件密钥来验证访问您的 KMS 密钥的实体。当用户导入模型时, AWS KMS 会检查源模型版本的 ARN 是否符合条件。如果您未在策略中包含条件,则指定的委托人可以使用您的 KMS 密钥解密任何模型版本:

  • a@@ ws: SourceArn — 将此条件键与kms:GenerateDataKeykms:Decrypt操作一起使用。

  • kms: EncryptionContext — 将此条件密钥与kms:GenerateDataKeykms:Decrypt、和kms:CreateGrant操作配合使用。

在以下示例中,策略授权使用 AWS 账户 444455556666所拥有的指定分类器模型的版本 1。 AWS 账户 111122223333

例 用于访问特定分类器模型版本的 KMS 密钥策略
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/classifierName/version/1" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:comprehend:arn": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/classifierName/version/1" } } } ] }

以下示例策略授权用户ExampleUser 通过 Amazon C AWS 账户 444455556666 om ExampleRolep AWS 账户 123456789012 rehend 服务访问此 KMS 密钥。

例 允许访问 Amazon Comprehend 服务的 KMS 密钥策略(替代方案 1)。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::444455556666:user/ExampleUser", "arn:aws:iam::123456789012:role/ExampleRole" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:comprehend:*" } } }, { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::444455556666:user/ExampleUser", "arn:aws:iam::123456789012:role/ExampleRole" ] }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:comprehend:arn": "arn:aws:comprehend:*" } } } ] }

以下示例策略授权 AWS 账户 444455556666通过 Amazon Comprehend 服务访问此 KMS 密钥,使用前一个示例的替代语法。

例 允许访问 Amazon Comprehend 服务的 KMS 密钥策略(替代方案 2)。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:comprehend:arn": "arn:aws:comprehend:*" } } } ] }

有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的在 AWS KMS中使用密钥策略

自定义模型的基于资源的策略

在其他用户的 Amazon Comprehend 用户 AWS 账户 可以 AWS 从您的账户导入自定义模型之前,您必须授权他们这样做。要对它们进行授权,请将基于资源的策略添加到您要共享的模型版本中。在基于资源的策略是附加到 AWS中的资源的 IAM policy。

当您将资源策略附加到自定义模型版本时,该策略会授权用户、组或角色对模型版本执行 comprehend:ImportModel 操作。

例 自定义模型版本的基于资源的策略

此示例在 Principal 属性中指定了授权实体。资源“*”是指您附加策略的特定模型版本。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "comprehend:ImportModel", "Resource": "*", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:user/ExampleUser", "arn:aws:iam::123456789012:role/ExampleRole" ] } } ] }

对于您附加到自定义模型的策略,comprehend:ImportModel 是 Amazon Comprehend 支持的唯一操作。

有关基于资源的策略的更多信息,请参见《IAM 用户指南》中的基于身份的策略和基于资源的策略

步骤 1:向自定义模型添加基于资源的策略

您可以使用 AWS Management Console、或 Amazon Comprehend AWS CLI API 添加基于资源的策略。

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

添加基于资源的策略
  1. 登录 AWS Management Console 并打开亚马逊 Comprehend 控制台,网址为 https://console.aws.amazon.com/comprehend/

  2. 在左侧导航菜单中的自定义下,请选择包含您的自定义模型的页面:

    1. 如果您要共享自定义文档分类器,请选择自定义分类

    2. 如果您要共享自定义实体识别器,请选择自定义实体识别

  3. 在模型列表中,选择模型名称以打开其详细信息页面。

  4. 版本下,请选择要共享的模型版本的名称。

  5. 在版本详情页面上,选择标签、VPC 和策略选项卡。

  6. 基于资源的策略部分中,选择编辑

  7. 编辑基于资源的策略页面上,执行以下操作:

    1. 策略名称中,输入一个可以帮助您在创建策略后识别该策略的名称。

    2. 授权下,指定以下一个或多个实体以授权它们导入您的模型:

      字段 定义和示例

      服务主体

      可以访问此模型版本的服务的服务主体标识符。例如:

      comprehend.amazonaws.com

      AWS 账户 IDs

      AWS 账户 可以访问此模型版本的。授权属于该账户的所有用户。例如:

      111122223333123456789012

      IAM 实体

      ARNs 适用于可以访问此模型版本的用户或角色。例如:

      arn: aws: iam:: 111122223333: user/ExampleUser, arn:aws:iam::444455556666:role/ExampleRole

  8. 共享下,您可以复制模型版本的 ARN,以帮助您与将要导入模型的人员共享。当有人从不同的模型导入自定义模型时 AWS 账户,需要模型版本 ARN。

  9. 选择保存。Amazon Comprehend 创建基于资源的策略并将其附加到您的模型。

AWS Management Console

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

添加基于资源的策略
  1. 登录 AWS Management Console 并打开亚马逊 Comprehend 控制台,网址为 https://console.aws.amazon.com/comprehend/

  2. 在左侧导航菜单中的自定义下,请选择包含您的自定义模型的页面:

    1. 如果您要共享自定义文档分类器,请选择自定义分类

    2. 如果您要共享自定义实体识别器,请选择自定义实体识别

  3. 在模型列表中,选择模型名称以打开其详细信息页面。

  4. 版本下,请选择要共享的模型版本的名称。

  5. 在版本详情页面上,选择标签、VPC 和策略选项卡。

  6. 基于资源的策略部分中,选择编辑

  7. 编辑基于资源的策略页面上,执行以下操作:

    1. 策略名称中,输入一个可以帮助您在创建策略后识别该策略的名称。

    2. 授权下,指定以下一个或多个实体以授权它们导入您的模型:

      字段 定义和示例

      服务主体

      可以访问此模型版本的服务的服务主体标识符。例如:

      comprehend.amazonaws.com

      AWS 账户 IDs

      AWS 账户 可以访问此模型版本的。授权属于该账户的所有用户。例如:

      111122223333123456789012

      IAM 实体

      ARNs 适用于可以访问此模型版本的用户或角色。例如:

      arn: aws: iam:: 111122223333: user/ExampleUser, arn:aws:iam::444455556666:role/ExampleRole

  8. 共享下,您可以复制模型版本的 ARN,以帮助您与将要导入模型的人员共享。当有人从不同的模型导入自定义模型时 AWS 账户,需要模型版本 ARN。

  9. 选择保存。Amazon Comprehend 创建基于资源的策略并将其附加到您的模型。

要使用将基于资源的策略添加到自定义模型中 AWS CLI,请使用PutResourcePolicy命令。 命令使用以下参数:

  • resource-arn:自定义模型的 ARN,包括模型版本。

  • resource-policy:一个 JSON 文件,用于定义要附加到您的自定义模型的基于资源的策略。

    您也可以将策略作为内联 JSON 字符串提供。要为您的策略提供有效的 JSON,请用双引号将属性名和值括起来。如果 JSON 正文也用双引号括起来,则可以转义策略内的双引号。

  • policy-revision-id:Amazon Comprehend 分配给您正在更新的策略的修订 ID。如果您正在创建没有先前版本的新策略,请不要使用此参数。Amazon Comprehend 会为您创建修订版 ID。

例 使用 put-resource-policy 命令向自定义模型添加基于资源的策略

此示例在名为 policyFile.json 的 JSON 文件中定义了一个策略,并将该策略与模型关联起来。该模型是名为 mycf1 的分类器的 v2 版本。

$ aws comprehend put-resource-policy \ > --resource-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier/mycf1/version/v2 \ > --resource-policy file://policyFile.json \ > --policy-revision-id revision-id

资源策略的 JSON 文件包含以下内容:

  • 操作:策略授权指定委托人使用 comprehend:ImportModel

  • 资源:自定义模型的 ARN。资源“*”是指您在 put-resource-policy 命令中指定的模型版本。

  • 委托人 — 该政策授权jane来自 AWS 账户 444455556666的用户和来自123456789012的所有用户。 AWS 账户

{ "Version":"2012-10-17", "Statement":[ {"Sid":"ResourcePolicyForImportModel", "Effect":"Allow", "Action":["comprehend:ImportModel"], "Resource":"*", "Principal": {"AWS": ["arn:aws:iam::444455556666:user/jane", "123456789012"] } } ] }

要使用将基于资源的策略添加到自定义模型中 AWS CLI,请使用PutResourcePolicy命令。 命令使用以下参数:

  • resource-arn:自定义模型的 ARN,包括模型版本。

  • resource-policy:一个 JSON 文件,用于定义要附加到您的自定义模型的基于资源的策略。

    您也可以将策略作为内联 JSON 字符串提供。要为您的策略提供有效的 JSON,请用双引号将属性名和值括起来。如果 JSON 正文也用双引号括起来,则可以转义策略内的双引号。

  • policy-revision-id:Amazon Comprehend 分配给您正在更新的策略的修订 ID。如果您正在创建没有先前版本的新策略,请不要使用此参数。Amazon Comprehend 会为您创建修订版 ID。

例 使用 put-resource-policy 命令向自定义模型添加基于资源的策略

此示例在名为 policyFile.json 的 JSON 文件中定义了一个策略,并将该策略与模型关联起来。该模型是名为 mycf1 的分类器的 v2 版本。

$ aws comprehend put-resource-policy \ > --resource-arn arn:aws:comprehend:us-west-2:111122223333:document-classifier/mycf1/version/v2 \ > --resource-policy file://policyFile.json \ > --policy-revision-id revision-id

资源策略的 JSON 文件包含以下内容:

  • 操作:策略授权指定委托人使用 comprehend:ImportModel

  • 资源:自定义模型的 ARN。资源“*”是指您在 put-resource-policy 命令中指定的模型版本。

  • 委托人 — 该政策授权jane来自 AWS 账户 444455556666的用户和来自123456789012的所有用户。 AWS 账户

{ "Version":"2012-10-17", "Statement":[ {"Sid":"ResourcePolicyForImportModel", "Effect":"Allow", "Action":["comprehend:ImportModel"], "Resource":"*", "Principal": {"AWS": ["arn:aws:iam::444455556666:user/jane", "123456789012"] } } ] }

要使用 Amazon Comprehend API 向自定义模型添加基于资源的策略,请使用 API 操作。PutResourcePolicy

您还可以在创建模型的 API 请求中向自定义模型添加策略。为此,请在提交CreateDocumentClassifierCreateEntityRecognizer请求时提供 ModelPolicy 参数的策略 JSON。

要使用 Amazon Comprehend API 向自定义模型添加基于资源的策略,请使用 API 操作。PutResourcePolicy

您还可以在创建模型的 API 请求中向自定义模型添加策略。为此,请在提交CreateDocumentClassifierCreateEntityRecognizer请求时提供 ModelPolicy 参数的策略 JSON。

步骤 2:提供其他人需要导入的详细信息

现在,您已将基于资源的策略添加到您的自定义模型中,您已授权其他 Amazon Comprehend 用户将您的模型导入到他们的 AWS 账户中。但是,在他们可以导入之前,您必须向他们提供以下详细信息:

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

  • 包含模型的 AWS 区域 。任何导入您的模型的人都必须使用相同的 AWS 区域 。

  • 模型是否已加密,如果已加密,则说明您使用的 AWS KMS 密钥类型: AWS 拥有的密钥 或客户托管密钥。

  • 如果您的模型使用客户自主管理型密钥加密,您必须提供 KMS 密钥的 ARN。任何导入您的模型的人都必须在其 AWS 账户中包含 IAM 服务角色中的 ARN。此角色授权 Amazon Comprehend 在导入期间使用 KMS 密钥来解密模型。

有关其他用户如何导入您的模型的更多信息,请参阅 从另一个模型导入自定义模型 AWS 账户

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。