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

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

使用所需权限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 功能的广泛权限,以及在其他功能中执行操作的权限AmazonLambda 与之交互的服务。

要为安全敏感型用例创建更精细的策略,请参阅文档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 控制台的权限,包括部分中描述的权限自定义标记工作流权.

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

如果您添加 IAM 托管策略AmazonSageMakerGroundTruthExecution对于用于创建标签作业的 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. Replace222222222222Amazon账户 ID. Replacesm-execution-role以代入角色的名称为。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::222222222222:role/sm-execution-role" } }
  2. 修改信任策略的 SageMaker 执行角色包括以下内容Statement. Replace222222222222Amazon账户 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 读取权限。ReplaceDOC-例-BUCKET使用您在创建标记作业时指定的输出存储桶的名称。

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

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

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

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

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

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

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

  5. Select附加策略.

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

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

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

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

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