

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

# Amazon 增強版 AI 中的許可和安全性
<a name="a2i-permissions-security"></a>

使用 Amazon 增強版 AI (Amazon A2I) 為 ML/AI 應用程式建立人工審核工作流程時，您可以在 Amazon SageMaker AI 中建立和設定*資源*，例如人力資源和工作者任務範本。若要設定和啟動人工循環，您可以將 Amazon A2I 與 Amazon Textract 或 Amazon Rekognition 等 AWS 其他服務整合，或使用 Amazon 增強版 AI 執行期 API。若要建立人工審核工作流程並啟動人工循環，您必須將特定政策連接至您的 AWS Identity and Access Management (IAM) 角色或使用者。具體而言：
+ 當您在 2020 年 1 月 12 日或之後使用影像輸入資料啟動人工循環時，必須將 CORS 標題政策新增至包含輸入資料的 Amazon S3 儲存貯體。如需進一步了解，請參閱[CORS 許可要求](#a2i-cors-update)。
+ 當您建立流程定義時，您必須提供授與 Amazon A2I 許可以存取 Amazon S3 的角色，以便讀取將在人工任務使用者介面中轉譯的物件，以及寫入人工審核結果的物件。

  此角色也需要連接信任政策，才能授與擔任角色的 SageMaker AI 許可。這可讓 Amazon A2I 根據您連接到角色的許可來執行動作。

  請參閱[將許可新增至用於建立流程定義的 IAM 角色](#a2i-human-review-permissions-s3)，以查看您可以修改並連接用來建立流程定義角色的範例政策。這些政策將連接至 SageMaker AI 主控台 Amazon A2I 區域的**人工審核工作流程**區段中所建立的 IAM 角色。
+ 若要建立並啟動人工循環，您可以使用內建任務類型 (例如 `DetectModerationLabel` 或 `AnalyzeDocument`) 的 API 作業，或在自訂機器學習 (ML) 應用程式 中使用 Amazon A2I 執行期 API 作業 `StartHumanLoop`。您必須連接 `AmazonAugmentedAIFullAccess` 受管政策到調用這些 API 作業的使用者，以授與這些服務許可，可以使用 Amazon A2I 作業。若要了解作法，請參閱[建立可調用 Amazon A2I API 作業的使用者](#create-user-grants)。

  此政策*不會*授予許可，以叫用與內建任務類型相關聯的 AWS 服務的 API 操作。例如，`AmazonAugmentedAIFullAccess` 不會授權許可，呼叫 Amazon Rekognition `DetectModerationLabel` API 作業或 Amazon Textract `AnalyzeDocument` API 作業。您可以使用比較一般的政策，`AmazonAugmentedAIIntegratedAPIAccess`，來授予這些許可。如需詳細資訊，請參閱[使用調用 Amazon A2I、Amazon Textract 和 Amazon Rekognition API 作業的許可來建立使用者](#a2i-grant-general-permission)。當您想要授予使用者使用 Amazon A2I 和整合 AWS 服務的 API 操作的廣泛許可時，這是理想的選項。

  如果您想要設定更精密的許可，請參閱[以 Amazon Rekognition 身分為基礎的政策範例](https://docs.aws.amazon.com/rekognition/latest/dg/security_iam_id-based-policy-examples.html)和以 [Amazon Textract 以身分為基礎的政策範例](https://docs.aws.amazon.com/textract/latest/dg/security_iam_id-based-policy-examples.html)，以了解您可以用來授與使用這些個別服務的許可。
+ 若要預覽您的自訂工作者任務使用者介面範本，您需要一個擁有許可的 IAM 角色，才能讀取在使用者介面上呈現的 Amazon S3 物件。請參閱[啟用工作者任務範本預覽](#permissions-for-worker-task-templates-augmented-ai)中的政策範例。

**Topics**
+ [

## CORS 許可要求
](#a2i-cors-update)
+ [

## 將許可新增至用於建立流程定義的 IAM 角色
](#a2i-human-review-permissions-s3)
+ [

## 建立可調用 Amazon A2I API 作業的使用者
](#create-user-grants)
+ [

## 使用調用 Amazon A2I、Amazon Textract 和 Amazon Rekognition API 作業的許可來建立使用者
](#a2i-grant-general-permission)
+ [

## 啟用工作者任務範本預覽
](#permissions-for-worker-task-templates-augmented-ai)
+ [

## 搭配 AWS KMS 加密儲存貯體使用 Amazon A2I
](#a2i-kms-encryption)
+ [

## 其他許可和安全性資源
](#additional-security-resources-augmented-ai)

## CORS 許可要求
<a name="a2i-cors-update"></a>

在 2020 年早些時候，Chrome 和 Firefox 等廣泛使用的瀏覽器變更了其根據影像中繼資料旋轉影像的預設行為，稱為 [EXIF 資料](https://en.wikipedia.org/wiki/Exif)。以前，影像一律會在瀏覽器中確切地顯示該影像在磁碟上的儲存方式 (通常是未旋轉的狀態)。變更後，影像現在會根據稱為*方向值*的影像中繼資料進行旋轉。這對整個機器學習 (ML) 社群具有重要意義。例如，如果不考慮 EXIF 方向，用於註釋影像的應用程式可能會以非預期的方向顯示影像，並導致不正確的標籤。

從 Chrome 89 開始， AWS 無法再自動防止映像輪換，因為 Web 標準群組 W3C 已決定控制映像輪換的功能違反 Web 的相同來源政策。因此，若要確保人力工作者在提交要求以建立人工循環時，以可預測的方向註釋您的輸入影像，您必須將 CORS 標題政策新增至包含輸入影像的 S3 儲存貯體。

**重要**  
如果您未將 CORS 組態新增至包含輸入資料的 S3 儲存貯體，則這些輸入資料物件的人工審核任務會失敗。

您可以在 Amazon S3 主控台中將 CORS 政策新增至包含輸入資料的 S3 儲存貯體。若要在 S3 主控台中包含輸入影像的 S3 儲存貯體上設定必要的 CORS 標題，請遵循在[如何使用 CORS 新增跨網域資源共用](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-cors-configuration.html)中詳細說明的指示。對託管影像的儲存貯體，請使用以下 CORS 組態代碼。如果您使用 Amazon S3 主控台，將政策新增至儲存貯體，則必須使用 JSON 格式。

**JSON**

```
[{
   "AllowedHeaders": [],
   "AllowedMethods": ["GET"],
   "AllowedOrigins": ["*"],
   "ExposeHeaders": []
}]
```

**XML**

```
<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>*</AllowedOrigin>
   <AllowedMethod>GET</AllowedMethod>
 </CORSRule>
</CORSConfiguration>
```

若要使用 Amazon S3 主控台新增 CORS 標題政策，下列 GIF 會示範在 Amazon S3 文件中找到的指示。

![\[說明如何使用 Amazon S3 主控台新增 CORS 標頭政策的 GIF。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/sms/gifs/cors-config.gif)


## 將許可新增至用於建立流程定義的 IAM 角色
<a name="a2i-human-review-permissions-s3"></a>

若要建立流程定義，請將本節中的政策連接至您在 SageMaker AI 主控台中建立人工審核工作流程時使用的角色，或使用 `CreateFlowDefinition` API 作業時所使用的角色。
+ 如果您使用主控台建立人工審核工作流程，[在主控台中建立人工審核工作流程時](https://docs.aws.amazon.com/sagemaker/latest/dg/create-human-review-console.html)，在 **IAM 角色**欄位輸入角色的 Amazon Resource Name (ARN)。
+ 使用 API 建立流程定義時，請將這些政策連接傳遞到 `CreateFlowDefinition` 操作 `RoleArn` 參數的角色。

在您建立人工審核工作流程 (流程定義) 時，Amazon A2I 會調用 Amazon S3 以完成您的任務。若要授與在儲存 Amazon S3 儲存貯體中擷取和存放檔案的 Amazon A2I 許可，請建立下列政策並將其連接至您的角色。例如，如果您要送交人工審核的影像、文件與其他檔案等存放在名為 `my_input_bucket` 的 S3 儲存貯體中，而且您希望將人工審核存放在名為 `my_output_bucket` 的儲存貯體中，並建立下列政策。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::my_input_bucket/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::my_output_bucket/*"
            ]
        }
    ]
}
```

------

此外，IAM 角色必須具有下列信任政策，才能授與 SageMaker AI 許可以擔任角色。要瞭解有關 IAM 信任策略的更多資訊，請參閱[基於資源的策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based)部分的**策略和權限**在*AWS Identity and Access Management*文件。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowSageMakerToAssumeRole",
      "Effect": "Allow",
      "Principal": {
        "Service": "sagemaker.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

如需有關建立和管理 IAM 角色和政策的詳細資訊，請參閱*AWS Identity and Access Management 使用者指南*中的下列主題：
+ 若要建立 IAM 角色，請參閱[建立角色以委派許可給 IAM 使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)。
+ 若要了解如何建立 IAM 政策，請參閱[建立 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。
+ 若要了解如何將 IAM 政策連接至角色，請參閱[新增和移除 IAM 身分許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)。

## 建立可調用 Amazon A2I API 作業的使用者
<a name="create-user-grants"></a>

若要用 Amazon A2I 來建立和啟動 Amazon Rekognition、Amazon Textract，或 Amazon A2I 執行期 API 的人工循環，您必須使用具有調用 Amazon A2I 作業許可的使用者。若要執行此操作，請使用 IAM 主控台將 [https://console.aws.amazon.com/iam/home?region=us-east-2#/policies/arn:aws:iam::aws:policy/AmazonAugmentedAIFullAccess$jsonEditor](https://console.aws.amazon.com/iam/home?region=us-east-2#/policies/arn:aws:iam::aws:policy/AmazonAugmentedAIFullAccess$jsonEditor) 受管政策連接到新的或現有的使用者。

此政策會授權使用者從 SageMaker API 調用 API 作業以進行流程定義的建立和管理，以及用於人工循環的建立和管理的 Amazon 增強版 AI 執行期 API。若要進一步了解這些 API 作業，請參閱[在 Amazon 增強版 AI 中使用 API](https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-api-references.html)。

`AmazonAugmentedAIFullAccess` 不會授與使用 Amazon Rekognition 或 Amazon Textract API 作業的許可。

**注意**  
您也可以將 `AmazonAugmentedAIFullAccess` 政策連接到用來建立和啟動人工循環的 IAM 角色。

若要提供存取權，請新增權限至您的使用者、群組或角色：
+ 中的使用者和群組 AWS IAM Identity Center：

  建立權限合集。請按照《*AWS IAM Identity Center 使用者指南*》中的[建立權限合集](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)說明進行操作。
+ 透過身分提供者在 IAM 中管理的使用者：

  建立聯合身分的角色。遵循《*IAM 使用者指南*》的[為第三方身分提供者 (聯合) 建立角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)中的指示。
+ IAM 使用者：
  + 建立您的使用者可擔任的角色。請按照《*IAM 使用者指南*》的[為 IAM 使用者建立角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)中的指示。
  + (不建議) 將政策直接附加至使用者，或將使用者新增至使用者群組。請遵循 *IAM 使用者指南*的[新增許可到使用者 (主控台)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)中的指示。

如需詳細資訊，請參閱 *AWS Identity and Access Management 使用者指南*中的[新增和移除 IAM 身分許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)。

## 使用調用 Amazon A2I、Amazon Textract 和 Amazon Rekognition API 作業的許可來建立使用者
<a name="a2i-grant-general-permission"></a>

若要建立一個使用者：有權調用內建任務類型使用的 API 作業 (即，適用於 Amazon Rekognition 的 `DetectModerationLables`，和適用於 `AnalyzeDocument` 的 Amazon Textract)，並有權使用所有Amazon A2I API 作業，請連接 IAM 受管政策，`AmazonAugmentedAIIntegratedAPIAccess`。當您想要授予廣泛許可至使用 Amazon A2I 搭配多種任務類型的使用者時，可能會想要使用此政策。若要進一步了解這些 API 作業，請參閱[在 Amazon 增強版 AI 中使用 API](https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-api-references.html)。

**注意**  
您也可以將 `AmazonAugmentedAIIntegratedAPIAccess` 政策連接到用來建立和啟動人工循環的 IAM 角色。

若要提供存取權，請新增權限至您的使用者、群組或角色：
+ 中的使用者和群組 AWS IAM Identity Center：

  建立權限合集。請按照《*AWS IAM Identity Center 使用者指南*》中的[建立權限合集](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)說明進行操作。
+ 透過身分提供者在 IAM 中管理的使用者：

  建立聯合身分的角色。遵循《*IAM 使用者指南*》的[為第三方身分提供者 (聯合) 建立角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)中的指示。
+ IAM 使用者：
  + 建立您的使用者可擔任的角色。請按照《*IAM 使用者指南*》的[為 IAM 使用者建立角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)中的指示。
  + (不建議) 將政策直接附加至使用者，或將使用者新增至使用者群組。請遵循 *IAM 使用者指南*的[新增許可到使用者 (主控台)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)中的指示。

如需詳細資訊，請參閱 *AWS Identity and Access Management 使用者指南*中的[新增和移除 IAM 身分許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)。

## 啟用工作者任務範本預覽
<a name="permissions-for-worker-task-templates-augmented-ai"></a>

若要自訂工作者在處理任務時看到的介面和指示，您可以建立工作者任務範本。您可以使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHumanTaskUi.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHumanTaskUi.html) 操作或 SageMaker AI 主控台來建立範本。

若要預覽範本，您需要具有下列許可的 IAM 角色，以讀取在使用者介面上呈現的 Amazon S3 物件。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::my_input_bucket/*"
            ]
        }
    ]
}
```

------

對於 Amazon Rekognition 和 Amazon Textract 任務類型，您可以使用 SageMaker AI 主控台的 Amazon 增強版 AI 區段預覽您的範本。對於自訂任務類型，您可以調用作 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RenderUiTemplate.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RenderUiTemplate.html) 操作來預覽範本。若要預覽範本，請遵循任務類型的指示：
+  在 SageMaker AI 主控台中的 Amazon Rekognition 和 Amazon Textract 任務類型，在 [建立工作者任務範本](a2i-worker-template-console.md#a2i-create-worker-template-console) 中記載的程序中使用角色的 Amazon Resource Name (ARN)。
+ 在 `RenderUiTemplate` 操作的自訂任務類型中，使用在 `RoleArn` 參數中角色的 ARN。

## 搭配 AWS KMS 加密儲存貯體使用 Amazon A2I
<a name="a2i-kms-encryption"></a>

如果您指定 AWS Key Management Service (AWS KMS) 客戶受管金鑰來加密 `OutputConfig`中的輸出資料[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html)，則必須將類似下列內容的 IAM 政策新增至該金鑰。本政策會提供您用來建立人工循環許可的 IAM 執行角色，以使用此金鑰來執行 `"Action"` 中列出的所有動作。若要進一步了解這些動作，請參閱《 AWS Key Management Service 開發人員指南》中的[AWS KMS 許可](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html)。

要使用此政策，請將 `"Principal"` 中的 IAM 服務角色 ARN，取代為您建立人工審核工作流程 (流程定義) 時所使用的執行角色的 ARN。使用 `CreateFlowDefinition` 建立標籤工作時，這是您為 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html#sagemaker-CreateLabelingJob-request-RoleArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html#sagemaker-CreateLabelingJob-request-RoleArn) 指定的 ARN。請注意，您無法在主控台中建立流程定義時提供 `KmsKeyId`。

```
{
    "Sid": "AllowUseOfKmsKey",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/service-role/example-role"
    },
    "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
    ],
    "Resource": "*"
}
```

## 其他許可和安全性資源
<a name="additional-security-resources-augmented-ai"></a>
+ [使用標籤控制對 SageMaker AI 資源的存取](security_iam_id-based-policy-examples.md#access-tag-policy).
+ [Amazon SageMaker AI 身分型政策](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies)
+ [使用條件金鑰控制 SageMaker AI 資源的建立](security_iam_id-based-policy-examples.md#sagemaker-condition-examples)
+ [Amazon SageMaker AI API 許可：動作、許可與資源參考](api-permissions-reference.md)
+ [在 Amazon SageMaker AI 中設定安全性](security.md)