使用所需权限Amazon Lambda使用 Ground Truth - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

使用所需权限Amazon Lambda使用 Ground Truth

您可能需要配置以下部分或全部内容才能创建并使用Amazon Lambda与 Ground Truth。

  • 您需要授予 IAM 角色或用户(统称为 IAM 实体)权限,Lambda 便使用Amazon Lambda,并在创建标注作业时选择它们。

  • 在配置标记作业时指定的 IAM 执行角色需要调用注释前和注释后 Lambda 函数的权限。

  • 注释后 Lambda 函数可能需要权限才能访问 Amazon S3。

使用以下各节可了解如何创建 IAM 实体和授予上述权限。

授予创建和选择Amazon Lambda函数

如果不需要精细的权限来开发注释前和注释后 Lambda 函数,可以将Amazon管理的策略AWSLambda_FullAccess添加到 IAM 用户或角色。此策略授予使用所有 Lambda 功能的广泛权限,以及在其他Amazon与 Lambda 交互的服务。

要针对安全敏感的使用案例创建更精细的策略,请参阅Lambda 的基于身份的 IAM 策略在到Amazon Lambda开发人员指南,了解如何创建适合您的使用案例的 IAM 策略。

使用 Lambda 控制台的策略

如果要授予 IAM 实体使用 Lambda 控制台的权限,请参阅使用 Lambda 控制台中的Amazon Lambda开发人员指南 的第一个版本。

此外,如果您希望用户能够使用Amazon Serverless Application Repository在 Lambda 控制台中,您必须指定<aws-region>,您希望部署函数(这应该是相同的Amazon用于创建标记作业的区域),并将以下策略添加到 IAM 角色。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "serverlessrepo:ListApplicationVersions", "serverlessrepo:GetApplication", "serverlessrepo:CreateCloudFormationTemplate" ], "Resource": "arn:aws:serverlessrepo:<aws-region>:838997950401:applications/aws-sagemaker-ground-truth-recipe" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "serverlessrepo:SearchApplications", "Resource": "*" } ] }

在 Ground Truth 控制台中查看 Lambda 功能的策略

若要授予 IAM 实体在用户创建自定义标签作业时在 “Ground Truth” 控制台中查看 Lambda 函数的权限,该实体必须具有授予 IAM 使用 Amazon SageMaker Ground Truth Truth 控制台的权限,包括部分中描述的权限自定义标记工作流权限

授予 IAM 执行角色调用的权限Amazon Lambda函数

如果您添加 IAM 托管策略卓越亚马逊制造商基础真相执行添加到用于创建标签作业的 IAM 执行角色,则此角色有权列出和调用 Lambda 函数,并在函数名称中使用以下字符串之一:GtRecipeSageMakerSagemakersagemaker,或者LabelingFunction

如果注释前或注释后 Lambda 函数名称不包含前段中的某个术语,或者您需要比AmazonSageMakerGroundTruthExecution托管策略,您可以添加类似于以下内容的策略,以授予执行角色调用注释前和注释后函数的权限。

{ "Version": "2012-10-17", "Statement": [ { "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>" ] } ] }

授予注释后 Lambda 访问批注的权限

注释后 Lambda,注释后 Lambda 请求将包含注释数据在 Amazon S3 中的位置。此位置由s3Uri中的字符串payload对象。要在出现注释时处理这些注释,即使对于简单的传递函数,您也需要分配必要的权限到注释后Lambda 执行角色从 Amazon S3 读取文件。

您可以通过多种方式配置 Lambda 以访问 Amazon S3 中的注释数据。两种常见方法是:

  • 允许 Lambda 执 SageMaker 色代入roleArn在注释后 Lambda 请求中。此 SageMaker 执行角色是用于创建标签作业的角色,可以访问存储注释数据的 Amazon S3 输出存储桶。

  • 授予 Lambda 执行角色权限,以便直接访问 Amazon S3 输出存储桶。

使用以下各节可了解如何配置这些选项。

授予 Lambda 权限以担任 SageMaker 执行角色

要允许 Lambda 函数担任 SageMaker 执行角色,您必须将策略附加到 Lambda 函数的执行角色,并修改 SageMaker 执行角色的信任关系,以允许 Lambda 担任该角色。

  1. 附加以下 IAM 策略设置为 Lambda 函数的执行 SageMaker 色,以承担Resource。Replace222222222222带有Amazon账户 ID。Replacesm-exeuction-role替换为所担任角色的名称。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::222222222222:role/sm-exeuction-role" } }
  2. 修改信任策略,以包含以下Statement。Replace222222222222带有Amazon账户 ID。Replacemy-lambda-execution-role替换为所担任角色的名称。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222222222222:role/my-lambda-execution-role" }, "Action": "sts:AssumeRole" } ] }

授予 Lambda 执行角色访问 S3 的权限

您可以将类似于以下内容的策略添加到注释后 Lambda 函数执行角色,以向其授予 S3 读取权限。Replace文档示例存储桶,其中包含您在创建标记作业时指定的输出存储桶的名称。

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

要将 S3 读取权限添加到 Lambda 控制台中的 Lambda 执行角色,请使用以下过程。

将 S3 读取权限添加到注释后 Lambda:

  1. 打开函数在 Lambda 控制台中。

  2. 选择注释后函数的名称。

  3. 选择 Configuration (配置),然后选择 Permissions (权限)

  4. 选择Role name (角色名称),该角色的摘要页面将在 IAM 控制台中的新选项卡中打开。

  5. Select附加策略

  6. 请执行下列操作之一:

    • 搜索并选择AmazonS3ReadOnlyAccess授予函数读取账户中所有存储桶和对象的权限。

    • 如果您需要更精细的权限,请选择创建策略,然后使用前一节中的策略示例创建策略。请注意,创建策略后,必须返回执行角色摘要页面。

  7. 如果您使用AmazonS3ReadOnlyAccess托管策略,选择附加策略

    如果创建了新策略,请导航回 Lambda 执行角色摘要页面并附加刚创建的策略。