搭配 Ground Truth 使用 AWS Lambda 所需權限 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

搭配 Ground Truth 使用 AWS Lambda 所需權限

您可能需要設定以下部分或所有內容才能建立 AWS Lambda 並搭配使用 Ground Truth。

  • 您需要授予 IAM 角色或使用者 (統稱為 IAM 實體) 權限,才能使用建立預先註釋和註釋後的 Lambda 函數 AWS Lambda,並在建立標籤任務時選擇這些函數。

  • 在設定標籤工作時指定的 IAM 執行角色需要權限才能調用註釋前與註釋後 Lambda 函式。

  • 註釋後 Lambda 函式可能需要權限才能存取 Amazon S3。

請參閱以下各節,了解如何建立 IAM 實體並授予上述權限。

授予建立和選取 AWS Lambda 函數的權限

如果您不需要精細的許可來開發預先註釋和註釋後的 Lambda 函數,則可以將 AWS 受管政策附加AWSLambda_FullAccess到使用者或角色。此政策授予使用所有 Lambda 功能的廣泛許可,以及在與 Lambda 互動的其他 AWS 服務中執行動作的權限。

若要針對安全敏感的使用案例建立更精細的政策,請參閱 AWS Lambda 開發人員指南中的 Lambda 以身分識別為基礎的 IAM 政策文件,以了解如何建立適合您使用案例的 IAM 政策。

使用 Lambda 主控台政策

如果您想要授與 IAM 實體使用 Lambda 主控台的權限,請參閱 AWS Lambda 開發人員指南中的使用 Lambda 主控台

此外,如果您希望使用者能夠使用 Lambda 主控台 AWS Serverless Application Repository 中的存取和部署 Ground Truth 起動器預先註釋和註釋後功能,則必須指定<aws-region>要部署函數的位置 (這應與建立標籤工作所用的 AWS 區域相同),並將下列政策新增至 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 G SageMaker round Truth 主控台所述的權限,包括自訂標籤工作流程許可一節所述的權限。

授予 IAM 執行角色權限以叫用 AWS 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 位置。此位置由 payload 物件的 s3Uri 字串識別。若要處理註釋 (即使是簡單的傳遞函式),您也需要向註釋後 Lambda 執行角色指派必要權限,以便從 Amazon S3 讀取檔案。

您可利用許多方法來設定 Lambda 並存取 Amazon S3 的註釋資料。兩種常見方法是:

  • 允許 Lambda 執行角色扮演註釋後 Lambda 請求roleArn中所識別的 SageMaker 執行角色。此 SageMaker 執行角色是用來建立標籤任務的執行角色,可存取存放註釋資料的 Amazon S3 輸出儲存貯體。

  • 授予 Lambda 執行角色權限,以便直接存取 Amazon S3 輸出儲存貯體。

請參閱下列各節來了解如何設定這些選項。

授予 Lambda 權限以擔任 SageMaker 執行角色

若要允許 Lambda 函數擔任 SageMaker 執行角色,您必須將政策附加至 Lambda 函數的執行角色,並修改 SageMaker 執行角色的信任關係,以允許 Lambda 承擔。

  1. 將下列 IAM 政策附加至 Lambda 函數的執行角色,以扮演中所識別的 SageMaker 執行角色Resource。將 222222222222 取代為 AWS 帳戶 ID。將 sm-execution-role 取代為所擔任角色的名稱。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::222222222222:role/sm-execution-role" } }
  2. 修改 SageMaker 執行角色的信任原則,以包含下列項目Statement。將 222222222222 取代為 AWS 帳戶 ID。將 my-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 讀取權限。使用您在建立標籤工作時指定的輸出儲存貯體名稱來取代 DOC-EXAMPLE-BUCKET

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

若要新增 S3 讀取權限至 Lambda 主控台的 Lambda 執行角色,請採用下列程序。

新增 S3 讀取權限至註釋後 Lambda:
  1. 開啟 Lambda 主控台的 Functions (函式) 頁面

  2. 選擇註釋後函式的名稱。

  3. 選擇 Configuration (組態),然後選擇 Permissions (權限)。

  4. 選取 Role name (角色名稱),該角色的摘要頁面立即在 IAM 主控台的新索引標籤開啟。

  5. 選取 Attach policies (附加政策)。

  6. 執行以下任意一項:

    • 搜尋並選取 AmazonS3ReadOnlyAccess,以便授予函式權限來讀取帳戶的所有儲存貯體與物件。

    • 如您需要更精細的權限,請選取 Create policy (建立政策),然後利用上一節的政策範例來建立政策。請注意,在建立政策之後,您必須導覽回執行角色摘要頁面。

  7. 如您採用 AmazonS3ReadOnlyAccess 受管政策,請選取 Attach policy (附加政策)。

    如您已建立新政策,請導覽回 Lambda 執行角色摘要頁面,並附加您剛建立的政策。