기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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 도메인을 만드는 방법에 대한 자세한 내용은 을 참조하십시오IAM ID 센터를 사용하여 Amazon SageMaker 도메인에 사용자 지정 온보딩.
-
노트북 인스턴스를 생성하는 방법에 대한 자세한 내용은 1단계: Amazon SageMaker 노트북 인스턴스 생성섹션을 참조하십시오.
SageMaker콘솔에서 새 실행 역할을 만들려면
https://console.aws.amazon.com/iam/
에서 IAM 콘솔을 엽니다. -
역할을 선택한 다음 역할 생성을 선택합니다.
-
AWS서비스를 신뢰할 수 있는 개체 유형으로 유지하고 아래쪽 화살표를 사용하여 다른 AWS 서비스의 사용 SageMaker사례에서 검색하십시오.
-
실행 SageMaker - 실행을 선택한 후 다음을 선택합니다.
-
IAM 관리형 정책
AmazonSageMakerFullAccess
는 역할에 자동으로 연결됩니다. 이 정책에 포함된 권한을 보려면 정책 이름 옆에 있는 더하기(+) 기호를 선택합니다. 다음을 선택합니다. -
역할 이름 및 설명을 입력합니다.
-
(선택 사항) 추가 권한 및 태그를 역할에 추가합니다.
-
Create role(역할 생성)을 선택합니다.
-
IAM 콘솔의 역할 섹션에서 방금 생성한 역할을 찾습니다. 필요한 경우 텍스트 상자에서 역할 이름을 사용하여 역할을 검색하십시오.
-
역할 요약 페이지에서 ARN의 값을 메모해 둡니다.
AWS CLI에서 새 실행 역할을 생성하려면
AWS CLI를 사용하여 실행 역할을 생성하기 전에 AWS CLI 사전 조건의 지침에 따라 실행 역할을 업데이트하고 구성한 다음 AWS CLI에서 온보딩 의 지침을 계속 따르십시오.
실행 역할을 만든 후에는 이를 SageMaker 도메인, 사용자 프로필 또는 Jupyter 노트북 인스턴스와 연결할 수 있습니다.
-
실행 역할을 기존 SageMaker 도메인과 연결하는 방법에 대한 자세한 내용은 을 참조하십시오. 도메인 설정 편집
-
실행 역할을 기존 사용자 프로필과 연결하는 방법에 대해 알아보려면 사용자 프로필 추가 및 제거섹션을 참조하십시오.
-
실행 역할을 기존 노트북 인스턴스와 연결하는 방법에 대해 알아보려면 노트북 인스턴스 업데이트섹션을 참조하십시오.
실행 역할의 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, ) ...
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-BUCKET1
및 DOC-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:::
", "arn:aws:s3:::
DOC-EXAMPLE-BUCKET1
/*" ] }, { "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-BUCKET2
/*", "arn:aws:s3:::
DOC-EXAMPLE-BUCKET1
" ] } ] }
DOC-EXAMPLE-BUCKET2
실행 역할 가져오기
SageMaker 콘솔 또는 를 사용하여 SageMaker 도메인, 사용자 프로필 또는 노트북 인스턴스에 연결된 실행 역할의 ARN을 검색할 수 있습니다. AWS CLI
-
SageMaker 도메인에 연결된 IAM 실행 역할의 ARN을 찾으려면 을 참조하십시오. 도메인 보기 및 편집
-
사용자 프로필에 연결된 IAM 실행 역할의 ARN을 찾으려면 사용자 프로필 및 사용자 프로필 세부 정보 보기섹션을 참조하십시오.
-
노트북 인스턴스에 연결된 IAM 실행 역할의 ARN을 찾으려면:
https://console.aws.amazon.com/iam/
에서 IAM 콘솔을 엽니다. -
왼쪽 탐색 창에서 노트북북을 선택한 다음 노트북 인스턴스를 선택합니다.
-
노트북 목록에서 보려는 노트북을 선택합니다.
-
ARN은 권한 및 암호화 섹션에 있습니다.
또는 Amazon SageMaker Python SDK
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
, RenderUiTemplate
및 UpdateImage
등의 때 역할(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 도메인의 사용자/실행 역할에는 다음 권한이 필요합니다. 권한은 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": "*" }, { "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: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 권한 범위를
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
요청의ProcessingInputs
및ProcessingOutputConfig
에서 다운로드되거나 업로드될 객체에 대한s3:GetObject
및s3:PutObject
권한의 범위를 지정합니다. -
Amazon ECR 권한 범위를
CreateProcessingJob
요청에서 지정한 레지스트리 경로(AppSpecification.ImageUri
)로 지정합니다.
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 권한 범위를
CreateTrainingJob
요청에서 지정한 레지스트리 경로(AlgorithmSpecification.TrainingImage
)로 지정합니다.
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 권한 범위를
CreateModel
요청에서PrimaryContainer.Image
및SecondaryContainer.Image
로 지정한 특정 레지스트리 경로로 지정합니다.
cloudwatch
및 logs
작업은 "*" 리소스에 적용됩니다. 자세한 내용은 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" ] }