與另一個 共用自訂模型 AWS 帳戶 - Amazon Comprehend

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

與另一個 共用自訂模型 AWS 帳戶

使用 Amazon Comprehend,您可以與他人共用自訂模型,讓他們可以將模型匯入其 AWS 帳戶。當使用者匯入其中一個自訂模型時,會在其帳戶中建立新的自訂模型。他們的新模型會複製您共用的模型。

若要共用自訂模型,您可以將政策連接至該模型,以授權其他人匯入該模型。然後,您會提供這些使用者所需的詳細資訊。

注意

當其他使用者匯入您已共用的自訂模型時,他們必須使用包含模型的相同 AWS 區域 - 例如美國東部 (維吉尼亞北部)。

開始之前

您必須先在 Amazon Comprehend 中擁有訓練有素的自訂分類器或自訂實體識別器,才能共用模型 AWS 帳戶。如需訓練自訂模型的詳細資訊,請參閱 自訂分類自訂實體辨識

所需的許可

您必須先在 (IAM) 中 AWS Identity and Access Management 取得許可,才能將資源型政策新增至自訂模型。您的使用者、群組或角色必須連接政策,才能建立、取得和刪除模型政策,如下列範例所示。

範例 管理自訂模型之資源型政策的 IAM 政策
{ "Effect": "Allow", "Action": [ "comprehend:PutResourcePolicy", "comprehend:DeleteResourcePolicy", "comprehend:DescribeResourcePolicy" ], "Resource": "arn:aws:comprehend:us-west-2:111122223333:document-classifier/foo/version/*" }

如需建立 IAM 政策的相關資訊,請參閱《IAM 使用者指南》中的建立 IAM 政策如需連接 IAM 政策的相關資訊,請參閱《IAM 使用者指南》中的新增和移除 IAM 身分許可

如果您要共用加密模型,則可能需要新增 的許可 AWS KMS。此要求取決於您在 Amazon Comprehend 中用來加密模型的 KMS 金鑰類型。

AWS 擁有的金鑰 由 AWS 服務擁有和管理。如果您使用 AWS 擁有的金鑰,則不需要新增 的許可 AWS KMS,而且可以略過本節。

客戶受管金鑰是您在 中建立、擁有和管理的金鑰 AWS 帳戶。如果您使用客戶受管金鑰,則必須將陳述式新增至 KMS 金鑰政策。

政策陳述式會授權一或多個實體 (例如使用者或帳戶) 執行解密模型所需的 AWS KMS 操作。

您可以使用條件索引鍵來協助防止混淆代理人問題。如需詳細資訊,請參閱預防跨服務混淆代理人

使用政策中的下列條件金鑰來驗證存取 KMS 金鑰的實體。當使用者匯入模型時, 會 AWS KMS 檢查來源模型版本的 ARN 是否符合條件。如果您未在政策中包含條件,則指定的委託人可以使用 KMS 金鑰來解密任何模型版本:

  • aws:SourceArn – 使用此條件索引鍵搭配 kms:GenerateDataKeykms:Decrypt動作。

  • kms:EncryptionContext – 使用此條件索引鍵搭配 kms:GenerateDataKeykms:Decryptkms:CreateGrant動作。

在下列範例中,政策授權 AWS 帳戶 444455556666使用 擁有 AWS 帳戶 的指定分類器模型第 1 版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 AWS 帳戶 444455556666和來自 的 ExampleRole AWS 帳戶 123456789012,透過 Amazon Comprehend 服務存取此 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 匯入自訂模型之前,您必須授權他們這樣做。若要授權這些政策,請將資源型政策新增至您要共用的模型版本。資源型政策是您連接至資源的 IAM 政策 AWS。

當您將資源政策連接到自訂模型版本時,政策會授權使用者、群組或角色對模型版本執行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 AWS CLI或 Amazon Comprehend API 來新增資源型政策。

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

新增以資源為基礎的政策
  1. 登入 AWS Management Console 並前往 https://console.aws.amazon.com/comprehend/:// 開啟 Amazon 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. 選擇 Save (儲存)。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 的使用者和來自 AWS 帳戶 123456789012 的所有使用者。

{ "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 將資源型政策新增至自訂模型,請使用 PutResourcePolicy API 操作。

您也可以在建立模型的 API 請求中,將政策新增至自訂模型。若要這樣做,請在提交 CreateDocumentClassifierCreateEntityRecognizer 請求時提供 ModelPolicy 參數的政策 JSON。

步驟 2:提供其他人需要匯入的詳細資訊

現在您已將資源型政策新增至自訂模型,您已授權其他 Amazon Comprehend 使用者將模型匯入其 AWS 帳戶。不過,您必須先提供他們下列詳細資訊,才能匯入:

  • 模型版本的 Amazon Resource Name (ARN)。

  • 包含模型的 AWS 區域 。匯入模型的任何人都必須使用相同的 AWS 區域 。

  • 模型是否已加密,如果已加密,則為您使用的 AWS KMS 金鑰類型: AWS 擁有的金鑰 或客戶受管金鑰。

  • 如果您的模型使用客戶受管金鑰加密,則必須提供 KMS 金鑰的 ARN。匯入模型的任何人都必須在其 IAM 服務角色中包含 ARN AWS 帳戶。此角色授權 Amazon Comprehend 在匯入期間使用 KMS 金鑰解密模型。

如需其他使用者如何匯入模型的詳細資訊,請參閱從另一個 匯入自訂模型 AWS 帳戶