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

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

亚马逊Augmented AI 中的权限和安全性

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

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

  • 创建流程定义时,您需要提供一个角色来授予 Amazon A2I 访问 Amazon S3 的权限,用于读取在人工任务界面中呈现的对象和编写人工审查的结果。

    角色还必须附加信任策略才能授予代入 SageMaker 权限。这允许 Amazon A2I 根据您授予该角色的权限执行操作。

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

  • 要创建和启动人工循环,您可以使用内置任务类型的 API 操作(例如DetectModerationLabelAnalyzeDocument),或者使用自定义 ML 应用程序中的 Amazon A2I Runtime API 操作StartHumanLoop。您需要将AmazonAugmentedAIFullAccess托管策略附加到调用这些 API 操作的用户,才能向这些服务授予使用 Amazon A2I 操作的权限。要了解如何操作,请参阅创建可以调用亚马逊 A2I API 操作的用户

    该策略不会 授予调用与内置任务类型关联的 Amazon 服务的 API 操作的权限。例如,AmazonAugmentedAIFullAccess不授予调用Amazon RekognitionDetectModerationLabel API 操作或Amazon TextractAnalyzeDocument I 操作的权限。您可以使用更通用的策略来授予这些权限。AmazonAugmentedAIIntegratedAPIAccess有关更多信息,请参阅创建有权调用亚马逊 A2I、亚马逊 Textract 和Amazon Rekognition API 操作的用户:当您想要授予用户使用 Amazon A2I 和集成Amazon服务的 API 操作的广泛权限时,这是一个不错的选择。

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

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

CORS 权限要求

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

从Chrome 89开始,Amazon无法再自动阻止图像旋转,因为网络标准组织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 控制台添加 CORS 标头策略的Amazon S3 文档中的说明。

向用于创建流程定义的 IAM 角色添加权限

要创建流程定义,请将本节中的策略附加到您在 SageMaker 控制台中创建人工审查工作流程或使用CreateFlowDefinition API 操作时使用的角色。

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

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

当您创建人工审查工作流程(流程定义)时,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 信任策略的更多信息,请参阅Identity and Access Man agemAmazon ent 文档中 “策略和权限” 的 “基于资源的策略” 部分。

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

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

创建可以调用亚马逊 A2I API 操作的用户

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

该政策允许用户从 API 调用 API 操作以创建和管理流程定义,从 Amazon Autmented A SageMaker I Runtime API 调用 API Augmented AI 创建和管理人为循环。要了解这些 API 操作的更多信息,请参阅在 Amazon Augmented AI 中使用 API

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

注意

您还可以将AmazonAugmentedAIFullAccess策略附加到用于创建和启动人为循环的 IAM 角色。

要提供访问权限,请为您的用户、组或角色添加权限:

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

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

要创建有权调用内置任务类型(即Amazon Rekognition 和AnalyzeDocument Amazon Textract)使用的 API 操作并有权使用所有 Amazon A2I API 操作的用户,请附上 IAM 托管策略AmazonAugmentedAIIntegratedAPIAccessDetectModerationLables当您想要向使用 Amazon A2I 执行多种任务类型的用户授予广泛权限时,可能需要使用此政策。要了解这些 API 操作的更多信息,请参阅在 Amazon Augmented AI 中使用 API

注意

您还可以将AmazonAugmentedAIIntegratedAPIAccess策略附加到用于创建和启动人为循环的 IAM 角色。

要提供访问权限,请为您的用户、组或角色添加权限:

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

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

要自定义工作人员在处理任务时看到的界面和说明,您可以创建工作人员任务模板。您可以使用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 部分预览您的模板。对于自定义任务类型,您可以通过调用该RenderUiTemplate操作来预览您的模板。要预览模板,请按照任务类型的说明操作:

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

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

使用带Amazon KMS加密存储桶的 Amazon A2I

如果您指定Amazon Key Management Service (Amazon KMS) 客户托管密钥来加密OutputConfig的输出数据 CreateFlowDefinition,则必须向该密钥添加与以下内容类似的 IAM 策略。此策略授予您用于创建人工循环的 IAM 执行角色的权限,允许您使用此密钥执行中列出的所有操作"Action"。要了解有关这些操作的更多信息,请参阅Amazon Key Management Service开发者指南中的Amazon KMS权限

要使用此策略,请将中的 IAM 服务角色 ARN 替换为用于创建人工审查工作流程(流程定义)的执行角色的 ARN。"Principal"当您使用创建标注任务时CreateFlowDefinition,这是您为其指定的 ARN RoleArn。请注意,在控制台中创建流程定义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": "*" }

其他权限和安全资源