如何使用 SageMaker AI 執行角色 - Amazon SageMaker AI

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

如何使用 SageMaker AI 執行角色

Amazon SageMaker AI 會使用其他服務代表您執行操作 AWS 。您必須授予 SageMaker AI 許可,才能使用這些服務及其所採取的資源。您可以使用 AWS Identity and Access Management (IAM) 執行角色授予 SageMaker AI 這些許可。如需 IAM 角色的更多資訊,請參閱 IAM 角色

若要建立和使用執行角色,您可以使用下列程序。

建立執行角色

使用以下程序,建立 IAM 受管政策AmazonSageMakerFullAccess的執行角色。如果您的使用案例需要更細緻的許可,請使用此頁面上的其他區段來建立符合您業務需求的執行角色。您可以使用 SageMaker AI 主控台或 建立執行角色 AWS CLI。

重要

下列程序中使用的 IAM 受管政策AmazonSageMakerFullAccess僅授予執行角色許可,可對具有名為SageMakerSagemakersagemakeraws-glue的儲存貯體或物件執行特定 Amazon S3 動作。要了解如何向執行角色新增其他政策以授予其對其他 Amazon S3 儲存貯體和物件的存取權限,請參閱將其他 Amazon S3 許可新增至 SageMaker AI 執行角色

注意

您可以在建立 SageMaker AI 網域或筆記本執行個體時直接建立執行角色。

從 SageMaker AI 主控台建立新的執行角色

  1. 開啟位於 https://console.aws.amazon.com/iam/ 的 IAM 主控台。

  2. 選擇角色,然後選擇建立角色

  3. AWS 服務保留為受信任實體類型,然後使用向下箭頭在其他服務 AWS 的使用案例中尋找 SageMaker AI

  4. 選擇 SageMaker AI – 執行,然後選擇下一步

  5. IAM 受管政策AmazonSageMakerFullAccess會自動連線至角色。若要查看此政策中包含的許可,請選擇政策名稱旁邊的加號 (+)。選擇下一步

  6. 輸入角色名稱描述

  7. (選用) 將其他許可和標籤新增至角色。

  8. 選擇建立角色

  9. 在 IAM 主控台的角色區段中,找到您剛建立的角色。如有需要,請使用文字方塊用來搜尋角色名稱的角色。

  10. 在角色摘要頁面上,記下 ARN。

若要從 AWS CLI建立新的執行角色

使用 建立執行角色之前 AWS CLI,請務必遵循 中的指示進行更新和設定(選用) 設定 AWS CLI,然後繼續執行 中的指示使用 自訂設定 AWS CLI

建立執行角色後,您可以將其與 SageMaker AI 網域、使用者設定檔或 Jupyter 筆記本執行個體建立關聯。

您也可以將執行角色的 ARN 傳遞給 API 呼叫。例如,使用 Amazon SageMaker Python SDK,您可以將執行角色的 ARN 傳遞給估算器。在接下來的程式碼範例中,我們使用 XGBoost 演算法容器建立估算器,並傳遞執行角色的 ARN 作為參數。有關 GitHub 上的完整範例,請參閱使用 XGBoost 進行客戶流失率預測

import sagemaker, boto3 from sagemaker import image_uris sess = sagemaker.Session() region = sess.boto_region_name bucket = sess.default_bucket() prefix = "sagemaker/DEMO-xgboost-churn" container = sagemaker.image_uris.retrieve("xgboost", region, "1.7-1") xgb = sagemaker.estimator.Estimator( container, execution-role-ARN, instance_count=1, instance_type="ml.m4.xlarge", output_path="s3://{}/{}/output".format(bucket, prefix), sagemaker_session=sess, ) ...

將其他 Amazon S3 許可新增至 SageMaker AI 執行角色

當您使用 SageMaker AI 功能搭配 Amazon S3 中的資源,例如輸入資料時,您在請求中指定的執行角色 (例如 CreateTrainingJob) 會用來存取這些資源。

如果您將 IAM 受管政策附加到執行角色,則該角色有權對具有名為AmazonSageMakerFullAccessSageMakerSagemakersagemakeraws-glue中的儲存貯體或物件執行特定 Amazon S3 動作。它也有權在任何 Amazon S3 資源上執行下列動作:

"s3:CreateBucket", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketCors", "s3:PutBucketCors"

若要授予執行角色存取 Amazon S3 中一或多個特定儲存貯體的許可,您可以將類似下列內容的政策附加到該角色。此政策授予 IAM 角色許可,以執行AmazonSageMakerFullAccess允許但限制此存取的儲存貯體 amzn-s3-demo-bucket1 和 amzn-s3-demo-bucket2 的所有動作。請參閱您使用的特定 SageMaker AI 功能的安全文件,以進一步了解該功能所需的 Amazon S3 許可。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*", "arn:aws:s3:::amzn-s3-demo-bucket2/*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketCors", "s3:PutBucketCors" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1", "arn:aws:s3:::amzn-s3-demo-bucket2" ] } ] }

取得您的執行角色

您可以使用 SageMaker AI 主控台Amazon SageMaker Python SDKAWS CLI來擷取連接到 SageMaker AI 網域、空間或使用者設定檔的執行角色的 ARN 和名稱。

取得網域執行角色

以下提供尋找網域執行角色的指示。

尋找連接至您網域的執行角色
  1. 開啟 SageMaker AI 主控台,https://https://console.aws.amazon.com/sagemaker/

  2. 在左側導覽窗格中,選擇管理員組態下的網域

  3. 選擇與您的網域對應的連結。

  4. 選擇網域設定索引標籤。

  5. 一般設定區段中,執行角色 ARN 會列在執行角色下。

    執行角色名稱在執行角色 ARN /的最後一個 之後。

取得空間執行角色

以下提供尋找空間執行角色的指示。

尋找連接至您空間的執行角色
  1. 開啟 SageMaker AI 主控台,https://https://console.aws.amazon.com/sagemaker/

  2. 在左側導覽窗格中,選擇管理員組態下的網域

  3. 選擇與您的網域對應的連結。

  4. 選擇空間管理索引標籤。

  5. 詳細資訊區段中,執行角色 ARN 會列在執行角色下。

    執行角色名稱在執行角色 ARN /的最後一個 之後。

注意

以下程式碼旨在 SageMaker AI 環境中執行,就像 Amazon SageMaker Studio 中的任何 IDEs。如果您在 SageMaker AI 環境get_execution_role之外執行 ,您將會收到錯誤。

下列 get_execution_role Amazon SageMaker Python SDK 命令會擷取連接至空間之執行角色的 ARN。

from sagemaker import get_execution_role role = get_execution_role() print(role)

執行角色名稱在執行角色 ARN /的最後一個 之後。

取得使用者執行角色

以下提供尋找使用者執行角色的指示。

尋找連接到使用者的執行角色
  1. 開啟 SageMaker AI 主控台,https://https://console.aws.amazon.com/sagemaker/

  2. 在左側導覽窗格中,選擇管理員組態下的網域

  3. 選擇與您的網域對應的連結。

  4. 選擇使用者設定檔索引標籤。

  5. 選擇與您的使用者對應的連結。

  6. 詳細資訊區段中,執行角色 ARN 會列在執行角色下。

    執行角色名稱在執行角色 ARN /的最後一個 之後。

注意

若要使用下列範例,您必須安裝並設定 AWS Command Line Interface (AWS CLI)。如需詳細資訊,請參閱《 第 AWS Command Line Interface 2 版使用者指南》中的 入門 AWS CLI

下列get-caller-identity AWS CLI 命令會顯示用於驗證請求的 IAM 身分相關資訊。發起人是 IAM 使用者。

aws sts get-caller-identity

執行角色名稱在執行角色 ARN /的最後一個 之後。

變更您的執行角色

執行角色是 SageMaker AI 身分 (例如 SageMaker AI 使用者、空間或網域) 擔任的 IAM 角色。變更 IAM 角色會變更擔任該角色之所有身分的許可。

當您變更執行角色時,對應空間的執行角色也會變更。變更的效果可能需要一些時間才能傳播。

  • 當您變更使用者的執行角色時,該使用者建立的私有空間將擔任已變更的執行角色。

  • 當您變更空間的預設執行角色時,網域中的共用空間將擔任已變更的執行角色。

如需執行角色和空格的詳細資訊,請參閱了解網域空間許可和執行角色

您可以使用下列其中一個指示,將身分的執行角色變更為不同的 IAM 角色。

如果您想要修改身分所擔任的角色,請參閱 修改執行角色的許可

變更網域預設執行角色

以下提供變更網域預設執行角色的指示。

變更連接至網域的預設執行角色
  1. 開啟 SageMaker AI 主控台,https://https://console.aws.amazon.com/sagemaker/

  2. 在左側導覽窗格中,選擇管理員組態下的網域

  3. 選擇與您的網域對應的連結。

  4. 選擇網域設定索引標籤。

  5. 一般設定區段中,選擇編輯

  6. 許可區段中,預設執行角色下展開下拉式清單。

  7. 在下拉式清單中,您可以選擇現有角色、輸入自訂 IAM 角色 ARN,或建立新的角色。

    如果您想要建立新的角色,您可以使用角色建立精靈選項選擇建立角色

  8. 在下列步驟中選擇下一步,然後在最後一個步驟選擇提交。

變更空間預設執行角色

以下提供變更空間預設執行角色的指示。變更此執行角色會變更網域中所有共用空間所擔任的角色。

當您建立新空間時,變更 的空間預設執行角色
  1. 開啟 SageMaker AI 主控台,https://https://console.aws.amazon.com/sagemaker/

  2. 在左側導覽窗格中,選擇管理員組態下的網域

  3. 選擇與您的網域對應的連結。

  4. 選擇網域設定索引標籤。

  5. 一般設定區段中,選擇編輯

  6. 許可區段中,在空間預設執行角色下展開下拉式清單。

  7. 在下拉式清單中,您可以選擇現有角色、輸入自訂 IAM 角色 ARN,或建立新的角色。

    如果您想要建立新的角色,您可以使用角色建立精靈選項選擇建立角色

  8. 在下列步驟中選擇下一步,然後在最後一個步驟選擇提交

變更使用者設定檔執行角色

以下提供變更使用者執行角色的指示。變更此執行角色會變更此使用者建立的所有私有空間所擔任的角色。

變更連接至使用者的執行角色
  1. 開啟 SageMaker AI 主控台,https://https://console.aws.amazon.com/sagemaker/

  2. 在左側導覽窗格中,選擇管理員組態下的網域

  3. 選擇與您的網域對應的連結。

  4. 選擇使用者設定檔索引標籤。

  5. 選擇與使用者設定檔名稱對應的連結。

  6. 選擇編輯

  7. 在下拉式清單中,您可以選擇現有角色、輸入自訂 IAM 角色 ARN,或建立新的角色。

    如果您想要建立新的角色,您可以使用角色建立精靈選項選擇建立角色

  8. 在下列步驟中選擇下一步,然後在最後一個步驟選擇提交

修改執行角色的許可

您可以將現有的許可修改為身分的執行角色 (例如 SageMaker AI 使用者、空間或網域)。方法是尋找身分所擔任的適當 IAM 角色,然後修改該 IAM 角色。以下將提供透過 主控台達成此目標的說明。

當您修改執行角色時,對應空間的執行角色也會變更。變更的效果可能不是立即的。

  • 當您修改使用者的執行角色時,該使用者建立的私有空間將擔任修改後的執行角色。

  • 當您修改空間的預設執行角色時,網域中的共用空間將擔任修改後的執行角色。

如需執行角色和空格的詳細資訊,請參閱了解網域空間許可和執行角色

如果您想要變更身分所擔任的角色,請參閱 變更您的執行角色

修改執行角色的許可
  1. 首先取得您要修改的身分名稱。

  2. 若要修改身分所擔任的角色,請參閱AWS Identity and Access Management 《 使用者指南》中的修改角色

    如需新增許可至 IAM 身分的詳細資訊和指示,請參閱AWS Identity and Access Management 《 使用者指南》中的新增或移除身分許可

傳遞角色

在服務之間傳遞角色的動作,是 SageMaker AI 中的常見函數。您可以在服務授權參考中找到 SageMaker AI 的動作、資源和條件索引鍵的詳細資訊。

進行這些 API 呼叫時,您會傳遞角色 (iam:PassRole):CreateAutoMLJobCreateCompilationJobCreateDomainCreateFeatureGroupCreateFlowDefinitonCreateHyperParameterTuningJobCreateImageCreateLabelingJobCreateModelCreateMonitoringScheduleCreateNotebookInstanceCreateProcessingJobCreateTrainingJobCreateUserProfile RenderUiTemplate UpdateImageUpdateNotebookInstance

您可以將下列信任政策連接至 IAM 角色,該角色授予 SageMaker AI 主體擔任該角色的許可,且所有執行角色的信任政策都相同:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

您需要授予給角色的許可會視 API 呼叫而異。以下各節會說明這些許可。

注意

您可以使用 受管許可政策,而不是透過制定許可政策來 AWS管理AmazonSageMakerFullAccess許可。此政策的許可相當廣泛,可讓您在 SageMaker AI 中執行任何動作。如需包含新增許多許可原因資訊的政策清單,請參閱AWS 受管政策:AmazonSageMakerFullAccess。如果想要建立自訂政策及管理許可,只限定執行角色所需的執行動作許可,請參閱下列主題。

重要

如果您遇到任何問題,請參閱對 Amazon SageMaker AI Identity and Access 進行故障診斷

如需 IAM 角色的詳細資訊,請參閱服務授權參考中的 IAM 角色

CreateAutoMLJob 和 CreateAutoMLJobV2 API:執行角色許可

對於您可以在 CreateAutoMLJobCreateAutoMLJobV2 API 請求中傳遞的執行角色,您可以將下列最低許可政策連接至該角色:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "sagemaker:DescribeEndpointConfig", "sagemaker:DescribeModel", "sagemaker:InvokeEndpoint", "sagemaker:ListTags", "sagemaker:DescribeEndpoint", "sagemaker:CreateModel", "sagemaker:CreateEndpointConfig", "sagemaker:CreateEndpoint", "sagemaker:DeleteModel", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteEndpoint", "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

欲指定 AutoML 工作的私有 VPC,則請新增以下許可:

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

如果您的輸入使用伺服器端加密搭配 AWS KMS 受管金鑰 (SSE-KMS) 加密,請新增下列許可:

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

如果您在 AutoML 任務的輸出組態中指定 KMS 金鑰,請新增下列許可:

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

如果您在 AutoML 任務的資源組態中指定磁碟區 KMS 金鑰,請新增下列許可:

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateModel API:執行角色許可

當您在 CreateDomain API 請求KmsKeyId中將 AWS KMS 客戶受管金鑰作為 傳遞時,IAM Identity Center 網域的執行角色和 IAM 網域的使用者/執行角色需要下列許可。許可會在 CreateApp API 呼叫期間強制執行。

如需採用能夠在 CreateDomain API 請求中進行傳遞的執行角色,則可以將以下許可政策連接至角色:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "arn:aws:kms:region:account-id:key/kms-key-id" } ] }

或者,如果在 KMS 政策中指定許可,您可以將下列政策附加至角色:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::account-id:role/ExecutionRole" ] }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*" } ] }

CreateImage 和 UpdateImage API:執行角色許可

如需採用能夠在 CreateImageUpdateImage API 請求中進行傳遞的執行角色,則可以將以下許可政策連接至角色:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" } ] }

CreateNotebookInstance API:執行角色許可

您為了呼叫 CreateNotebookInstance API 而授予給執行角色的許可,將取決於預期的筆記本執行個體功用。如果您計劃使用它來叫用 SageMaker AI APIs,並在呼叫 CreateTrainingJobCreateModel APIs 時傳遞相同的角色,請將下列許可政策連接至該角色:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:*", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability", "ecr:SetRepositoryPolicy", "ecr:CompleteLayerUpload", "ecr:BatchDeleteImage", "ecr:UploadLayerPart", "ecr:DeleteRepositoryPolicy", "ecr:InitiateLayerUpload", "ecr:DeleteRepository", "ecr:PutImage", "ecr:CreateRepository", "cloudwatch:PutMetricData", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents", "s3:CreateBucket", "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "robomaker:CreateSimulationApplication", "robomaker:DescribeSimulationApplication", "robomaker:DeleteSimulationApplication", "robomaker:CreateSimulationJob", "robomaker:DescribeSimulationJob", "robomaker:CancelSimulationJob", "ec2:CreateVpcEndpoint", "ec2:DescribeRouteTables", "elasticfilesystem:DescribeMountTargets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "codecommit:GitPull", "codecommit:GitPush" ], "Resource": [ "arn:aws:codecommit:*:*:*sagemaker*", "arn:aws:codecommit:*:*:*SageMaker*", "arn:aws:codecommit:*:*:*Sagemaker*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } } ] }

若要限縮許可,請藉由限制 "Resource": "*" 將它們限制為特定的 Amazon S3 和 Amazon ECR 資源,如下所示:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:*", "ecr:GetAuthorizationToken", "cloudwatch:PutMetricData", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object1", "arn:aws:s3:::outputbucket/path", "arn:aws:s3:::inputbucket/object2", "arn:aws:s3:::inputbucket/object3" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": [ "arn:aws:ecr:region::repository/my-repo1", "arn:aws:ecr:region::repository/my-repo2", "arn:aws:ecr:region::repository/my-repo3" ] } ] }

如果您計劃存取其他資源 (例如 Amazon DynamoDB 或 Amazon 關聯式資料庫服務),請將相關的許可新增至此政策。

您在上述政策中所限制的政策範圍如下:

  • s3:ListBucket 許可範圍限制為特定儲存貯體,其為您在 InputDataConfig.DataSource.S3DataSource.S3Uri 請求中指定為 CreateTrainingJob 的儲存貯體。

  • s3:GetObject s3:PutObjects3:DeleteObject 許可範圍限制如下:

    • 限制範圍是您在 CreateTrainingJob 請求中指定的下列值:

      InputDataConfig.DataSource.S3DataSource.S3Uri

      OutputDataConfig.S3OutputPath

    • 限制範圍是您在 CreateModel 請求中指定的下列值:

      PrimaryContainer.ModelDataUrl

      SuplementalContainers.ModelDataUrl

  • ecr 許可範圍限制如下:

    • 限制範圍是您在 AlgorithmSpecification.TrainingImage 請求中指定的 CreateTrainingJob 值。

    • 限制範圍是您在 PrimaryContainer.Image 請求中指定的 CreateModel 值:

cloudwatchlogs 動作皆適用於 “*” 資源。如需更多資訊,請參閱 Amazon CloudWatch 使用者指南中的 CloudWatch 資源和操作

CreateHyperParameterTuningJob API:執行角色許可

如需採用能夠在 CreateHyperParameterTuningJob API 請求中進行傳遞的執行角色,則可以將以下許可政策連接至角色:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

您不需要指定 "Resource": "*",僅需將這些許可範圍限制為特定的 Amazon S3、Amazon ECR 和 Amazon CloudWatch Logs 資源即可:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object", "arn:aws:s3:::outputbucket/path" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:region::repository/my-repo" }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/sagemaker/TrainingJobs*" } ] }

如果與超參數調校任務相關聯的訓練容器需要存取其他資料來源 (例如 DynamoDB 或 Amazon RDS 資源),請將相關的許可新增至此政策。

您在上述政策中所限制的政策範圍如下:

  • s3:ListBucket 許可範圍限制為特定儲存貯體,其為您在 InputDataConfig.DataSource.S3DataSource.S3Uri 請求中指定為 CreateTrainingJob 的儲存貯體。

  • s3:GetObject s3:PutObject 許可範圍限制為下列物件,其為您在 CreateHyperParameterTuningJob 請求的輸入和輸出資料組態中所指定的物件:

    InputDataConfig.DataSource.S3DataSource.S3Uri

    OutputDataConfig.S3OutputPath

  • 將 Amazon ECR 許可範圍限制為登錄檔路徑 (AlgorithmSpecification.TrainingImage),其為您在 CreateHyperParameterTuningJob 請求中指定的路徑。

  • 將 Amazon CloudWatch Logs 許可範圍限制為日誌群組,以記錄 SageMaker 訓練任務群組。

cloudwatch 動作皆適用於 “*” 資源。如需詳細資訊,請參閱《Amazon CloudWatch 使用者指南》中的 CloudWatch 資源和操作。 Amazon CloudWatch

如指定超參數調校任務的私有 VPC,請新增下列許可:

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

如果您的輸入使用伺服器端加密搭配 AWS KMS 受管金鑰 (SSE-KMS) 加密,請新增下列許可:

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

如果您在超參數調校任務的輸出組態中指定 KMS 金鑰,請新增下列許可:

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

如果您在超參數調校任務的資源組態中指定磁碟區 KMS 金鑰,請新增下列許可:

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateProcessingJob API:執行角色許可

如需採用能夠在 CreateProcessingJob API 請求中進行傳遞的執行角色,則可以將以下許可政策連接至角色:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

您不需要指定 "Resource": "*",僅需將這些許可範圍限制為特定的 Amazon S3 和 Amazon ECR 資源即可:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object", "arn:aws:s3:::outputbucket/path" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:region::repository/my-repo" } ] }

如果 CreateProcessingJob.AppSpecification.ImageUri 需要存取其他資料來源 (例如 DynamoDB 或 Amazon RDS 資源),請將相關的許可新增至此政策。

您在上述政策中所限制的政策範圍如下:

  • s3:ListBucket 許可範圍限制為特定儲存貯體,其為您在 ProcessingInputs 請求中指定為 CreateProcessingJob 的儲存貯體。

  • s3:GetObject s3:PutObject 許可的範圍限制為將於 ProcessingInputsCreateProcessingJob 請求中下載或上載 ProcessingOutputConfig 的物件。

  • 將 Amazon ECR 許可範圍限制為登錄檔路徑 (AppSpecification.ImageUri),其為您在 CreateProcessingJob 請求中指定的路徑。

cloudwatchlogs 動作皆適用於 “*” 資源。如需更多資訊,請參閱 Amazon CloudWatch 使用者指南中的 CloudWatch 資源和操作

如果您為處理任務指定私有 VPC,請新增下列許可。請勿在政策中使用任何條件或資源篩選器來設定範圍。否則,建立處理任務失敗期間發生驗證檢查。

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

如果您的輸入使用伺服器端加密搭配 AWS KMS 受管金鑰 (SSE-KMS) 加密,請新增下列許可:

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

如果您在處理任務的輸出組態中指定 KMS 金鑰,請新增下列許可:

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

如果您在處理任務的資源組態中指定磁碟區 KMS 金鑰,請新增下列許可:

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateTrainingJob API:執行角色許可

如需採用能夠在 CreateTrainingJob API 請求中進行傳遞的執行角色,則可以將以下許可政策連接至角色:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

您不需要指定 "Resource": "*",僅需將這些許可範圍限制為特定的 Amazon S3 和 Amazon ECR 資源即可:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::inputbucket" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object", "arn:aws:s3:::outputbucket/path" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:region::repository/my-repo" } ] }

如果 CreateTrainingJob.AlgorithSpecifications.TrainingImage 需要存取其他資料來源 (例如 DynamoDB 或 Amazon RDS 資源),請將相關的許可新增至此政策。

您在上述政策中所限制的政策範圍如下:

  • s3:ListBucket 許可範圍限制為特定儲存貯體,其為您在 InputDataConfig.DataSource.S3DataSource.S3Uri 請求中指定為 CreateTrainingJob 的儲存貯體。

  • s3:GetObject s3:PutObject 許可範圍限制為下列物件,其為您在 CreateTrainingJob 請求的輸入和輸出資料組態中所指定的物件:

    InputDataConfig.DataSource.S3DataSource.S3Uri

    OutputDataConfig.S3OutputPath

  • 將 Amazon ECR 許可範圍限制為登錄檔路徑 (AlgorithmSpecification.TrainingImage),其為您在 CreateTrainingJob 請求中指定的路徑。

cloudwatchlogs 動作皆適用於 “*” 資源。如需更多資訊,請參閱 Amazon CloudWatch 使用者指南中的 CloudWatch 資源和作業

欲指定訓練工作的私有 VPC,則請新增以下許可:

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

如果您的輸入使用伺服器端加密搭配 AWS KMS 受管金鑰 (SSE-KMS) 加密,請新增下列許可:

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ] }

如果您在訓練任務的輸出組態中指定 KMS 金鑰,請新增下列許可:

{ "Effect": "Allow", "Action": [ "kms:Encrypt" ] }

如果您在訓練任務的資源組態中指定磁碟區 KMS 金鑰,請新增下列許可:

{ "Effect": "Allow", "Action": [ "kms:CreateGrant" ] }

CreateModel API:執行角色許可

如需採用能夠在 CreateModel API 請求中進行傳遞的執行角色,則可以將以下許可政策連接至角色:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }

您不需要指定 "Resource": "*",僅需將這些許可範圍限制為特定的 Amazon S3 與 Amazon ECR 資源即可:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "ecr:GetAuthorizationToken" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::inputbucket/object" ] }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": [ "arn:aws:ecr:region::repository/my-repo", "arn:aws:ecr:region::repository/my-repo" ] } ] }

如果 CreateModel.PrimaryContainer.Image 需要存取其他資料來源 (例如 Amazon DynamoDB 或 Amazon RDS 資源),請將相關的許可新增至此政策。

您在上述政策中所限制的政策範圍如下:

  • 將 S3 許可範圍限制為物件,其為您在 PrimaryContainer.ModelDataUrl 請求的 CreateModel 中所指定的物件。

  • 將 Amazon ECR 許可範圍限制為特定的登錄檔路徑,其為您在 PrimaryContainer.Image 請求中指定為 SecondaryContainer.ImageCreateModel 的路徑。

cloudwatchlogs 動作皆適用於 “*” 資源。如需更多資訊,請參閱 Amazon CloudWatch 使用者指南中的 CloudWatch 資源和作業

注意

如果您打算使用 SageMaker AI 部署護欄功能在生產環境中部署模型,請確定您的執行角色具有許可,可對自動復原警示執行cloudwatch:DescribeAlarms動作。

欲指定模型的私有 VPC,則請新增以下許可:

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }