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

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

Amazon Augmented AI 中的权限和安全性

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

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

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

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

    有关您可修改并附加到用于创建流定义的角色的示例策略,请参阅向用于创建流定义的 IAM 角色添加权限。这些是附加到在人工审核工作流SageMaker 控制台的亚马逊 A2I 区域的部分。

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

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

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

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

CORS 权限要求

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

从 Chrome 89 开始,Amazon无法再自动阻止图像的旋转,因为 Web 标准组 W3C 决定控制图像轮换的能力违反了网络的同来源政策。因此,为了确保人工在提交创建人类循环的请求时以可预测的方向对输入图像进行注释,您必须向包含输入图像的 S3 存储桶添加 CORS 标头策略。

重要

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

您可以将 CORS 策略添加到 Amazon S3 控制台中包含输入数据的 S3 存储桶。要在 S3 控制台中包含输入图像的 S3 存储桶上设置所需的 CORS 标头,请按照中详细的说明进行操作如何通过 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 控制台中或在使用CreateFlowDefinitionAPI 操作。

  • 如果您使用控制台创建人工审核工作流程,请在IAM 角色字段何时在控制台中创建人工审核工作流程.

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

创建人工审核工作流(流定义)时,Amazon A2I 调用 Amazon S3 来完成您的任务。要向 Amazon A2I 授予权限以检索和存储在 Amazon S3 存储桶中的权限,请创建以下策略并将其附加到您的角色。例如,如果您发送用于进行人工审核的图像、文档和其他文件存储在名为的 S3 存储桶中。my_input_bucket,如果你想将人类评论存储在名为的存储桶中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 信任策略的更多信息,请参基于资源的策略部分策略和权限中的AmazonIdentity and Access Management文档中)。

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

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

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

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

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

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

注意

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

创建所需的 IAM 用户

  1. 通过以下网址登录到 IAM 控制台:https://console.aws.amazon.com/iam/

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

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

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

  3. 选择 Attach existing policies directly(直接附上现有策略)。

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

    要允许此 IAM 用户能够与公有工作团队一起创建流定义,还需要附加AmazonSageMakerMechanicalTurkAccess托管策略。

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

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

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

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

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

要创建有权调用内置任务类型使用的 API 操作的 IAM 用户(即,DetectModerationLables适用于 Amazon Rekognition 和AnalyzeDocument对于 Amazon Textract)以及使用所有 Amazon A2I API 操作的权限,请附加 IAM 托管策略,AmazonAugmentedAIIntegratedAPIAccess. 如果您希望向使用具有多种任务类型的 Amazon A2I 用户授予广泛的权限,您可能需要使用此策略。要了解这些 API 操作的更多信息,请参阅在 Amazon Augmented AI 中使用 API

注意

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

创建所需的 IAM 用户

  1. 通过以下网址登录到 IAM 控制台:https://console.aws.amazon.com/iam/

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

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

    • 如果您要创建新用户,请按照设置权限页.

  3. 选择 Attach existing policies directly(直接附上现有策略)。

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

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

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

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

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

有关更多信息,请参阅 。添加和删除 IAM 身份权限中的Amazon 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 任务类型,您可以使用 SageMaker 控制台的亚马逊 Augmented AI 部分预览模板。对于自定义任务类型,您可以通过调用RenderUiTemplateoperation. 要预览模板,请按照任务类型的说明操作:

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

  • 自定义任务类型 — 在RenderUiTemplate操作,请 ARNRoleArn参数。

将 Amazon A2I 与Amazon KMS加密存储桶

如果你指定Amazon Key Management Service(Amazon KMS) 用于加密输出数据的客户管理密钥OutputConfigCreateFlowDefinition,您必须向该密钥添加类似于以下内容的 IAM 策略。此策略授予您用于创建人类循环的 IAM 执行角色的权限,以便使用此密钥执行中列出的所有操作"Action". 要了解这些操作的更多信息,请参阅Amazon KMS许可中的Amazon Key Management Service开发人员指南 的第一个版本。

要使用此策略,请在中替换 IAM 服务角色 ARN"Principal"使用您用于创建人工审核工作流(流定义)的执行角色的 ARN。使用创建标记作业时CreateFlowDefinition,这是你指定的 ARNRoleArn. 请注意,你不能提供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": "*" }

其他权限和安全资源