SageMaker 실행 역할을 사용하는 방법 - Amazon SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

SageMaker 실행 역할을 사용하는 방법

Amazon은 다른 AWS 서비스를 사용하여 사용자를 대신하여 작업을 SageMaker 수행합니다. 이러한 서비스와 해당 서비스에서 수행하는 리소스를 사용할 수 있는 SageMaker 권한을 부여해야 합니다. AWS Identity and Access Management (IAM) 실행 역할을 사용하여 이러한 권한을 부여합니다 SageMaker. IAM 역할에 대한 자세한 내용은 IAM 역할 섹션을 참조하세요.

실행 역할을 생성 및 사용하기 위해 다음 절차를 사용할 수 있습니다.

실행 역할 생성

다음 절차에 따라 IAM 관리형 정책 가 AmazonSageMakerFullAccess연결된 실행 역할을 생성합니다. 사용 사례에 더 세분화된 권한이 필요한 경우 이 페이지의 다른 섹션을 사용하여 비즈니스 요구 사항에 맞는 실행 역할을 생성하세요. 콘솔 또는 를 사용하여 SageMaker 실행 역할을 생성할 수 있습니다 AWS CLI.

중요

다음 절차에서 사용되는 IAM 관리형 정책인 는 , AmazonSageMakerFullAccess, Sagemaker sagemaker또는 aws-glue 이름이 SageMaker인 버킷 또는 객체에 대해 특정 Amazon S3 작업을 수행할 수 있는 실행 역할 권한만 부여합니다. 실행 역할에 정책을 추가하여 다른 Amazon S3 버킷 및 객체에 대한 액세스 권한을 부여하는 방법을 알아보려면 SageMaker 실행 역할에 Amazon S3 권한 추가섹션을 참조하세요.

참고

SageMaker 도메인 또는 노트북 인스턴스를 생성할 때 직접 실행 역할을 생성할 수 있습니다.

콘솔에서 SageMaker 새 실행 역할을 생성하려면

  1. 에서 IAM 콘솔을 엽니다https://console.aws.amazon.com/iam/.

  2. 역할을 선택한 다음 역할 생성을 선택합니다.

  3. AWS 서비스를 신뢰할 수 있는 엔터티 유형으로 유지한 다음 아래쪽 화살표를 사용하여 다른 AWS 서비스의 사용 사례 SageMaker에서 를 찾습니다.

  4. SageMaker - 실행을 선택한 다음 다음을 선택합니다.

  5. IAM 관리형 정책인 AmazonSageMakerFullAccess는 역할에 자동으로 연결됩니다. 이 정책에 포함된 권한을 보려면 정책 이름 옆에 있는 더하기(+) 기호를 선택합니다. Next(다음)를 선택합니다.

  6. 역할 이름설명을 입력합니다.

  7. (선택 사항) 추가 권한 및 태그를 역할에 추가합니다.

  8. 역할 생성을 선택합니다.

  9. IAM 콘솔의 역할 섹션에서 방금 생성한 역할을 찾습니다. 필요한 경우 텍스트 상자에서 역할 이름을 사용하여 역할을 검색하세요.

  10. 역할 요약 페이지에서 를 기록해 둡니다ARN.

AWS CLI에서 새 실행 역할을 생성하려면

를 사용하여 실행 역할을 생성하기 전에 의 지침에 따라 실행 역할을 AWS CLI업데이트하고 구성(선택 사항) 구성 AWS CLI한 다음 의 지침을 계속합니다를 사용한 사용자 지정 설정 AWS CLI.

실행 역할을 생성한 후에는 이를 SageMaker 도메인, 사용자 프로필 또는 Jupyter 노트북 인스턴스와 연결할 수 있습니다.

  • 실행 역할을 기존 SageMaker 도메인과 연결하는 방법에 대한 자세한 내용은 섹션을 참조하세요도메인 설정 편집.

  • 실행 역할을 기존 사용자 프로필과 연결하는 방법에 대해 알아보려면 사용자 프로필 추가섹션을 참조하세요.

  • 실행 역할을 기존 노트북 인스턴스와 연결하는 방법에 대해 알아보려면 노트북 인스턴스 업데이트섹션을 참조하세요.

실행 역할ARN의 를 API 호출에 전달할 수도 있습니다. 예를 들어 Amazon SageMaker Python SDK을 사용하면 실행 역할ARN의 를 추정기에 전달할 수 있습니다. 다음 코드 샘플에서는 XGBoost 알고리즘 컨테이너를 사용하여 추정기를 생성하고 실행 역할ARN의 를 파라미터로 전달합니다. 의 전체 예는 를 사용한 Customer Churn PredictionXGBoost을 GitHub참조하세요.

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, ) ...

SageMaker 실행 역할에 Amazon S3 권한 추가

입력 데이터와 같은 Amazon S3의 리소스와 함께 SageMaker 기능을 사용하는 경우 요청에 지정한 실행 역할(예: CreateTrainingJob)이 이러한 리소스에 액세스하는 데 사용됩니다.

IAM 관리형 정책인 를 AmazonSageMakerFullAccess실행 역할에 연결하면 해당 역할에 , SageMaker, Sagemaker sagemaker또는 이름이 인 버킷 또는 객체에서 특정 Amazon S3 작업을 수행할 수 있는 권한이 부여aws-glue됩니다. 또한 모든 Amazon S3 리소스에서 다음 작업을 수행할 권한이 있습니다.

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

Amazon S3에 있는 하나 이상의 특정 버킷에 액세스할 수 있는 권한을 실행 역할에 부여하려면 다음과 유사한 정책을 역할에 연결할 수 있습니다. 이 정책은 이 액세스를 AmazonSageMakerFullAccess 허용하지만 버킷 amzn-s3-demo-bucket1 및 amzn-s3-demo-bucket2에 대한 액세스를 제한하는 모든 작업을 수행할 수 있는 IAM 역할 권한을 부여합니다. 해당 SageMaker 기능에 필요한 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 콘솔 , Amazon SageMaker Python 또는 SDKAWS CLI를 사용하여 SageMaker 도메인, 공백 또는 사용자 프로필에 연결된 실행 역할의 ARN 및 이름을 검색할 수 있습니다.

도메인 실행 역할 가져오기

다음은 도메인의 실행 역할을 찾는 방법에 대한 지침을 제공합니다.

도메인에 연결된 실행 역할 찾기
  1. SageMaker 콘솔을 열고 https://console.aws.amazon.com/sagemaker/

  2. 왼쪽 탐색 창에서 관리 구성에서 도메인을 선택합니다.

  3. 도메인에 해당하는 링크를 선택합니다.

  4. 도메인 설정 탭을 선택합니다.

  5. 일반 설정 섹션에서 실행 역할은 실행 역할 아래에 나열ARN됩니다.

    실행 역할 이름은 실행 역할 의 마지막 뒤에 있습니다/ARN.

공간 실행 역할 가져오기

다음은 공간의 실행 역할을 찾는 방법에 대한 지침을 제공합니다.

공간에 연결된 실행 역할 찾기
  1. SageMaker 콘솔을 열고 https://console.aws.amazon.com/sagemaker/

  2. 왼쪽 탐색 창에서 관리 구성에서 도메인을 선택합니다.

  3. 도메인에 해당하는 링크를 선택합니다.

  4. 공간 관리 탭을 선택합니다.

  5. 세부 정보 섹션에서 실행 역할은 실행 역할 아래에 나열ARN됩니다.

    실행 역할 이름은 실행 역할 의 마지막 뒤에 있습니다/ARN.

참고

다음 코드는 IDEs Amazon SageMaker Studio의 모든 SageMaker 와 같은 환경에서 실행되어야 합니다. 환경 get_execution_role 외부에서 SageMaker 를 실행하면 오류가 발생합니다.

다음 get_execution_role Amazon SageMaker Python SDK 명령은 공간에 연결된 실행 역할ARN의 를 검색합니다.

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

실행 역할 이름은 실행 역할 의 마지막 뒤에 있습니다/ARN.

사용자 실행 역할 가져오기

다음은 사용자의 실행 역할을 찾는 방법에 대한 지침을 제공합니다.

사용자에게 연결된 실행 역할 찾기
  1. SageMaker 콘솔을 열고 https://console.aws.amazon.com/sagemaker/

  2. 왼쪽 탐색 창에서 관리 구성에서 도메인을 선택합니다.

  3. 도메인에 해당하는 링크를 선택합니다.

  4. 사용자 프로필 탭을 선택합니다.

  5. 사용자에 해당하는 링크를 선택합니다.

  6. 세부 정보 섹션에서 실행 역할은 실행 역할 아래에 나열ARN됩니다.

    실행 역할 이름은 실행 역할 의 마지막 뒤에 있습니다/ARN.

참고

다음 예제를 사용하려면 AWS Command Line Interface (AWS CLI)를 설치하고 구성해야 합니다. 자세한 내용은 버전 2 사용 설명서의 시작하기 AWS CLI를 참조하세요. AWS Command Line Interface

다음 get-caller-identity AWS CLI 명령은 요청을 인증하는 데 사용되는 IAM 자격 증명에 대한 정보를 표시합니다. 발신자는 IAM 사용자입니다.

aws sts get-caller-identity

실행 역할 이름은 실행 역할 의 마지막 뒤에 있습니다/ARN.

실행 역할 변경

실행 역할은 SageMaker 자격 증명(예: SageMaker 사용자, 공백 또는 도메인)이 수임하는 IAM 역할입니다. IAM 역할을 변경하면 해당 역할을 수임하는 모든 자격 증명에 대한 권한이 변경됩니다.

실행 역할을 변경하면 해당 공간의 실행 역할도 변경됩니다. 변경의 영향을 전파하는 데 다소 시간이 걸릴 수 있습니다.

  • 사용자의 실행 역할 을 변경하면 해당 사용자가 생성한 프라이빗 스페이스가 변경된 실행 역할을 수임합니다.

  • 스페이스의 기본 실행 역할 을 변경하면 도메인의 공유 스페이스가 변경된 실행 역할을 수임합니다.

실행 역할 및 공백에 대한 자세한 내용은 섹션을 참조하세요도메인 공간 권한 및 실행 역할 이해.

다음 지침 중 하나를 사용하여 자격 증명의 실행 역할을 다른 IAM 역할로 변경할 수 있습니다.

대신 자격 증명이 수임하는 역할을 수정하려면 섹션을 참조하세요실행 역할에 대한 권한 수정.

도메인 기본 실행 역할 변경

다음은 도메인의 기본 실행 역할 변경에 대한 지침을 제공합니다.

도메인에 연결된 기본 실행 역할 변경
  1. SageMaker 콘솔을 열고 https://console.aws.amazon.com/sagemaker/

  2. 왼쪽 탐색 창에서 관리 구성에서 도메인을 선택합니다.

  3. 도메인에 해당하는 링크를 선택합니다.

  4. 도메인 설정 탭을 선택합니다.

  5. 일반 설정 섹션에서 편집을 선택합니다.

  6. 권한 섹션의 기본 실행 역할에서 드롭다운 목록을 확장합니다.

  7. 드롭다운 목록에서 기존 역할을 선택하거나 사용자 지정 IAM 역할을 입력ARN하거나 새 역할을 생성할 수 있습니다.

    새 역할을 생성하려면 역할 생성 마법사 옵션을 사용하여 역할 생성을 선택할 수 있습니다.

  8. 다음 단계에서 다음을 선택하고 마지막 단계에서 제출을 선택합니다.

공간 기본 실행 역할 변경

다음은 공간의 기본 실행 역할 변경에 대한 지침을 제공합니다. 이 실행 역할을 변경하면 도메인의 모든 공유 공백이 맡는 역할이 변경됩니다.

새 공간을 생성할 때 의 공간 기본 실행 역할 변경
  1. SageMaker 콘솔을 열고 https://console.aws.amazon.com/sagemaker/

  2. 왼쪽 탐색 창에서 관리 구성에서 도메인을 선택합니다.

  3. 도메인에 해당하는 링크를 선택합니다.

  4. 도메인 설정 탭을 선택합니다.

  5. 일반 설정 섹션에서 편집을 선택합니다.

  6. 권한 섹션의 공간 기본 실행 역할에서 드롭다운 목록을 확장합니다.

  7. 드롭다운 목록에서 기존 역할을 선택하거나 사용자 지정 IAM 역할을 입력ARN하거나 새 역할을 생성할 수 있습니다.

    새 역할을 생성하려면 역할 생성 마법사 옵션을 사용하여 역할 생성을 선택할 수 있습니다.

  8. 다음 단계에서 다음을 선택하고 마지막 단계에서 제출을 선택합니다.

사용자 프로필 실행 역할 변경

다음은 사용자의 실행 역할 변경에 대한 지침을 제공합니다. 이 실행 역할을 변경하면 이 사용자가 생성한 모든 프라이빗 스페이스에서 맡는 역할이 변경됩니다.

사용자에게 연결된 실행 역할 변경
  1. SageMaker 콘솔을 열고 https://console.aws.amazon.com/sagemaker/

  2. 왼쪽 탐색 창에서 관리 구성에서 도메인을 선택합니다.

  3. 도메인에 해당하는 링크를 선택합니다.

  4. 사용자 프로필 탭을 선택합니다.

  5. 사용자 프로필 이름에 해당하는 링크를 선택합니다.

  6. 편집을 선택합니다.

  7. 드롭다운 목록에서 기존 역할을 선택하거나 사용자 지정 IAM 역할을 입력ARN하거나 새 역할을 생성할 수 있습니다.

    새 역할을 생성하려면 역할 생성 마법사 옵션을 사용하여 역할 생성을 선택할 수 있습니다.

  8. 다음 단계에서 다음을 선택하고 마지막 단계에서 제출을 선택합니다.

실행 역할에 대한 권한 수정

자격 증명의 실행 역할(예: SageMaker 사용자, 공백 또는 도메인)에 대한 기존 권한을 수정할 수 있습니다. 이는 자격 증명이 수임하는 적절한 IAM 역할을 찾은 다음 해당 IAM 역할을 수정하여 수행됩니다. 다음은 콘솔을 통해 이를 달성하는 방법에 대한 지침을 제공합니다.

실행 역할을 수정하면 해당 공간의 실행 역할도 변경됩니다. 변경의 영향은 즉각적이지 않을 수 있습니다.

  • 사용자의 실행 역할 을 수정하면 해당 사용자가 생성한 프라이빗 스페이스가 수정된 실행 역할을 수임합니다.

  • 스페이스의 기본 실행 역할 을 수정하면 도메인의 공유 스페이스가 수정된 실행 역할을 수임합니다.

실행 역할 및 공백에 대한 자세한 내용은 섹션을 참조하세요도메인 공간 권한 및 실행 역할 이해.

대신 자격 증명이 수임하는 역할을 변경하려면 섹션을 참조하세요실행 역할 변경.

실행 역할에 대한 권한을 수정하려면
  1. 먼저 수정하려는 자격 증명의 이름을 가져옵니다.

  2. 자격 증명이 수임하는 역할을 수정하려면 AWS Identity and Access Management 사용 설명서역할 수정을 참조하세요.

    IAM 자격 증명에 권한을 추가하는 방법에 대한 자세한 내용과 지침은 AWS Identity and Access Management 사용 설명서자격 증명 권한 추가 또는 제거를 참조하세요.

역할 전달

서비스 간에 역할을 전달하는 등의 작업은 내에서 일반적인 함수입니다 SageMaker. 에 대한 작업, 리소스 및 조건 키 SageMaker에 대한 자세한 내용은 서비스 승인 참조에서 확인할 수 있습니다.

CreateAutoMLJob, , CreateCompilationJob, CreateDomain, CreateFeatureGroup, , , , , , CreateFlowDefinitonCreateHyperParameterTuningJobCreateImageCreateLabelingJob, CreateModelCreateMonitoringSchedule, CreateNotebookInstance, CreateProcessingJob, , CreateTrainingJob, CreateUserProfile, , RenderUiTemplate, UpdateImage, 및 와 같은 API 호출 시 역할(iam:PassRole)을 전달합니다UpdateNotebookInstance.

IAM 역할을 수임할 수 있는 SageMaker 보안 주체 권한을 부여하는 역할에 다음 신뢰 정책을 연결하며, 이는 모든 실행 역할에 대해 동일합니다.

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

역할에 부여해야 하는 권한은 호출API하는 에 따라 달라집니다. 다음 섹션에서는 이러한 권한을 설명합니다.

참고

권한 정책을 만들어 권한을 관리하는 대신 관리 AWS형 AmazonSageMakerFullAccess 권한 정책을 사용할 수 있습니다. 이 정책의 권한은 상당히 광범위하여 에서 수행할 수 있는 모든 작업을 허용합니다 SageMaker. 다양한 권한이 추가된 이유를 포함하여 정책 목록에 대한 내용은 AWS 관리형 정책: AmazonSageMakerFullAccess섹션을 참조하세요. 사용자 지정 정책을 생성하고 권한 관리하여 실행 역할에서 수행해야 하는 작업으로만 권한을 제한하려면 다음 주제를 참조하세요.

중요

문제가 발생하는 경우 Amazon SageMaker 자격 증명 및 액세스 문제 해결섹션을 참조하세요.

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–관리형 키(-SSEKMS)를 사용하여 서버 측 암호화를 사용하여 입력을 암호화하는 경우 다음 권한을 추가합니다.

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

AutoML 작업의 출력 구성에서 KMS 키를 지정하는 경우 다음 권한을 추가합니다.

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

AutoML 작업의 리소스 구성에서 볼륨 KMS 키를 지정하는 경우 다음 권한을 추가합니다.

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

CreateDomain API: 실행 역할 권한

AWS KMS Identity IAM Center가 있는 도메인의 실행 역할과 IAM 도메인의 사용자/실행 역할에는 고객 관리형 키를 CreateDomain API 요청KmsKeyId의 로 전달할 때 다음 권한이 필요합니다. 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 APIs: 실행 역할 권한

CreateImage 또는 UpdateImage API 요청에서 전달할 수 있는 실행 역할의 경우 역할에 다음 권한 정책을 연결할 수 있습니다.

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

CreateNotebookInstance API: 실행 역할 권한

를 호출하기 위해 실행 역할에 부여하는 권한은 노트북 인스턴스로 수행할 계획에 CreateNotebookInstance API 따라 달라집니다. CreateTrainingJobCreateModel 를 호출할 때 동일한 역할을 호출 SageMaker APIs하고 전달하는 데 사용할 계획인 경우 역할에 다음 권한 정책을 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": "*" } ] }

를 지정하는 대신 특정 Amazon S3"Resource": "*", 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

  • CreateHyperParameterTuningJob 요청에 지정한 레지스트리 경로(AlgorithmSpecification.TrainingImage)에 대한 Amazon ECR 권한 범위를 지정합니다.

  • Amazon CloudWatch Logs 권한을 범위 지정하여 SageMaker 훈련 작업 그룹을 기록합니다.

cloudwatch 작업은 "*" 리소스에 적용됩니다. 자세한 내용은 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–관리형 키(-SSEKMS)를 사용하여 서버 측 암호화를 사용하여 입력을 암호화하는 경우 다음 권한을 추가합니다.

{ "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": "*" } ] }

를 지정하는 대신 특정 Amazon S3 및 Amazon ECR 리소스에 대한 이러한 권한의 범위를 "Resource": "*"지정할 수 있습니다.

{ "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" } ] }

DynamoDB 또는 Amazon RDS 리소스와 같은 다른 데이터 소스에 액세스CreateProcessingJob.AppSpecification.ImageUri해야 하는 경우 이 정책에 관련 권한을 추가합니다.

앞선 정책에서 정책의 범위를 다음과 같이 지정합니다.

  • s3:ListBucket 권한의 범위를 ProcessingInputs요청의 CreateProcessingJob로 지정한 특정 버킷으로 지정합니다.

  • CreateProcessingJob 요청의 ProcessingInputsProcessingOutputConfig에서 다운로드되거나 업로드될 객체에 대한 s3:GetObject s3:PutObject권한의 범위를 지정합니다.

  • CreateProcessingJob 요청에 지정한 레지스트리 경로(AppSpecification.ImageUri)에 대한 Amazon ECR 권한 범위를 지정합니다.

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–관리형 키(-SSEKMS)를 사용하여 서버 측 암호화를 사용하여 입력을 암호화하는 경우 다음 권한을 추가합니다.

{ "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": "*" } ] }

를 지정하는 대신 특정 Amazon S3 및 Amazon ECR 리소스에 대한 이러한 권한의 범위를 "Resource": "*"지정할 수 있습니다.

{ "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" } ] }

DynamoDB 또는 Amazon RDS 리소스와 같은 다른 데이터 소스에 액세스CreateTrainingJob.AlgorithSpecifications.TrainingImage해야 하는 경우 이 정책에 관련 권한을 추가합니다.

앞선 정책에서 정책의 범위를 다음과 같이 지정합니다.

  • s3:ListBucket 권한의 범위를 InputDataConfig.DataSource.S3DataSource.S3Uri요청의 CreateTrainingJob로 지정한 특정 버킷으로 지정합니다.

  • s3:GetObject s3:PutObject권한 범위를 CreateTrainingJob요청의 입력 및 출력 데이터 구성에서 지정한 다음 객체로 지정합니다.

    InputDataConfig.DataSource.S3DataSource.S3Uri

    OutputDataConfig.S3OutputPath

  • CreateTrainingJob 요청에 지정한 레지스트리 경로(AlgorithmSpecification.TrainingImage)에 대한 Amazon ECR 권한 범위를 지정합니다.

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–관리형 키(-SSEKMS)를 사용하여 서버 측 암호화를 사용하여 입력을 암호화하는 경우 다음 권한을 추가합니다.

{ "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": "*" } ] }

를 지정하는 대신 특정 Amazon S3 및 Amazon ECR 리소스에 대해 이러한 권한의 범위를 "Resource": "*"지정할 수 있습니다.

{ "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" ] } ] }

Amazon DynamoDB 또는 Amazon RDS 리소스와 같은 다른 데이터 소스에 액세스CreateModel.PrimaryContainer.Image해야 하는 경우 이 정책에 관련 권한을 추가합니다.

앞선 정책에서 정책의 범위를 다음과 같이 지정합니다.

  • S3 권한 범위를 PrimaryContainer.ModelDataUrl요청의 CreateModel에서 지정한 객체로 지정합니다.

  • CreateModel 요청에서 PrimaryContainer.Image 및 로 지정한 특정 레지스트리 경로SecondaryContainer.Image에 대한 Amazon ECR 권한 범위를 지정합니다.

cloudwatchlogs작업은 "*" 리소스에 적용됩니다. 자세한 내용은 Amazon CloudWatch 사용 설명서의 CloudWatch 리소스 및 작업을 참조하세요.

참고

프로덕션에서 모델 SageMaker 배포에 배포 가드레일 기능을 사용하려면 실행 역할에 자동 롤백 경보에 대한 cloudwatch:DescribeAlarms 작업을 수행할 수 있는 권한이 있는지 확인합니다.

모델에 VPC 프라이빗을 지정하는 경우 다음 권한을 추가합니다.

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