도메인 리소스 분리
중요
Amazon SageMaker Studio 또는 Amazon SageMaker Studio Classic에서 Amazon SageMaker 리소스를 만들도록 허용하는 사용자 지정 IAM 정책은 해당 리소스에 태그를 추가할 수 있는 권한도 부여해야 합니다. Studio와 Studio Classic은 만드는 리소스에 태그를 자동으로 지정하기 때문에 리소스에 태그를 추가할 권한이 필요합니다. IAM 정책이 Studio 및 Studio Classic에서 리소스를 만들도록 허용하지만 태그 지정은 허용하지 않는 경우 리소스 만들기를 시도할 때 'AccessDenied' 오류가 발생할 수 있습니다. 자세한 내용은 SageMaker 리소스 태그 지정을 위한 권한 제공 섹션을 참조하세요.
SageMaker 리소스를 만들 수 있는 권한을 부여하는 Amazon SageMaker용 AWS 관리형 정책에는 해당 리소스를 만드는 동안 태그를 추가할 수 있는 권한이 이미 포함되어 있습니다.
AWS Identity and Access Management(IAM) 정책을 사용하여 계정 및 AWS 리전의 각 도메인 간에 리소스를 격리할 수 있습니다. 분리된 리소스는 더 이상 다른 도메인에서 액세스할 수 없습니다. 이 주제에서는 IAM 정책에 필요한 조건과 이를 적용하는 방법을 설명합니다.
이 정책에서 분리할 수 있는 리소스는 aws:ResourceTag/${TagKey}
또는 sagemaker:ResourceTag/${TagKey}
가 포함된 조건 키가 있는 리소스 유형입니다. SageMaker 리소스 및 관련 조건 키에 대해서는 Amazon SageMaker에 사용되는 작업, 리소스 및 조건 키를 참조하세요.
주의
위의 조건 키가 포함되지 않은 리소스 유형(따라서 리소스 유형을 사용하는 작업)은 이 리소스 분리 정책의 영향을 받지 않습니다. 예를 들어 파이프라인 실행 리소스 유형에는 위의 조건 키가 포함되어 있지 않으며 이 정책의 영향을 받지 않습니다. 따라서 다음은 파이프라인 실행 리소스 유형과 함께 리소스 분리에 지원되지 않는 몇 가지 작업입니다.
-
DescribePipelineExecution
-
StopPipelineExecution
-
UpdatePipelineExecution
-
RetryPipelineExecution
-
DescribePipelineDefinitionForExecution
-
ListPipelineExecutionSteps
-
SendPipelineExecutionStepSuccess
-
SendPipelineExecutionStepFailure
다음 주제에서는 도메인 태그가 있는 사용자 프로필만 도메인의 리소스에 액세스할 수 있도록 제한하는 새 IAM 정책을 만드는 방법과 이 정책을 도메인의 IAM 실행 역할에 연결하는 방법을 보여줍니다. 계정의 각 도메인에 대해 이 절차를 반복해야 합니다. 도메인 태그 및 이러한 태그 채우기에 대한 자세한 내용은 다중 도메인 개요 섹션을 참조하세요.
콘솔
아래 섹션에서는 도메인 태그가 있는 사용자 프로필만 도메인의 리소스에 액세스할 수 있도록 제한하는 새 IAM 정책을 만드는 방법과 Amazon SageMaker 콘솔에서 이 정책을 도메인의 IAM 실행 역할에 연결하는 방법을 보여줍니다.
참고
이 정책은 Amazon SageMaker Studio Classic을 기본 환경으로 사용하는 도메인에서만 작동합니다.
-
IAM 정책 생성(콘솔)의 단계를 완료하여 다음 JSON 정책 문서를 사용하여
StudioDomainResourceIsolationPolicy-
라는 IAM 정책을 생성합니다.domain-id
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateAPIs", "Effect": "Allow", "Action": "sagemaker:Create*", "NotResource": [ "arn:aws:sagemaker:*:*:domain/*", "arn:aws:sagemaker:*:*:user-profile/*", "arn:aws:sagemaker:*:*:space/*" ] }, { "Sid": "ResourceAccessRequireDomainTag", "Effect": "Allow", "Action": [ "sagemaker:Update*", "sagemaker:Delete*", "sagemaker:Describe*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/sagemaker:domain-arn": "
domain-arn
" } } }, { "Sid": "AllowActionsThatDontSupportTagging", "Effect": "Allow", "Action": [ "sagemaker:DescribeImageVersion", "sagemaker:UpdateImageVersion", "sagemaker:DeleteImageVersion", "sagemaker:DescribeModelCardExportJob", "sagemaker:DescribeAction" ], "Resource": "*" }, { "Sid": "DeleteDefaultApp", "Effect": "Allow", "Action": "sagemaker:DeleteApp", "Resource": "arn:aws:sagemaker:*:*:app/domain-id
/*/jupyterserver/default" } ] } -
역할 수정(콘솔)의 단계를 완료하여 도메인의 실행 역할에
StudioDomainResourceIsolationPolicy-
정책을 연결합니다.domain-id
AWS CLI
아래 섹션에서는 도메인 태그가 있는 사용자 프로필만 도메인의 리소스에 액세스할 수 있도록 제한하는 새 IAM 정책을 만드는 방법과 AWS CLI에서 이 정책을 도메인의 실행 역할에 연결하는 방법을 보여줍니다.
참고
이 정책은 Amazon SageMaker Studio Classic을 기본 환경으로 사용하는 도메인에서만 작동합니다.
-
로컬 시스템에서 다음 내용으로
StudioDomainResourceIsolationPolicy-
라는 파일을 생성합니다.domain-id
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateAPIs", "Effect": "Allow", "Action": "sagemaker:Create*", "NotResource": [ "arn:aws:sagemaker:*:*:domain/*", "arn:aws:sagemaker:*:*:user-profile/*", "arn:aws:sagemaker:*:*:space/*" ] }, { "Sid": "ResourceAccessRequireDomainTag", "Effect": "Allow", "Action": [ "sagemaker:Update*", "sagemaker:Delete*", "sagemaker:Describe*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/sagemaker:domain-arn": "
domain-arn
" } } }, { "Sid": "AllowActionsThatDontSupportTagging", "Effect": "Allow", "Action": [ "sagemaker:DescribeImageVersion", "sagemaker:UpdateImageVersion", "sagemaker:DeleteImageVersion", "sagemaker:DescribeModelCardExportJob", "sagemaker:DescribeAction" ], "Resource": "*" }, { "Sid": "DeleteDefaultApp", "Effect": "Allow", "Action": "sagemaker:DeleteApp", "Resource": "arn:aws:sagemaker:*:*:app/domain-id
/*/jupyterserver/default" } ] } -
StudioDomainResourceIsolationPolicy-
파일을 사용하여 IAM 정책을 생성합니다.domain-id
aws iam create-policy --policy-name
StudioDomainResourceIsolationPolicy-
--policy-document file://domain-id
StudioDomainResourceIsolationPolicy-
domain-id
-
새로 만든 정책을 도메인의 실행 역할로 사용되는 새 역할 또는 기존 역할에 연결합니다.
aws iam attach-role-policy --policy-arn arn:aws:iam:
account-id
:policy/StudioDomainResourceIsolationPolicy-
--role-namedomain-id
domain-execution-role