新增與 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 SageMaker Ground Truth 主控台,包括 一節中所述的許可自訂標籤工作流程許可

授予IAM執行角色許可以叫用 AWS Lambda 函數

如果您將 IAM 受管政策AmazonSageMakerGroundTruthExecution新增至用於建立標籤工作的IAM執行角色,此角色具有許可,可列出 Lambda 函數,並在函數名稱中呼叫下列其中一個字串:GtRecipeSageMakerSagemakersagemakerLabelingFunction

如註釋前或註釋後 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. 修改執行角色的信任政策,以包含下列 Statement。 SageMaker 將 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 讀取權限。Replace (取代) amzn-s3-demo-bucket 使用您在建立標籤工作時指定的輸出儲存貯體名稱。

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

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

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

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

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

  4. 選取角色名稱,該角色的摘要頁面會在主控台的新索引標籤IAM中開啟。

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

  6. 執行以下任意一項:

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

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

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

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