View a markdown version of this page

역할 관리자 가용성 변경 - Amazon SageMaker AI

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

역할 관리자 가용성 변경

참고

Amazon SageMaker 역할 관리자는 더 이상 신규 고객에게 공개되지 않습니다. 기존 고객은 서비스를 정상적으로 계속 사용할 수 있습니다. AWS 역할 관리자의 보안 및 가용성 개선에 계속 투자하지만 새로운 기능을 도입할 계획은 없습니다.

IAM 네이티브 도구, IAM Identity Center 및 infrastructure-as-code

AWS IAM 네이티브 역할 생성 AWS IAM Identity Center과 Infrastructure-as-Code(CloudFormation, CDK)의 조합은 페르소나 기반 역할 생성 및 활동 기반 권한 범위 지정 전반에서 핵심 기능을 다루어 Amazon SageMaker 역할 관리자의 대체 역할을 합니다.

AWS IAM 네이티브 도구는 sagemaker.amazonaws.com 서비스 보안 주체 신뢰 정책으로 역할을 생성하고 관리형 또는 사용자 지정 정책을 연결하여 IAM 콘솔, CLI 또는 SDK를 통해 실행 역할 생성을 처리합니다.

AWS IAM Identity Center 는 SageMaker 리소스에 대한 세분화된 액세스를 정의하는 권한 세트를 제공하여 인력 자격 증명 및 중앙 집중식 액세스 관리를 처리하고 외부 자격 증명 공급자(Okta, Azure AD, Ping Identity)의 페더레이션 자격 증명과 SageMaker Studio를 통한 신뢰할 수 있는 자격 증명 전파를 활성화합니다.

IAM Access Analyzer는 실제 CloudTrail 액세스 패턴을 분석하고 세분화된 정책을 권장하고 Role Manager의 정적 활동 기반 템플릿을 사용량 기반 정책 권장 사항으로 대체하여 동적 정책 검증 및 최소 권한 정책 생성을 제공합니다.

반복 가능한 거버넌스 CloudFormation 를 위해 CDK 템플릿은 엔터프라이즈 CI/CD 파이프라인 및 보안 검토 프로세스와 통합되는 버전 제어, 감사 및 반복 가능한 IAM 역할 정의를 제공합니다.

역할 관리자 교체

워크플로에 SageMaker AI 콘솔(관리자 구성 > 역할 관리자 > 역할 생성)로 이동하거나 도메인, 노트북, 훈련 작업 또는 추론 모델 생성 중에 "역할 생성 마법사를 사용하여 역할 생성" 옵션을 사용하는 것이 포함된 경우 아래 대체 구성 섹션에 설명된 대체 경로를 사용합니다.

기존 역할에는 정리가 필요하지 않음

이전에 Role Manager에서 생성한 IAM 역할은 표준 IAM 역할입니다. 역할 관리자별 런타임 종속성 없이 독립적으로 계속 작동합니다. 이러한 역할은 다음과 같습니다.

  • sagemaker- 접두사가 있는 표준 IAM 역할로 IAM 콘솔에 표시

  • IAM 콘솔에서 직접 보거나 수정하거나 삭제할 수 있습니다.

  • 신뢰 정책 및 권한 정책이 온전하고 작동하도록 합니다.

  • 이 전환의 일부로 변환, 마이그레이션 또는 삭제가 필요하지 않음

CDK Role Manager 구문 바꾸기(사용된 경우)

@aws-cdk/aws-sagemaker-alpha 역할 관리자 CDK 구문( PersonaActivity 클래스)을 사용한 경우 표준 aws-cdk-lib/aws-iam 구문으로 바꿉니다. 대체 패턴은 아래 Infrastructure-as-Code 섹션을 참조하세요.

Studio 도메인 생성 흐름 교체

SageMaker AI 도메인을 생성할 때 온보딩 마법사("역할 생성 마법사를 사용하여 역할 생성") 중에 실행 역할을 생성하는 옵션으로 역할 관리자가 제공되었습니다. 아래 대안을 따릅니다.

IAM 콘솔 역할 생성을 사용한 사용자 지정 도메인 설정

사용자 지정 도메인을 생성하는 동안 Role Manager를 사용하는 대신 IAM 콘솔에서 직접 실행 역할을 생성할 수 있습니다.

1단계: IAM에서 실행 역할 생성

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

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

  3. AWS 서비스를 신뢰할 수 있는 엔터티 유형으로 유지합니다.

  4. "다른 AWS 서비스의 사용 사례"에서 SageMaker AI를 찾아 선택합니다.

  5. SageMaker AI – 실행을 선택한 후 다음을 선택합니다.

  6. AmazonSageMakerFullAccess 관리형 정책은 자동으로 연결됩니다. 다음을 선택합니다.

  7. 역할 이름(예: AmazonSageMaker-ExecutionRole-CustomDomain)과 설명을 입력합니다.

  8. (선택 사항) 거버넌스 및 추적을 위한 태그를 추가합니다.

  9. 역할 생성을 선택하고 역할 ARN을 기록해 둡니다.

2단계: 도메인 생성 중에 역할 사용

  1. SageMaker AI 콘솔에서 관리 구성 > 도메인 > 도메인 생성을 선택합니다.

  2. 조직에 대한 설정(사용자 지정 설정)을 선택합니다.

  3. 실행 역할에서 사용자 지정 IAM 역할 ARN 입력을 선택하고 1단계의 ARN을 붙여넣습니다.

  4. 나머지 도메인 구성 단계를 완료합니다.

자세한 지침은 SageMaker AI 실행 역할을 사용하는 방법을 참조하세요.

AWS 관리형 정책을 직접 사용

AWS 는 일반적인 SageMaker 활동을 다루는 관리형 정책을 제공합니다. IAM 실행 역할에 직접 연결합니다.

사용 사례: AWS 연결할 관리형 정책
일반 ML 개발(데이터 과학자 동등) AmazonSageMakerFullAccess
모니터링/감사를 위한 읽기 전용 액세스 AmazonSageMakerReadOnly
Canvas 사용자 AmazonSageMakerCanvasFullAccess + AmazonSageMakerCanvasAIServicesAccess
파이프라인 작업(MLOps에 상응하는 작업) AmazonSageMakerFullAccess + AmazonSageMakerPipelinesIntegrations
특성 저장소 액세스 AmazonSageMakerFeatureStoreAccess
모델 거버넌스 AmazonSageMakerModelGovernanceUseAccess
모델 레지스트리 AmazonSageMakerModelRegistryFullAccess

전체 목록은 AWS Amazon SageMaker AI에 대한 관리형 정책을 참조하세요.

IAM Access Analyzer 정책 생성 사용(최소 권한의 경우)

IAM Access Analyzer를 사용하여 실제 CloudTrail 액세스 활동을 기반으로 최소 권한 정책을 생성합니다. 이렇게 하면 Role Manager의 정적 템플릿보다 더 정확한 사용 기반 정책이 생성됩니다.

  1. SageMaker 워크로드에 대해 CloudTrail 로깅을 활성화합니다(일반적으로 이미 활성화됨).

  2. 대표 기간(30~90일 권장AmazonSageMakerFullAccess) 동안 더 광범위한 정책(예: )으로 워크로드를 실행합니다.

  3. IAM Access Analyzer에서 정책을 생성합니다.

    • IAM 콘솔 > Access Analyzer > 정책 생성을 엽니다.

    • 분석할 역할을 선택합니다.

    • CloudTrail 추적 및 기간을 지정합니다.

    • 실제로 사용된 작업만 포함된 생성된 정책을 검토합니다.

  4. 생성된 정책을 적용하여 더 광범위한 초기 정책을 대체합니다.

이 접근 방식은 Role Manager의 정적 템플릿을 실제 사용 패턴을 반영하는 동적 정책으로 대체하여 수동 큐레이션 없이 진정한 최소 권한을 달성합니다.

자세한 단계는 IAM Access Analyzer 정책 생성을 참조하세요.

Infrastructure-as-Code(CloudFormation)

반복 가능한 버전 제어 역할 관리를 CloudFormation 위해에서 SageMaker 실행 역할을 정의합니다. 다음은 사용 사례에 따라 수정해야 하는 예입니다.

AWSTemplateFormatVersion: '2010-09-09' Description: SageMaker execution roles replacing Role Manager personas Resources: # Replaces Role Manager "SageMaker AI Compute" persona SageMakerComputeRole: Type: AWS::IAM::Role Properties: RoleName: sagemaker-compute-execution-role AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: sagemaker.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonSageMakerFullAccess Policies: - PolicyName: S3DataAccess PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - s3:GetObject - s3:PutObject - s3:DeleteObject - s3:ListBucket Resource: - arn:aws:s3:::my-sagemaker-bucket - arn:aws:s3:::my-sagemaker-bucket/* Tags: - Key: Purpose Value: sagemaker-compute - Key: ManagedBy Value: cloudformation # Replaces Role Manager "Data Scientist" persona DataScientistRole: Type: AWS::IAM::Role Properties: RoleName: sagemaker-data-scientist-role AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: sagemaker.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonSageMakerFullAccess - arn:aws:iam::aws:policy/AmazonSageMakerCanvasFullAccess - arn:aws:iam::aws:policy/AmazonSageMakerCanvasAIServicesAccess Policies: - PolicyName: GlueAccess PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - glue:CreateTable - glue:UpdateTable - glue:DeleteTable - glue:GetTable - glue:GetTables - glue:GetDatabase - glue:GetDatabases Resource: '*' Tags: - Key: Purpose Value: sagemaker-data-scientist - Key: ManagedBy Value: cloudformation # Replaces Role Manager "MLOps" persona MLOpsRole: Type: AWS::IAM::Role Properties: RoleName: sagemaker-mlops-role AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: sagemaker.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonSageMakerFullAccess - arn:aws:iam::aws:policy/AmazonSageMakerPipelinesIntegrations - arn:aws:iam::aws:policy/AmazonS3FullAccess Tags: - Key: Purpose Value: sagemaker-mlops - Key: ManagedBy Value: cloudformation Outputs: ComputeRoleArn: Description: ARN of the SageMaker Compute execution role Value: !GetAtt SageMakerComputeRole.Arn DataScientistRoleArn: Description: ARN of the Data Scientist execution role Value: !GetAtt DataScientistRole.Arn MLOpsRoleArn: Description: ARN of the MLOps execution role Value: !GetAtt MLOpsRole.Arn

Infrastructure-as-Code(AWS CDK)

역할 관리자 CDK 구문(Persona, Activity)을 표준 IAM 구문으로 바꿉니다. 다음은 사용 사례에 따라 수정해야 하는 예입니다.

import * as cdk from 'aws-cdk-lib'; import * as iam from 'aws-cdk-lib/aws-iam'; import { Construct } from 'constructs'; export class SageMakerRolesStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); // Replaces Role Manager "SageMaker AI Compute" persona const computeRole = new iam.Role(this, 'SageMakerComputeRole', { roleName: 'sagemaker-compute-execution-role', assumedBy: new iam.ServicePrincipal('sagemaker.amazonaws.com'), managedPolicies: [ iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonSageMakerFullAccess'), ], }); // Replaces Role Manager "Data Scientist" persona const dataScientistRole = new iam.Role(this, 'DataScientistRole', { roleName: 'sagemaker-data-scientist-role', assumedBy: new iam.ServicePrincipal('sagemaker.amazonaws.com'), managedPolicies: [ iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonSageMakerFullAccess'), iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonSageMakerCanvasFullAccess'), iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonSageMakerCanvasAIServicesAccess'), ], }); // Add custom inline policy for Glue access // (replaces "Manage Glue Tables" ML activity) dataScientistRole.addToPolicy(new iam.PolicyStatement({ effect: iam.Effect.ALLOW, actions: [ 'glue:CreateTable', 'glue:UpdateTable', 'glue:DeleteTable', 'glue:GetTable', 'glue:GetTables', 'glue:GetDatabase', 'glue:GetDatabases', ], resources: ['*'], })); // Replaces Role Manager "MLOps" persona const mlopsRole = new iam.Role(this, 'MLOpsRole', { roleName: 'sagemaker-mlops-role', assumedBy: new iam.ServicePrincipal('sagemaker.amazonaws.com'), managedPolicies: [ iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonSageMakerFullAccess'), iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonSageMakerPipelinesIntegrations'), iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonS3FullAccess'), ], }); // Example: Scope down with VPC conditions // (replaces Role Manager VPC customization) computeRole.addToPolicy(new iam.PolicyStatement({ effect: iam.Effect.ALLOW, actions: [ 'ec2:CreateNetworkInterface', 'ec2:CreateNetworkInterfacePermission', 'ec2:DeleteNetworkInterface', 'ec2:DeleteNetworkInterfacePermission', 'ec2:DescribeNetworkInterfaces', 'ec2:DescribeVpcs', 'ec2:DescribeDhcpOptions', 'ec2:DescribeSubnets', 'ec2:DescribeSecurityGroups', ], resources: ['*'], conditions: { StringEquals: { 'ec2:Vpc': 'arn:aws:ec2:us-east-1:123456789012:vpc/vpc-xxxxxxxx', }, }, })); } }