View a markdown version of this page

添加所需的使用权限 AWS Lambda 用 Ground Truth - 亚马逊 SageMaker AI

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

添加所需的使用权限 AWS Lambda 用 Ground Truth

您可能需要配置以下部分或全部内容,才能在 Ground Truth 中创建和使用 AWS Lambda 。

  • 您需要向 IAM 角色或用户(统称为 IAM 实体)授予使用创建标注前和注释后 Lambda 函数的权限 AWS Lambda,并在创建标签任务时选择它们。

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

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

使用以下部分了解如何创建 IAM 实体并授予上述权限。

授予创建和选择权限 AWS Lambda 函数

如果您不需要精细权限来开发注释前和注释后的 Lambda 函数,则可以将托管AWSLambda_FullAccess策略附加 AWS 到用户或角色。该策略授予使用所有 Lambda 功能的广泛权限,以及在 Lambda 与之交互的其他 AWS 服务中执行操作的权限。

要为对安全敏感的用例创建更精细的策略,请参阅 AWS Lambda 开发人员指南中针对 Lambda 的 Identity-based IAM 策略文档,了解如何创建适合您的用例的 IAM 策略。

使用 Lambda 控制台的策略

如果您想授予 IAM 实体使用 Lambda 控制台的权限,请参阅开发人员指南中的使用 Lambda 控制台。 AWS Lambda

此外,如果您希望用户能够 AWS Serverless Application Repository 在 Lambda 控制台中使用访问和部署 Ground Truth 入门预注释和标注后函数,则必须指定要部署函数<aws-region>的位置(这应该与用于创建标签任务的 AWS 区域相同),并将以下策略添加到 IAM 角色。

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

在 Ground Truth 控制台中查看 Lambda 函数的策略

要授予 IAM 实体在用户创建自定义标注作业时在 Ground Truth 控制台中查看 Lambda 函数的权限,该实体必须具有授予 IAM 使用亚马逊 G SageMaker round Truth 控制台的权限中所述的权限,包括自定义标注工作流权限部分中所述权限。

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

如果您将 IAM 托管策略AmazonSageMakerGroundTruthExecution添加到用于创建标签任务的 IAM 执行角色,则该角色有权列出和调用函数名称中包含以下字符串之一的 Lambda 函数:GtRecipe、、、SageMakerSagemakersagemaker、或。LabelingFunction

如果注释前或注释后 Lambda 函数名称不包括上一段中的任何术语,或者您需要比 AmazonSageMakerGroundTruthExecution 托管策略中更细粒度的权限,您可以添加与下面类似的策略,以授予执行角色调用注释前和注释后函数的权限。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": [ "arn:aws:lambda:us-east-1:111122223333:function:<pre-annotation-lambda-name>", "arn:aws:lambda:us-east-1:111122223333:function:<post-annotation-lambda-name>" ] } ] }

授予 Post-Annotation Lambda 访问注解的权限

Post-annotation Lambda中所述,注释后 Lambda 请求包括注释数据在 Amazon S3 中的位置。此位置由 payload 对象中的 s3Uri 字符串标识。要处理传入的注释,即使是简单的传递函数,也需要为注释后 Lambda 执行角色分配必要的权限,以便从 Amazon S3 读取文件。

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

  • 允许 Lambda 执行角色担任注释后 Lambda 请求roleArn中标识的 SageMaker AI 执行角色。此 SageMaker AI 执行角色用于创建标签任务,并且可以访问存储注释数据的 Amazon S3 输出存储桶。

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

使用以下部分了解如何配置这些选项。

向 Lambda 授予担任 SageMaker AI 执行角色的权限

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

  1. 将以@@ 下 IAM 策略附加到您的 Lambda 函数的执行角色,以代入中确定的 SageMaker AI 执行角色。Resource222222222222 替换为 AWS 账户 ID。将 sm-execution-role 替换为代入角色的名称。

    JSON
    { "Version":"2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::222222222222:role/sm-execution-role" } }
  2. 修改 SageMaker AI 执行角色的信任策略以包括以下内容Statement。将 222222222222 替换为 AWS 账户 ID。将 my-lambda-execution-role 替换为代入角色的名称。

    JSON
    { "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 读取权限。amzn-s3-demo-bucket替换为您在创建标注任务时指定的输出存储桶的名称。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

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

将 S3 读取权限添加到注释后 Lambda:
  1. 在 Lambda 控制台中打开函数页面

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

  3. 选择配置,然后选择权限

  4. 选择角色名称,该角色的摘要页面就会在 IAM 控制台的新标签页中打开。

  5. 选择附加策略

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

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

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

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

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