Amazon Augmented AI 中的权限和安全性 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

Amazon Augmented AI 中的权限和安全性

使用 Amazon Augmented AI (Amazon A2I) 为 ML/AI 应用程序创建人工审核工作流程时,您可以在 中创建和配置资源,Amazon SageMaker例如,人力和工作人员任务模板。要配置并启动人工循环,您可以将 Amazon A2I 与其他 AWS 服务(如 Amazon Textract 或 Amazon Rekognition)集成,或者使用 Amazon Augmented AI 运行时 API。要创建人工审核工作流并启动人工循环,您需要将特定策略附加到您的 AWS Identity and Access Management (IAM) 角色或用户。具体来说:

  • 在 2020 年 1 12th 日或之后使用图像输入数据启动人工循环时,您必须将 CORS 标头策略添加到包含输入数据的 S3 存储桶。请参阅 CORS 权限要求 以了解更多信息。

  • 创建流定义时,您需要提供一个角色,授予 Amazon A2I 权限以访问 Amazon S3,无论是读取将在人工任务 UI 中呈现的对象,还是写入人工审核的结果。

    此角色还需要在指定 SageMaker 权限上附加信任策略以代入角色。这使得 Amazon A2I 可以根据您附加到角色的权限执行操作。

    有关您可修改并附加到用于创建流定义的角色的示例策略,请参阅在用于创建流定义的 IAM 角色中添加权限。这些策略将附加到在 IAM 控制台的 Amazon A2I 区域的 Human review workflows (人工审核工作流) 部分中创建的 SageMaker 角色。

  • 要创建和启动人工循环,您可以从内置任务类型(如 DetectModerationLabelAnalyzeDocument)中使用 API 操作,也可以在自定义 ML 应用程序中使用 Amazon A2I 运行时 API 操作 StartHumanLoop。您需要将 AmazonAugmentedAIFullAccess 托管策略附加到相应的 IAM 用户,该用户调用这些 API 操作以向这些服务授予使用 Amazon A2I 操作的权限。要了解如何操作,请参阅创建可调用 IAM API 操作的 Amazon A2I 用户

    该策略不会 授予调用与内置任务类型关联的 AWS 服务的 API 操作的权限。例如,AmazonAugmentedAIFullAccess 不会授予调用 Amazon Rekognition API 操作 DetectModerationLabel 或 Amazon Textract API 操作 AnalyzeDocument 的权限。您可以使用更一般的策略 AmazonAugmentedAIIntegratedAPIAccess 以授予这些权限。有关更多信息,请参阅创建有权调用 IAM、Amazon A2I 和 Amazon Textract API 操作的 Amazon Rekognition 用户。如果您要为 IAM 用户授予广泛的权限以使用 Amazon A2I 和集成 AWS 服务的 API 操作,这是一个不错的选择。

    如果要配置更精细的权限,请参阅 Amazon Rekognition 基于身份的策略示例Amazon Textract 基于身份的策略示例,以了解可用于授权使用这些单独服务的基于身份的策略。

  • 要预览自定义工作人员任务 UI 模板,您需要有权读取在用户界面上呈现的 IAM 对象的 Amazon S3 角色。请参阅启用工作人员任务模板预览 中的策略示例。

CORS 权限要求

2020 年早期,Chrome 和 Firefox 等广泛使用的浏览器改变了其根据图像元数据(称为 EXIF 数据)旋转图像的默认行为。以前,图像始终以确切的方式显示在浏览器中,这些图像存储在磁盘上,磁盘通常是取消旋转的。更改后,图像现在根据一张称为方向值的图像元数据旋转。这对整个机器学习 (ML) 社区都有重要影响。例如,如果不考虑 EXIF 方向,则用于注释图像的应用程序可能会显示意外方向的图像,并导致不正确的标签。

从 Chrome 89 开始,AWS 无法再自动阻止图像轮换,因为 Web 标准组 W3C 决定控制图像轮换的功能违反了 Web 的相同源策略。因此,要确保工作人员在提交创建人工循环的请求时按照可预测的方向注释输入图像,您必须将 CORS 标头策略添加到包含输入图像的 S3 存储桶。

重要

如果您未将 CORS 配置添加到包含输入数据的 S3 存储桶,则这些输入数据对象的人工审核任务将失败。

您可以在 S3 控制台中将 CORS 策略添加到包含输入数据的 S3 存储桶。要在 S3 控制台中包含您的输入图像的 S3 存储桶上设置所需的 S3 标头,请按照如何使用 CORS 添加跨域资源共享中详细介绍的说明操作?。为托管您的映像的 存储桶使用以下 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 标头策略的说明。

在用于创建流定义的 IAM 角色中添加权限

要创建流定义,对于您在 SageMaker 控制台中或者使用 CreateFlowDefinition API 操作创建人工审核工作流时使用的角色,请将本部分中的策略附加到该角色。

  • 如果您使用 控制台创建人工审核工作流程,请在控制台中创建人工审核工作流程时,在 IAM 角色字段中输入角色 Amazon 资源名称 (ARN)。

  • 使用 API 创建流定义时,请将这些策略附加到传递给 RoleArn 操作的 CreateFlowDefinition 参数的角色。

当您创建人工审核工作流(流定义)时,Amazon A2I 调用 Amazon S3 来完成您的任务。要授予 Amazon A2I 权限以在 Amazon S3 存储桶中检索和存储您的文件,请创建以下策略并将其附加到您的角色。例如,如果您发送用于进行人工审核的图像、文档和其他文件存储在名为 my_input_bucket 的 S3 存储桶中,并且如果您希望将人工审核存储在名为 my_output_bucket 的存储桶中,则将创建以下策略。

{ "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 授予权限以代入角色。要了解有关IAM信任策略的更多信息,请参阅 AWS AWS Identity and Access Management 文档中的策略和权限的基于资源的策略部分。

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

有关创建和管理 IAM 角色的更多信息,请参阅 AWS Identity and Access Management 用户指南 中的以下主题:

创建可调用 IAM API 操作的 Amazon A2I 用户

要使用 Amazon A2I 为 Amazon Rekognition、Amazon Textract 或 Amazon A2I 运行时 API 创建和启动人工循环,您必须使用有权调用 IAM 操作的 Amazon A2I 用户。为此,请使用 IAM 控制台将 AmazonAugmentedAIFullAccess 托管策略附加到新的或现有的 IAM 用户。

该策略为 IAM 用户授予以下权限:从 SageMaker API 中调用 API 操作以创建和管理流定义,以及从 Amazon Augmented AI 运行时 API 中调用 API 操作以创建和管理人工循环。要了解这些 API 操作的更多信息,请参阅在 Amazon Augmented AI 中使用 API

AmazonAugmentedAIFullAccess 不会授予使用 Amazon Rekognition 或 Amazon Textract API 操作的权限。

注意

您也可以将 AmazonAugmentedAIFullAccess 附加到用于创建和启动人工循环的 IAM 角色。

创建所需的 IAM 用户

  1. 登录到 IAM 控制台 https://console.amazonaws.cn/iam/()。

  2. 选择用户并选择现有用户,或者选择添加用户来创建新用户。要了解如何创建新 用户,请参阅 IAM 用户指南 AWS中的在您的 账户中AWS Identity and Access Management创建 用户。

    • 如果您选择将策略附加到现有用户,请选择添加权限

    • 在创建新用户时,请执行设置权限页面上的下一步。

  3. 选择直接附加现有策略

  4. 搜索栏中,输入 AmazonAugmentedAIFullAccess 并选中该策略旁边的复选框。

    要允许该 IAM 用户与公有工作组一起创建流定义,还要附加 AmazonSageMakerMechanicalTurkAccess 托管策略。

  5. 附加一个或多个策略后:

    1. 如果您使用现有用户,请选择下一步:审核,然后选择添加权限

    2. 如果您要创建新用户,请选择下一步:标签,然后完成创建用户的过程。

有关更多信息,请参阅 IAM 用户指南 中的添加和删除AWS Identity and Access Management身份权限

创建有权调用 IAM、Amazon A2I 和 Amazon Textract API 操作的 Amazon Rekognition 用户

要创建有权调用内置任务类型使用的 API 操作(即,IAM 为 DetectModerationLables,Amazon Rekognition 为 AnalyzeDocument)并有权使用所有 Amazon Textract API 操作的 Amazon A2I 用户,请附加 IAM 托管策略 AmazonAugmentedAIIntegratedAPIAccess。如果要为将 IAM 与多种任务类型一起使用的 Amazon A2I 用户授予广泛的权限,您可能需要使用该策略。要了解这些 API 操作的更多信息,请参阅在 Amazon Augmented AI 中使用 API

注意

您也可以将 AmazonAugmentedAIIntegratedAPIAccess 附加到用于创建和启动人工循环的 IAM 角色。

创建所需的 IAM 用户

  1. 登录到 IAM 控制台 https://console.amazonaws.cn/iam/()。

  2. 选择用户并选择现有用户,或者选择添加用户来创建新用户。要了解如何创建新 用户,请参阅 IAM 用户指南 AWS中的在您的 账户中AWS Identity and Access Management创建 用户。

    • 如果您选择将策略附加到现有用户,请选择添加权限

    • 在创建新用户时,请执行设置权限页面上的下一步。

  3. 选择直接附加现有策略

  4. 搜索栏中,输入 AmazonAugmentedAIIntegratedAPIAccess,然后选中该策略旁边的框。

    要允许该 IAM 用户使用 Amazon Mechanical Turk 创建流定义,还要附加 AmazonSageMakerMechanicalTurkAccess 托管策略。

  5. 附加一个或多个策略后:

    1. 如果您使用现有用户,请选择下一步:审核,然后选择添加权限

    2. 如果您要创建新用户,请选择下一步:标签,然后完成创建用户的过程。

有关更多信息,请参阅 IAM 用户指南 中的添加和删除AWS Identity and Access Management身份权限

启用工作人员任务模板预览

要自定义工作人员在处理任务时看到的界面和说明,您可以创建工作人员任务模板。您可以使用 CreateHumanTaskUi 操作或 SageMaker 控制台创建模板。

要预览模板,您需要具有以下权限的 IAM 角色,以读取在用户界面上呈现的 Amazon S3 对象。

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

对于 Amazon Rekognition 和 Amazon Textract 任务类型,您可以使用 Amazon Augmented AI 控制台的 SageMaker 部分预览模板。对于自定义任务类型,您可以通过调用 RenderUiTemplate 操作预览模板。要预览模板,请按照任务类型的说明操作:

  • Amazon Rekognition 和 Amazon Textract 任务类型 – 在 SageMaker 控制台中,使用创建工作人员任务模板中所记录过程的角色的 Amazon 资源名称 (ARN)。

  • 自定义任务类型 – 在 RenderUiTemplate 操作中,在 RoleArn 参数中使用角色的 ARN。

其他权限和安全资源