为 Ground Truth 标签作业创建 SageMaker 执行角色 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

为 Ground Truth 标签作业创建 SageMaker 执行角色

配置标签作业时,您需要提供一个执行角色,即 SageMaker 有权代入的角色来启动和运行您的标注作业。

该角色必须授予 Ground Truth 访问以下内容的权限:

  • 用于检索输入数据并将输出数据写入 Amazon S3 存储桶的 Amazon S3。您可以通过提供存储桶来授予IAM角色访问整个存储桶的权限ARN,也可以向该角色授予访问存储桶中特定资源的访问权限。例如,存储桶ARN的可能看起来类似于arn:aws:s3:::amzn-s3-demo-bucket1,Amazon S3 存储桶中的资源可能类似于arn:aws:s3:::amzn-s3-demo-bucket1/prefix/file-name.png。ARN要对 Amazon S3 存储桶中的所有资源应用操作,您可以使用通配符:*。例如,arn:aws:s3:::amzn-s3-demo-bucket1/prefix/*。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的 Amazon S3 资源

  • CloudWatch 记录工作人员指标和标签作业状态。

  • Amazon KMS 用于数据加密。(可选)

  • Amazon Lambda 用于在创建自定义工作流程时处理输入和输出数据。

此外,如果创建流式标注作业,此角色必须有权访问以下内容:

  • Amazon SQS 将创建与用于管理标签请求的SQS队列的互动。

  • 亚马逊订SNS阅和检索您的亚马逊SNS输入主题中的消息,并向您的亚马逊SNS输出主题发送消息。

所有这些权限都可以通过 AmazonSageMakerGroundTruthExecution 托管策略授予,除了

  • Amazon S3 存储桶的数据和存储卷加密。要了解如何配置这些权限,请参阅使用 Amazon KMS加密输出数据和存储卷

  • 选择和调用函数名中不包含 GtRecipeSageMakerSagemakersagemakerLabelingFunction 的 Lambda 函数的权限。

  • 前缀或存储桶名称中不包括 GroundTruthGroundtruthgroundtruthSageMakerSagemakersagemaker 的 Amazon S3 存储桶,或名称中包括 SageMaker对象标签(不区分大小写)。

如果您需要比 AmazonSageMakerGroundTruthExecution 中提供的权限更精细的权限,请使用以下策略示例创建适合您的特定使用案例的执行角色。

内置任务类型(非流式)执行角色要求

以下策略授予为内置任务类型创建标注作业的权限。此执行策略不包括 Amazon KMS 数据加密或解密权限。用您自己的 Amazon S3 替换每个红色斜体ARN。ARNs

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ViewBuckets", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::<input-bucket-name>", "arn:aws:s3:::<output-bucket-name>" ] }, { "Sid": "S3GetPutObjects", "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::<input-bucket-name>/*", "arn:aws:s3:::<output-bucket-name>/*" ] }, { "Sid": "CloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:CreateLogGroup", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "*" } ] }

内置任务类型(流式)执行角色要求

如果您创建流式标注作业,则必须向用于创建标注作业的执行角色添加类似以下内容的策略。要缩小策略的范围,请将*中的Resource替换为要授予IAM角色访问和使用的权限的特定 Amazon 资源。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::<input-bucket-name>/*", "arn:aws:s3:::<output-bucket-name>/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "s3:ExistingObjectTag/SageMaker": "true" } } }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::<input-bucket-name>", "arn:aws:s3:::<output-bucket-name>" ] }, { "Sid": "CloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:CreateLogGroup", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "*" }, { "Sid": "StreamingQueue", "Effect": "Allow", "Action": [ "sqs:CreateQueue", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:SendMessageBatch", "sqs:SetQueueAttributes" ], "Resource": "arn:aws:sqs:*:*:*GroundTruth*" }, { "Sid": "StreamingTopicSubscribe", "Effect": "Allow", "Action": "sns:Subscribe", "Resource": [ "arn:aws:sns:<aws-region>:<aws-account-number>:<input-topic-name>", "arn:aws:sns:<aws-region>:<aws-account-number>:<output-topic-name>" ], "Condition": { "StringEquals": { "sns:Protocol": "sqs" }, "StringLike": { "sns:Endpoint": "arn:aws:sns:<aws-region>:<aws-account-number>:*GroundTruth*" } } }, { "Sid": "StreamingTopic", "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:<aws-region>:<aws-account-number>:<input-topic-name>", "arn:aws:sns:<aws-region>:<aws-account-number>:<output-topic-name>" ] }, { "Sid": "StreamingTopicUnsubscribe", "Effect": "Allow", "Action": [ "sns:Unsubscribe" ], "Resource": [ "arn:aws:sns:<aws-region>:<aws-account-number>:<input-topic-name>", "arn:aws:sns:<aws-region>:<aws-account-number>:<output-topic-name>" ] } ] }

自定义任务类型的执行角色要求

如果要创建自定义标注工作流,请将以下语句添加到执行角色策略中,如 内置任务类型(非流式)执行角色要求内置任务类型(流式)执行角色要求 中的策略。

此策略向执行角色授予 Invoke 注释前和注释后 Lambda 函数的权限。

{ "Sid": "LambdaFunctions", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:<region>:<account-id>:function:<pre-annotation-lambda-name>", "arn:aws:lambda:<region>:<account-id>:function:<post-annotation-lambda-name>" ] }

自动数据标注权限要求

如果要创建启用自动数据标签的标签任务,则必须 1) 向附加到执行角色的IAM策略中添加一个策略,2) 更新执行角色的信任策略。

以下语句允许将IAM执行角色传递给, SageMaker以便它可用于运行分别用于主动学习和自动数据标签的训练和推理作业。将此语句添加到执行角色策略中,如 内置任务类型(非流式)执行角色要求内置任务类型(流式)执行角色要求 中的策略。arn:aws:iam::<account-number>:role/<role-name>替换为执行角色ARN。你可以在IAM控制台的 “IAM角色ARN” 下找到你的角色

{ "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::<account-number>:role/<execution-role-name>", "Condition": { "StringEquals": { "iam:PassedToService": [ "sagemaker.amazonaws.com" ] } } }

以下语句 SageMaker 允许扮演执行角色来创建和管理 SageMaker 训练和推理作业。必须将此策略添加到执行角色的信任关系中。要了解如何添加或修改IAM角色信任策略,请参阅IAM用户指南中的修改角色

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