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

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

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

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

若要共用自訂模型,請將原則附加至該模型,以授權其他人匯入該模型。然後,您可以為這些用戶提供他們所需的詳細信息。

注意

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

開始之前

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

所需的許可

在將以資源為基礎的政策新增至自訂模型之前,您需要 AWS Identity and Access Management (IAM) 中的許可。您的使用者、群組或角色必須附加原則,以便您可以建立、取得和刪除模型原則,如下列範例所示。

範例 管理自訂模型資源型政策的 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 金鑰類型。

A AWS 擁有的金鑰是由AWS服務擁有和管理。如果您使用AWS 擁有的金鑰,則不需要為其新增權限AWS KMS,您可以略過本節。

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

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

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

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

  • aws: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 Comprehend 服務存取此 KMS 金鑰。AWS 帳戶 444455556666 ExampleRoleAWS 帳戶123456789012

範例 允許存取 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 政策。

當您將資源策略附加到自訂模型版本時,該策略會授權使用者、群組或角色對模型版本執行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/

  2. 在左側導覽功能表中的「自」下,選擇包含您自訂模型的頁面:

    1. 如果您要共用自訂文件分類器,請選擇 [自訂分類]。

    2. 如果您要共用自訂實體辨識器,請選擇 [自訂實體辨識]。

  3. 在模型清單中,選擇型號名稱以開啟其詳細資訊頁面。

  4. 在「版本」下,選擇您要共用的模型版本名稱。

  5. 在版本詳細資料頁面上,選擇 [標籤]、[VPC 和原則] 索引標籤。

  6. 以資源為基礎的政策區段中,選擇編輯

  7. 在 [編輯以資源為基礎的政策] 頁面上,執行下列動作:

    1. 在「策略名稱」中,輸入可協助您在建立策略後辨識該策略的名稱。

    2. 在「授權」(Authorize) 下,指定下列一或多個實體,以授權它們匯入模型:

      欄位 定義與範例

      服務主體

      可存取此模型版本之服務的服務主體識別碼。例如:

      理解. 亞馬遜

      AWS 帳戶身份證

      AWS 帳戶可以訪問此模型版本。授權屬於該帳戶的所有使用者。例如:

      111122223333, 123456789012

      IAM 實體

      ARN 適用於可存取此模型版本的使用者或角色。例如:

      阿姆:符號::: 11112222333: 使用者/, 阿姆:AWN:: IAM:: ExampleUser ExampleRole

  8. 在「共用」(Share) 底下,您可以複製模型版本的 ARN,以協助您與將匯入模型的人員共用。當使用者從其他模型匯入自訂模型時AWS 帳戶,需要模型版本 ARN。

  9. 選擇儲存。Amazon Comprehend 會建立以資源為基礎的政策,並將其附加到您的模型。

若要使用將以資源為基礎的策略新增至自訂模型AWS CLI,請使用指PutResourcePolicy令。 命令接受下列參數:

  • resource-arn— 自訂模型的 ARN,包括模型版本。

  • resource-policy— 定義以資源為基礎的原則以附加至自訂模型的 JSON 檔案。

    您也可以將原則提供為內嵌 JSON 字串。若要為您的政策提供有效的 JSON,請使用雙引號括住屬性名稱和值。如果 JSON 主體也用雙引號括起來,您可以逸出原則內的雙引號。

  • policy-revision-id— Amazon Comprehend 指派給您正在更新之政策的修訂識別碼。如果您要建立沒有先前版本的新原則,請勿使用此參數。Amazon Comprehend 為您創建修訂 ID。

範例 使用指put-resource-policy令將以資源為基礎的政策新增至自訂模型

此範例會在名為策略檔案 JSON 的 JSON 檔案中定義原則,並將原則與模型產生關聯。該模型是名為 my cf1 的分類器的第 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來自 12 AWS 帳戶 3456789012 的所有使用者。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。

步驟 2:提供其他人需要導入的詳細信息

現在您已將以資源為基礎的政策新增至自訂模型,您已授權其他 Amazon Comprehend 使用者將您的模型匯入他們的模型。AWS 帳戶但是,在匯入之前,您必須提供下列詳細資訊:

  • 模型版本的 Amazon 資源名稱(ARN)。

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

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

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

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