本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
如何使用 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
僅授予執行角色許可,可對具有名為SageMaker
、Sagemaker
、sagemaker
或aws-glue
的儲存貯體或物件執行特定 Amazon S3 動作。要了解如何向執行角色新增其他政策以授予其對其他 Amazon S3 儲存貯體和物件的存取權限,請參閱將其他 Amazon S3 許可新增至 SageMaker AI 執行角色。
注意
您可以在建立 SageMaker AI 網域或筆記本執行個體時直接建立執行角色。
-
如需有關如何建立 SageMaker AI 網域的資訊,請參閱 Amazon SageMaker AI 設定指南。
-
如需如何建立筆記本執行個體的資訊,請參閱建立教學課程的 Amazon SageMaker 筆記本執行個體。
從 SageMaker AI 主控台建立新的執行角色
開啟位於 https://console.aws.amazon.com/iam/
的 IAM 主控台。 -
選擇角色,然後選擇建立角色。
-
將AWS 服務保留為受信任實體類型,然後使用向下箭頭在其他服務 AWS 的使用案例中尋找 SageMaker AI。
-
選擇 SageMaker AI – 執行,然後選擇下一步。
-
IAM 受管政策
AmazonSageMakerFullAccess
會自動連線至角色。若要查看此政策中包含的許可,請選擇政策名稱旁邊的加號 (+)。選擇下一步。 -
輸入角色名稱和描述。
-
(選用) 將其他許可和標籤新增至角色。
-
選擇建立角色。
-
在 IAM 主控台的角色區段中,找到您剛建立的角色。如有需要,請使用文字方塊用來搜尋角色名稱的角色。
-
在角色摘要頁面上,記下 ARN。
若要從 AWS CLI建立新的執行角色
使用 建立執行角色之前 AWS CLI,請務必遵循 中的指示進行更新和設定(選用) 設定 AWS CLI,然後繼續執行 中的指示使用 自訂設定 AWS CLI。
建立執行角色後,您可以將其與 SageMaker AI 網域、使用者設定檔或 Jupyter 筆記本執行個體建立關聯。
您也可以將執行角色的 ARN 傳遞給 API 呼叫。例如,使用 Amazon SageMaker Python SDK
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 受管政策附加到執行角色,則該角色有權對具有名為AmazonSageMakerFullAccess
、SageMaker
、Sagemaker
、sagemaker
或aws-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 主控台
取得網域執行角色
以下提供尋找網域執行角色的指示。
尋找連接至您網域的執行角色
-
開啟 SageMaker AI 主控台,https://https://console.aws.amazon.com/sagemaker/
-
在左側導覽窗格中,選擇管理員組態下的網域。
-
選擇與您的網域對應的連結。
-
選擇網域設定索引標籤。
-
在一般設定區段中,執行角色 ARN 會列在執行角色下。
執行角色名稱在執行角色 ARN
/
的最後一個 之後。
取得空間執行角色
以下提供尋找空間執行角色的指示。
尋找連接至您空間的執行角色
-
開啟 SageMaker AI 主控台,https://https://console.aws.amazon.com/sagemaker/
-
在左側導覽窗格中,選擇管理員組態下的網域。
-
選擇與您的網域對應的連結。
-
選擇空間管理索引標籤。
-
在詳細資訊區段中,執行角色 ARN 會列在執行角色下。
執行角色名稱在執行角色 ARN
/
的最後一個 之後。
注意
以下程式碼旨在 SageMaker AI 環境中執行,就像 Amazon SageMaker Studio 中的任何 IDEs。如果您在 SageMaker AI 環境get_execution_role
之外執行 ,您將會收到錯誤。
下列 get_execution_role
from sagemaker import get_execution_role role = get_execution_role() print(role)
執行角色名稱在執行角色 ARN /
的最後一個 之後。
取得使用者執行角色
以下提供尋找使用者執行角色的指示。
尋找連接到使用者的執行角色
-
開啟 SageMaker AI 主控台,https://https://console.aws.amazon.com/sagemaker/
-
在左側導覽窗格中,選擇管理員組態下的網域。
-
選擇與您的網域對應的連結。
-
選擇使用者設定檔索引標籤。
-
選擇與您的使用者對應的連結。
-
在詳細資訊區段中,執行角色 ARN 會列在執行角色下。
執行角色名稱在執行角色 ARN
/
的最後一個 之後。
注意
若要使用下列範例,您必須安裝並設定 AWS Command Line Interface (AWS CLI)。如需詳細資訊,請參閱《 第 AWS Command Line Interface 2 版使用者指南》中的 入門 AWS CLI。
下列get-caller-identity
aws sts get-caller-identity
執行角色名稱在執行角色 ARN /
的最後一個 之後。
變更您的執行角色
執行角色是 SageMaker AI 身分 (例如 SageMaker AI 使用者、空間或網域) 擔任的 IAM 角色。變更 IAM 角色會變更擔任該角色之所有身分的許可。
當您變更執行角色時,對應空間的執行角色也會變更。變更的效果可能需要一些時間才能傳播。
-
當您變更使用者的執行角色時,該使用者建立的私有空間將擔任已變更的執行角色。
-
當您變更空間的預設執行角色時,網域中的共用空間將擔任已變更的執行角色。
如需執行角色和空格的詳細資訊,請參閱了解網域空間許可和執行角色。
您可以使用下列其中一個指示,將身分的執行角色變更為不同的 IAM 角色。
如果您想要修改身分所擔任的角色,請參閱 修改執行角色的許可。
變更網域預設執行角色
以下提供變更網域預設執行角色的指示。
變更連接至網域的預設執行角色
-
開啟 SageMaker AI 主控台,https://https://console.aws.amazon.com/sagemaker/
-
在左側導覽窗格中,選擇管理員組態下的網域。
-
選擇與您的網域對應的連結。
-
選擇網域設定索引標籤。
-
在一般設定區段中,選擇編輯。
-
在許可區段中,預設執行角色下展開下拉式清單。
-
在下拉式清單中,您可以選擇現有角色、輸入自訂 IAM 角色 ARN,或建立新的角色。
如果您想要建立新的角色,您可以使用角色建立精靈選項選擇建立角色。
-
在下列步驟中選擇下一步,然後在最後一個步驟選擇提交。
變更空間預設執行角色
以下提供變更空間預設執行角色的指示。變更此執行角色會變更網域中所有共用空間所擔任的角色。
當您建立新空間時,變更 的空間預設執行角色
-
開啟 SageMaker AI 主控台,https://https://console.aws.amazon.com/sagemaker/
-
在左側導覽窗格中,選擇管理員組態下的網域。
-
選擇與您的網域對應的連結。
-
選擇網域設定索引標籤。
-
在一般設定區段中,選擇編輯。
-
在許可區段中,在空間預設執行角色下展開下拉式清單。
-
在下拉式清單中,您可以選擇現有角色、輸入自訂 IAM 角色 ARN,或建立新的角色。
如果您想要建立新的角色,您可以使用角色建立精靈選項選擇建立角色。
-
在下列步驟中選擇下一步,然後在最後一個步驟選擇提交。
變更使用者設定檔執行角色
以下提供變更使用者執行角色的指示。變更此執行角色會變更此使用者建立的所有私有空間所擔任的角色。
變更連接至使用者的執行角色
-
開啟 SageMaker AI 主控台,https://https://console.aws.amazon.com/sagemaker/
-
在左側導覽窗格中,選擇管理員組態下的網域。
-
選擇與您的網域對應的連結。
-
選擇使用者設定檔索引標籤。
-
選擇與使用者設定檔名稱對應的連結。
-
選擇編輯。
-
在下拉式清單中,您可以選擇現有角色、輸入自訂 IAM 角色 ARN,或建立新的角色。
如果您想要建立新的角色,您可以使用角色建立精靈選項選擇建立角色。
-
在下列步驟中選擇下一步,然後在最後一個步驟選擇提交。
修改執行角色的許可
您可以將現有的許可修改為身分的執行角色 (例如 SageMaker AI 使用者、空間或網域)。方法是尋找身分所擔任的適當 IAM 角色,然後修改該 IAM 角色。以下將提供透過 主控台達成此目標的說明。
當您修改執行角色時,對應空間的執行角色也會變更。變更的效果可能不是立即的。
-
當您修改使用者的執行角色時,該使用者建立的私有空間將擔任修改後的執行角色。
-
當您修改空間的預設執行角色時,網域中的共用空間將擔任修改後的執行角色。
如需執行角色和空格的詳細資訊,請參閱了解網域空間許可和執行角色。
如果您想要變更身分所擔任的角色,請參閱 變更您的執行角色。
傳遞角色
在服務之間傳遞角色的動作,是 SageMaker AI 中的常見函數。您可以在服務授權參考中找到 SageMaker AI 的動作、資源和條件索引鍵的詳細資訊。
進行這些 API 呼叫時,您會傳遞角色 (iam:PassRole
):CreateAutoMLJob
、CreateCompilationJob
、CreateDomain
、CreateFeatureGroup
CreateFlowDefiniton
、CreateHyperParameterTuningJob
、CreateImage
、CreateLabelingJob
、CreateModel
CreateMonitoringSchedule
、CreateNotebookInstance
、CreateProcessingJob
、CreateTrainingJob
、 CreateUserProfile
RenderUiTemplate
UpdateImage
和 UpdateNotebookInstance
。
您可以將下列信任政策連接至 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:執行角色許可
對於您可以在 CreateAutoMLJob
或 CreateAutoMLJobV2
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:執行角色許可
如需採用能夠在 CreateImage
或 UpdateImage
API 請求中進行傳遞的執行角色,則可以將以下許可政策連接至角色:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" } ] }
CreateNotebookInstance API:執行角色許可
您為了呼叫 CreateNotebookInstance
API 而授予給執行角色的許可,將取決於預期的筆記本執行個體功用。如果您計劃使用它來叫用 SageMaker AI APIs,並在呼叫 CreateTrainingJob
和 CreateModel
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:PutObject
與s3:DeleteObject
許可範圍限制如下:-
限制範圍是您在
CreateTrainingJob
請求中指定的下列值:InputDataConfig.DataSource.S3DataSource.S3Uri
OutputDataConfig.S3OutputPath
-
限制範圍是您在
CreateModel
請求中指定的下列值:PrimaryContainer.ModelDataUrl
SuplementalContainers.ModelDataUrl
-
-
將
ecr
許可範圍限制如下:-
限制範圍是您在
AlgorithmSpecification.TrainingImage
請求中指定的CreateTrainingJob
值。 -
限制範圍是您在
PrimaryContainer.Image
請求中指定的CreateModel
值:
-
cloudwatch
與 logs
動作皆適用於 “*” 資源。如需更多資訊,請參閱 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
許可的範圍限制為將於ProcessingInputs
和CreateProcessingJob
請求中下載或上載ProcessingOutputConfig
的物件。 -
將 Amazon ECR 許可範圍限制為登錄檔路徑 (
AppSpecification.ImageUri
),其為您在CreateProcessingJob
請求中指定的路徑。
cloudwatch
與 logs
動作皆適用於 “*” 資源。如需更多資訊,請參閱 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
請求中指定的路徑。
cloudwatch
與 logs
動作皆適用於 “*” 資源。如需更多資訊,請參閱 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.Image
與CreateModel
的路徑。
cloudwatch
與 logs
動作皆適用於 “*” 資源。如需更多資訊,請參閱 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" ] }