

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

# Amazon Augmented AI 中的权限和安全性
<a name="a2i-permissions-security"></a>

使用 Amazon Agumented AI (Amazon A2I) 为 ML/AI 应用程序创建人工审核工作流程时，您可以*在 Amazon A SageMaker I 中*创建和配置资源，例如人力和工作人员任务模板。要配置和启动人工循环，你可以将亚马逊 A2I 与其他 AWS 服务（例如亚马逊 Textract 或 Amazon Rekognition）集成，要么使用亚马逊增强人工智能运行时 API。要创建人工审核工作流程并启动人工循环，您必须将某些策略附加到您的 AWS Identity and Access Management (IAM) 角色或用户。具体来说：
+ 自 2020 年 1 月 12 日当天开始，当您使用图像输入数据启动人工循环时，您必须向包含输入数据的 Amazon S3 存储桶添加 CORS 标头策略。请参阅 [CORS 权限要求](#a2i-cors-update)，了解更多信息。
+ 创建流定义时，您需要提供一个角色，向 Amazon A2I 授予权限以访问 Amazon S3，这包括读取在人工任务 UI 中呈现的对象，以及写入人工审核的结果。

  此角色还必须附加信任策略，以授予 SageMaker AI 代入该角色的权限。这使得 Amazon A2I 可以根据您附加到角色的权限执行操作。

  有关您可修改并附加到用于创建流定义的角色的示例策略，请参阅[向用于创建流定义的 IAM 角色添加权限](#a2i-human-review-permissions-s3)。这些策略附加到在 AI 控制台的 Amazon A2 SageMaker I 区域**的人工审核工作流程**部分中创建的 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)，以了解可用于授权使用这些单独服务的基于身份的策略。
+ 要预览自定义工作人员任务 UI 模板，您需要有权读取在用户界面上呈现的 Amazon S3 对象的 IAM 角色。请参阅[启用工作人员任务模板预览](#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)
+ [使用带有加密存储桶的 Amazon A2I AWS KMS](#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 无法再自动阻止图像的旋转，因为网络标准组织W3C已认定，控制图像旋转的功能违反了网络的同源政策。因此，在您提交请求以创建人工循环时，为了确保工作人员以可预测的方向来标注输入图像，您必须向包含输入图像的 S3 存储桶添加 CORS 标头策略。

**重要**  
如果您没有向包含输入数据的 S3 存储桶添加 CORS 配置，那么这些输入数据对象的人工审核任务将失败。

您可以在 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>
```

下面的 GIF 演示了 Amazon S3 文档中使用 Amazon S3 控制台添加 CORS 头策略的说明。

![\[关于如何使用 Amazon S3 管理控制台添加 CORS 标头策略的图片。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/sms/gifs/cors-config.gif)


## 向用于创建流定义的 IAM 角色添加权限
<a name="a2i-human-review-permissions-s3"></a>

要创建流程定义，请将本节中的策略附加到您在 AI 控制台中创建 SageMaker 人工审核工作流程或使用 `CreateFlowDefinition` API 操作时使用的角色。
+ 如果您使用控制台创建人工审核工作流，在使用[在控制台中创建人工审核工作流](https://docs.aws.amazon.com/sagemaker/latest/dg/create-human-review-console.html)时，对于 **IAM 角色**字段，请输入角色的 Amazon 资源名称 (ARN)。
+ 使用 API 创建流定义时，请将这些策略附加到传递给 `CreateFlowDefinition` 操作的 `RoleArn` 参数的角色。

当您创建人工审核工作流（流定义）时，Amazon A2I 调用 Amazon S3 来完成您的任务。要授予 Amazon A2I 权限以在 Amazon S3 存储桶中检索和存储您的文件，请创建以下策略并将其附加到您的角色。例如，如果您发送用于进行人工审核的图像、文档和其他文件存储在名为 `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 角色必须具有以下信任策略才能向 A SageMaker I 授予代入该角色的权限。要详细了解 IAM 信任策略，请参阅 *AWS Identity and Access Management* 文档中**策略和权限**的[基于资源策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based)部分。

------
#### [ 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 控制台将 [`AmazonAugmentedAIFullAccess` 托管策略附加到新的或现有的用户](https://console.aws.amazon.com/iam/home?region=us-east-2#/policies/arn:aws:iam::aws:policy/AmazonAugmentedAIFullAccess$jsonEditor)。

该策略允许用户从 API 中调用 API 操作以创建和管理流程定义，并允许用户从 Amazon Agumented AI Runtime API 调用 API 来创建和管理人工循环。 SageMaker 要了解有关这些 API 操作的更多信息，请参阅[ APIs 在 Amazon Agumented AI 中使用](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`，对于 Amazon Textract 为 `AnalyzeDocument`）并有权使用所有 Amazon A2I API 操作，请附加 IAM 托管策略 `AmazonAugmentedAIIntegratedAPIAccess`。如果要为使用 Amazon A2I 且具有多种任务类型的用户授予广泛的权限，您可能需要使用该策略。要了解有关这些 API 操作的更多信息，请参阅[ APIs 在 Amazon Agumented AI 中使用](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 对于自定义任务类型，您可以通过调用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RenderUiTemplate.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RenderUiTemplate.html) 操作预览模板。要预览模板，请按照任务类型的说明操作：
+  Amazon Rekognition 和 Amazon Textract 任务 SageMaker 类型 — 在 AI 控制台中，按照中记录的步骤使用角色的亚马逊资源名称 (ARN)。[创建工作人员任务模板](a2i-worker-template-console.md#a2i-create-worker-template-console)
+ 自定义任务类型 – 在 `RenderUiTemplate` 操作中，在 `RoleArn` 参数中使用角色的 ARN。

## 使用带有加密存储桶的 Amazon A2I AWS KMS
<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 AI 的基于身份的政策 SageMaker](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 A SageMaker I 中配置安全性](security.md)