SageMaker 역할 - 아마존 SageMaker

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

SageMaker 역할

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

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

실행 역할 생성

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

중요

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

참고

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

SageMaker콘솔에서 새 실행 역할을 만들려면

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

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

  3. AWS서비스를 신뢰할 수 있는 개체 유형으로 유지하고 아래쪽 화살표를 사용하여 다른 AWS 서비스의 사용 SageMaker사례에서 검색하십시오.

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

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

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

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

  8. Create role(역할 생성)을 선택합니다.

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

  10. 역할 요약 페이지에서 ARN의 값을 메모해 둡니다.

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

AWS CLI를 사용하여 실행 역할을 생성하기 전에 AWS CLI 사전 조건의 지침에 따라 실행 역할을 업데이트하고 구성한 다음 AWS CLI에서 온보딩 의 지침을 계속 따르십시오.

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

실행 역할의 ARN을 API 호출에 전달할 수도 있습니다. 예를 들어 Amazon SageMaker Python SDK를 사용하여 실행 역할의 ARN을 평가자에게 전달할 수 있습니다. 다음 코드 샘플에서는 XGBoost 알고리즘 컨테이너를 사용하여 예측기를 만들고 실행 역할의 ARN을 파라미터로 전달합니다. 전체 예제를 보려면 XGBoost를 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또는 aws-glue가 있는 버킷 또는 객체에 대해 특정 Amazon S3 작업을 수행할 권한을 갖습니다. 또한 모든 Amazon S3 리소스에서 다음 작업을 수행할 권한이 있습니다.

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

Amazon S3에 있는 하나 이상의 특정 버킷에 액세스할 수 있는 권한을 실행 역할에 부여하려면 다음과 유사한 정책을 역할에 연결할 수 있습니다. 이 정책은 AmazonSageMakerFullAccess가 허용하는 모든 작업을 수행하도록 IAM 역할 권한을 부여하고 DOC-EXAMPLE-BUCKET1DOC-EXAMPLE-BUCKET2 버킷에 대한 이러한 액세스를 제한합니다. 해당 SageMaker 기능에 필요한 Amazon S3 권한에 대해 자세히 알아보려면 사용 중인 특정 기능의 보안 설명서를 참조하십시오.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*", "arn:aws:s3:::DOC-EXAMPLE-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:::DOC-EXAMPLE-BUCKET1", "arn:aws:s3:::DOC-EXAMPLE-BUCKET2" ] } ] }

실행 역할 가져오기

SageMaker 콘솔 또는 를 사용하여 SageMaker 도메인, 사용자 프로필 또는 노트북 인스턴스에 연결된 실행 역할의 ARN을 검색할 수 있습니다. AWS CLI

  • SageMaker 도메인에 연결된 IAM 실행 역할의 ARN을 찾으려면 을 참조하십시오. 도메인 보기 및 편집

  • 사용자 프로필에 연결된 IAM 실행 역할의 ARN을 찾으려면 사용자 프로필 및 사용자 프로필 세부 정보 보기섹션을 참조하십시오.

  • 노트북 인스턴스에 연결된 IAM 실행 역할의 ARN을 찾으려면:

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

    2. 왼쪽 탐색 창에서 노트북북을 선택한 다음 노트북 인스턴스를 선택합니다.

    3. 노트북 목록에서 보려는 노트북을 선택합니다.

    4. ARN은 권한 및 암호화 섹션에 있습니다.

또는 Amazon SageMaker Python SDK 사용자는 다음 코드를 실행하여 사용자 프로필 또는 노트북 인스턴스에 연결된 실행 역할의 ARN을 검색할 수 있습니다.

import sagemaker sagemaker_session = sagemaker.Session() role = sagemaker.get_execution_role()
참고

실행 역할은 내에서 노트북을 실행하는 경우에만 사용할 수 있습니다. SageMaker 노트북이 켜져 SageMaker 있지 않은 get_execution_role 상태에서 실행하면 “region” 오류가 발생할 수 있습니다.

역할 전달

서비스 간 역할 전달과 같은 작업은 서비스 내에서 흔히 발생하는 기능입니다 SageMaker. IAM 사용 설명서에서 작업, 리소스 및 조건 키에 대한 SageMaker 자세한 내용을 확인할 수 있습니다.

API 호출을 수행할 때 CreateAutoMLJob, CreateCompilationJob, CreateDomain, CreateFeatureGroup, CreateFlowDefiniton, CreateHyperParameterTuningJob, CreateImage, CreateLabelingJob, CreateModel, CreateMonitoringSchedule, CreateNotebookInstance, CreateProcessingJob, CreateTrainingJob, CreateUserProfile, RenderUiTemplateUpdateImage등의 때 역할(iam:PassRole)을 전달합니다.

다음과 같은 신뢰 정책을 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 사용 설명서의 IAM 역할 섹션을 참조하세요.

CreateAutoMLJob API: 실행 역할 권한

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

CreateDomain API: 실행 역할 권한

CreateDomain API 요청에서 AWS KMS와 같이 KmsKeyId고객 관리형 키를 전달할 때 IAM Identity Center가 있는 도메인의 실행 역할과 IAM 도메인의 사용자/실행 역할에는 다음 권한이 필요합니다. 권한은 CreateAppAPI 호출 중에 적용됩니다.

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 또는 UpdateImageAPI 요청에서 전달할 수 있는 실행 역할에 대해 다음 권한 정책을 역할에 연결합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } } ] }

CreateNotebookInstance API: 실행 역할 권한

CreateNotebookInstance API 호출에 대한 실행 역할을 부여하는 권한은 노트북 인스턴스로 무엇을 할 계획인지에 따라 다릅니다. API를 사용하여 API를 호출하고 및 SageMaker API를 호출할 때 동일한 역할을 전달하려는 경우 다음 권한 정책을 역할에 연결하십시오. CreateTrainingJob CreateModel

{ "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 권한 범위를 CreateHyperParameterTuningJob요청에서 지정한 레지스트리 경로(AlgorithmSpecification.TrainingImage)로 지정합니다.

  • 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 관리형 키(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로 지정한 특정 버킷으로 지정합니다.

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

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

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 권한 범위를 CreateTrainingJob요청에서 지정한 레지스트리 경로(AlgorithmSpecification.TrainingImage)로 지정합니다.

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 권한 범위를 CreateModel요청에서 PrimaryContainer.ImageSecondaryContainer.Image로 지정한 특정 레지스트리 경로로 지정합니다.

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