도메인 리소스 분리 - Amazon SageMaker

도메인 리소스 분리

중요

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을 기본 환경으로 사용하는 도메인에서만 작동합니다.

  1. IAM 정책 생성(콘솔)의 단계를 완료하여 다음 JSON 정책 문서를 사용하여 StudioDomainResourceIsolationPolicy-domain-id라는 IAM 정책을 생성합니다.

    { "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" } ] }
  2. 역할 수정(콘솔)의 단계를 완료하여 도메인의 실행 역할에 StudioDomainResourceIsolationPolicy-domain-id 정책을 연결합니다.

AWS CLI

아래 섹션에서는 도메인 태그가 있는 사용자 프로필만 도메인의 리소스에 액세스할 수 있도록 제한하는 새 IAM 정책을 만드는 방법과 AWS CLI에서 이 정책을 도메인의 실행 역할에 연결하는 방법을 보여줍니다.

참고

이 정책은 Amazon SageMaker Studio Classic을 기본 환경으로 사용하는 도메인에서만 작동합니다.

  1. 로컬 시스템에서 다음 내용으로 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" } ] }
  2. StudioDomainResourceIsolationPolicy-domain-id 파일을 사용하여 IAM 정책을 생성합니다.

    aws iam create-policy --policy-name StudioDomainResourceIsolationPolicy-domain-id --policy-document file://StudioDomainResourceIsolationPolicy-domain-id
  3. 새로 만든 정책을 도메인의 실행 역할로 사용되는 새 역할 또는 기존 역할에 연결합니다.

    aws iam attach-role-policy --policy-arn arn:aws:iam:account-id:policy/StudioDomainResourceIsolationPolicy-domain-id --role-name domain-execution-role