本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Augmented AI 中的权限和安全性
使用 Amazon Agumented AI (Amazon A2I) 为您的 ML/AI 应用程序创建人工审核工作流程时,您可以在亚马逊中创建和配置资源, SageMaker 例如人力和员工任务模板。要配置和启动人工循环,你可以将亚马逊 A2I 与其他 AWS 服务(例如亚马逊 Textract 或 Amazon Rekognition)集成,要么使用亚马逊增强人工智能运行时。API要创建人工审核工作流程并启动人工循环,您必须将某些策略附加到您的 AWS Identity and Access Management (IAM) 角色或用户。具体来说:
-
当您在 2020 年 1 月 12 日当天或之后使用图像输入数据开始人工循环时,必须向包含您的输入数据的 Amazon S3 存储桶添加CORS标头策略。请参阅CORS权限要求,了解更多信息。
-
创建流定义时,您需要提供一个角色,向 Amazon A2I 授予权限以访问 Amazon S3,这包括读取在人工任务 UI 中呈现的对象,以及写入人工审核的结果。
此角色还必须附加信任策略才能授予担任该角色的 SageMaker 权限。这使得 Amazon A2I 可以根据您附加到角色的权限执行操作。
有关您可修改并附加到用于创建流定义的角色的示例策略,请参阅向用于创建流程定义的IAM角色添加权限。这些策略附加到在控制台 Amazon A2I 区域的人工审核工作流程部分中创建的IAM SageMaker 角色。
-
要创建和启动人工循环,您可以使用内置任务类型的API操作(例如
DetectModerationLabel
或AnalyzeDocument
),或者在自定义 ML 应用程序StartHumanLoop
中使用 Amazon A2I 运行时API操作。您需要将AmazonAugmentedAIFullAccess
托管策略附加到调用这些API操作的用户,以授予这些服务使用 Amazon A2I 操作的权限。要了解如何操作,请参阅 创建可以调用 Amazon A2 API I 操作的用户。此策略不授予调用与内置任务类型关联的 AWS 服务的API操作的权限。例如,
AmazonAugmentedAIFullAccess
不授予调用 Amazon Rekognition 操作或 Amazon TeDetectModerationLabel
API xtract 操作的权限。AnalyzeDocument
API您可以使用更一般的策略AmazonAugmentedAIIntegratedAPIAccess
以授予这些权限。有关更多信息,请参阅 创建有权调用亚马逊 A2I、亚马逊 Textract 和亚马逊 Rekognition 操作的用户 API。当您想要向用户授予使用 Amazon A2I 和集成 AWS 服务API操作的广泛权限时,这是一个不错的选择。如果要配置更精细的权限,请参阅 Amazon Rekognition 基于身份的策略示例和 Amazon Textract 基于身份的策略示例,以了解可用于授权使用这些单独服务的基于身份的策略。
-
要预览您的自定义工作任务用户界面模板,您需要一个有权读取在您的用户界面上呈现的 Amazon S3 对象的IAM角色。请参阅启用工作人员任务模板预览 中的策略示例。
主题
CORS权限要求
2020年初,Chrome和Firefox等广泛使用的浏览器更改了基于图像元数据(称为EXIF数据
从Chrome 89开始, AWS 无法再自动阻止图像的旋转,因为网络标准组织W3C已认定,控制图像旋转的功能违反了网络的同源政策。因此,为了确保人工工作人员在您提交创建人工循环的请求时以可预测的方向对您的输入图像进行注释,您必须向包含您的输入图像的 S3 存储桶添加CORS标头策略。
重要
如果您没有向包含输入数据的 S3 存储桶添加CORS配置,则这些输入数据对象的人工审查任务将失败。
您可以在 Amazon S3 控制台中向包含输入数据的 S3 存储桶添加CORS策略。要在 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 控制台中创建人工审核工作流程或使用该CreateFlowDefinition
API操作时使用的角色。
-
如果您使用控制台创建人工审核工作流程,请在控制台中创建人工审核工作流程时,在角色字段中输入IAM角色 Amazon Resourc e Name (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 agem AWS ent 文档中策略和权限的基于资源的策略部分。
{ "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用户委派权限。
-
要了解如何创建IAM策略,请参阅创建IAM策略。
-
要了解如何将IAM策略附加到角色,请参阅添加和删除IAM身份权限。
创建可以调用 Amazon A2 API I 操作的用户
要使用亚马逊 A2I 为亚马逊 Rekognition、Amazon Textract 或亚马逊 API A2I 运行时创建和启动人工循环,您必须使用有权调用亚马逊 A2I 操作的用户。为此,请使用IAM控制台将AmazonAugmentedAIFullAccess
此策略允许用户从中调用API操作以创建和管理流程定义,并允许用户从 Amazon Agumented AI Runtime 中调用操作API以创建和管理人工循环。 SageMaker API要了解有关这些API操作的更多信息,请参阅APIs在 Amazon Agumented AI 中使用。
AmazonAugmentedAIFullAccess
不授予使用亚马逊 Rekognition 或 API Amazon Textract 操作的权限。
注意
您也可以将AmazonAugmentedAIFullAccess
策略附加到用于创建和启动人工循环的IAM角色。
要提供访问权限,请为您的用户、组或角色添加权限:
-
中的用户和群组 AWS IAM Identity Center:
创建权限集合。按照《AWS IAM Identity Center 用户指南》中创建权限集的说明进行操作。
-
IAM通过身份提供商管理的用户:
创建适用于身份联合验证的角色。按照《IAM用户指南》中为第三方身份提供商创建角色(联合)中的说明进行操作。
-
IAM用户:
-
创建您的用户可以担任的角色。按照《用户指南》中为IAM用户创建角色中的IAM说明进行操作。
-
(不推荐使用)将策略直接附加到用户或将用户添加到用户组。按照《用户指南》中向用户(控制台)添加权限中的IAM说明进行操作。
-
有关更多信息,请参阅AWS Identity and Access Management 用户指南中的添加和删除IAM身份权限。
创建有权调用亚马逊 A2I、亚马逊 Textract 和亚马逊 Rekognition 操作的用户 API
要创建有权调用内置任务类型(即 Amazon AnalyzeDocument
Rekognition 和 Amazon Textract)所使用的API操作并有权使用所有 API Amazon A2I 操作的用户,请附上托管策略,DetectModerationLables
IAMAmazonAugmentedAIIntegratedAPIAccess
如果要为使用 Amazon A2I 且具有多种任务类型的用户授予广泛的权限,您可能需要使用该策略。要了解有关这些API操作的更多信息,请参阅APIs在 Amazon Agumented AI 中使用。
注意
您也可以将AmazonAugmentedAIIntegratedAPIAccess
策略附加到用于创建和启动人工循环的IAM角色。
要提供访问权限,请为您的用户、组或角色添加权限:
-
中的用户和群组 AWS IAM Identity Center:
创建权限集合。按照《AWS IAM Identity Center 用户指南》中创建权限集的说明进行操作。
-
IAM通过身份提供商管理的用户:
创建适用于身份联合验证的角色。按照《IAM用户指南》中为第三方身份提供商创建角色(联合)中的说明进行操作。
-
IAM用户:
-
创建您的用户可以担任的角色。按照《用户指南》中为IAM用户创建角色中的IAM说明进行操作。
-
(不推荐使用)将策略直接附加到用户或将用户添加到用户组。按照《用户指南》中向用户(控制台)添加权限中的IAM说明进行操作。
-
有关更多信息,请参阅AWS 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 对于自定义任务类型,您可以通过调用 RenderUiTemplate
操作预览模板。要预览模板,请按照任务类型的说明操作:
-
Amazon Rekognition 和 Amazon Textract 任务 SageMaker 类型 — 在控制台中,按照中记录的步骤使用角色的ARN亚马逊资源名称 ()。创建工作人员任务模板
-
自定义任务类型-在
RenderUiTemplate
操作中,使用RoleArn
参数ARN中的角色。
使用带有加密存储桶的 Amazon A2I AWS KMS
如果您指定 AWS Key Management Service (AWS KMS) 客户托管密钥来加密of中的OutputConfig
输出数据 CreateFlowDefinition
,则必须在该密钥中添加类似于以下内容的IAM策略。此策略授予您用于创建人循环的IAM执行角色使用此密钥执行中列出的所有操作的权限"Action"
。要了解有关这些操作的更多信息,请参阅《 AWS Key Management Service 开发者指南》中的AWS KMS 权限。
要使用此策略,请将ARN中的IAM"Principal"
服务角色替换ARN为用于创建人工审核工作流程(流程定义)的执行角色。使用创建标注任务时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": "*" }