런타임 IAM 역할을 사용하여 스튜디오 클래식에서 Amazon EMR 클러스터에 연결 - 아마존 SageMaker

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

런타임 IAM 역할을 사용하여 스튜디오 클래식에서 Amazon EMR 클러스터에 연결

Amazon SageMaker Studio Classic 노트북에서 Amazon EMR 클러스터에 연결하면 런타임 역할이라고 하는 IAM 역할 목록을 시각적으로 탐색하고 즉시 하나를 선택할 수 있습니다. 이후 스튜디오 클래식 노트북에서 생성되는 모든 Apache Spark, Apache Hive 또는 Presto 작업은 런타임 역할에 연결된 정책에서 허용하는 데이터 및 리소스에만 액세스합니다. 또한 로 AWS Lake Formation관리되는 데이터 레이크에서 데이터에 액세스하는 경우 런타임 역할에 연결된 정책을 사용하여 테이블 수준 및 열 수준의 액세스를 적용할 수 있습니다.

이 기능을 사용하면 팀원과 함께 동일한 클러스터에 연결할 수 있습니다. 각각은 데이터에 대한 개별 액세스 수준에 맞는 권한 범위가 지정된 런타임 역할을 사용합니다. 또한 클러스터 공유에서는 세션이 서로 격리됩니다. 동일한 공유 클러스터의 데이터에 대한 세분화된 액세스를 제어할 수 있으므로 EMR Amazon 클러스터의 프로비저닝을 단순화하여 운영 오버헤드를 줄이고 비용을 절감할 수 있습니다.

이 새로운 기능을 사용해 보려면 AWS Lake Formation Amazon Studio Classic의 및 Amazon을 통해 세분화된 데이터 액세스 제어 적용을 참조하십시오. EMR SageMaker 이 블로그 게시물은 사전 구성된 런타임 역할을 사용하여 Amazon EMR 클러스터에 연결해 볼 수 있는 데모 환경을 설정하는 데 도움이 됩니다.

사전 조건

시작하기 전에 다음 사전 조건을 충족하는지 확인합니다.

  • Amazon EMR 버전 6.9 이상을 사용하십시오.

  • 스튜디오 클래식 Jupyter 서버 애플리케이션 구성에서 JupyterLab 버전 3을 사용하십시오. 이 버전은 런타임 역할을 사용하여 Amazon EMR 클러스터에 Studio Classic을 연결할 수 있습니다.

  • 클러스터의 보안 구성에서 런타임 역할을 사용할 수 있도록 허용하세요. 자세한 내용은 Amazon EMR 단계의 런타임 역할을 참조하십시오.

  • 사용 설명서에 나열된 커널 중 하나를 사용하여 노트북을 생성하세요.

  • Studio Classic으로 런타임 역할을 런타임 IAM 역할을 사용하도록 Studio Classic을 설정합니다. 구성하려면 의 지침을 검토하십시오.

교차 계정 연결 시나리오

런타임 역할 인증은 데이터가 Studio Classic 계정 외부에 있는 경우 다양한 계정 간 연결 시나리오를 지원합니다. 다음 이미지는 Studio Classic과 데이터 계정 간에 Amazon EMR 클러스터, 데이터 및 Amazon EMR 실행 역할을 할당할 수 있는 세 가지 방법을 보여줍니다.

런타임 IAM 역할 인증으로 지원되는 교차 계정 시나리오.

옵션 1에서 Amazon EMR 클러스터 및 Amazon EMR 실행 역할은 스튜디오 클래식 계정과 별도의 데이터 계정에 있습니다. Studio Classic 실행 역할에 Amazon EMR 액세스 역할을 수임할 권한을 부여하는 별도의 Amazon EMR 액세스 역할 권한 정책을 정의합니다. 그러면 Amazon EMR 액세스 역할이 Studio Classic 실행 역할을 EMR API GetClusterSessionCredentials 대신하여 Amazon을 호출하여 클러스터에 대한 액세스 권한을 부여합니다.

옵션 2에서는 Amazon EMR 클러스터와 Amazon EMR 실행 역할이 스튜디오 클래식 계정에 있습니다. Studio Classic 실행 역할에는 Amazon을 사용하여 EMR API GetClusterSessionCredentials 클러스터에 액세스할 수 있는 권한이 있습니다. Amazon S3 버킷에 액세스하려면 Amazon EMR 실행 역할에 계정 간 Amazon S3 버킷 액세스 권한을 부여하십시오. Amazon S3 버킷 정책 내에서 이러한 권한을 부여하면 됩니다.

옵션 3에서 Amazon EMR 클러스터는 스튜디오 클래식 계정에 있고 Amazon EMR 실행 역할은 데이터 계정에 있습니다. Studio Classic 실행 역할에는 Amazon을 사용하여 EMR API GetClusterSessionCredentials 클러스터에 액세스할 수 있는 권한이 있습니다. Amazon EMR 실행 역할을 실행 역할 구성에 추가합니다JSON. 그러면 클러스터를 선택할 때 UI에서 역할을 선택할 수 있습니다. 실행 역할 구성 JSON 파일을 설정하는 방법에 대한 자세한 내용은 을 참조하십시오실행 역할을 스튜디오 클래식에 미리 로드하세요..

런타임 IAM 역할을 사용하도록 Studio Classic을 설정합니다.

Amazon EMR 클러스터에 대한 런타임 역할 인증을 설정하려면 필수 IAM 정책, 네트워크 및 사용성 향상을 구성하십시오. 설정은 Amazon EMR 클러스터, Amazon EMR 실행 역할 또는 둘 모두가 Amazon SageMaker Studio Classic 계정 외부에 있는 경우 계정 간 계약을 처리하는지 여부에 따라 달라집니다. 다음 설명에서는 설치 정책, 계정 간 트래픽을 허용하도록 네트워크를 구성하는 방법, Amazon EMR 연결을 자동화하도록 설정하는 로컬 구성 파일을 안내합니다.

Amazon EMR 클러스터와 Studio Classic이 동일한 계정에 있을 때 런타임 역할 인증을 구성합니다.

Amazon EMR 클러스터가 Studio Classic 계정에 있는 경우 Amazon EMR 클러스터에 연결하는 기본 정책을 추가하고 Amazon을 호출할 권한을 설정하면 클러스터에 액세스할 수 있습니다. EMR API GetClusterSessionCredentials 다음 단계를 완료하여 Studio Classic 실행 정책에 필요한 권한을 추가하십시오.

  1. Amazon EMR 클러스터에 연결하는 데 필요한 IAM 정책을 추가합니다. 세부 정보는 스튜디오 또는 스튜디오 클래식의 Amazon EMR 클러스터 목록을 참조하세요.

  2. 정책에 지정된 하나 이상의 허용된 Amazon EMR 실행 역할을 EMR API GetClusterSessionCredentials 전달하면 Amazon을 호출할 권한을 부여합니다.

  3. (선택 사항) 사용자 정의 명명 규칙을 따르는 IAM 역할을 전달할 권한을 부여합니다.

  4. (선택 사항) 특정 사용자 정의 문자열로 태그가 지정된 Amazon EMR 클러스터에 액세스할 수 있는 권한을 부여합니다.

  5. Amazon EMR 연결 명령을 수동으로 호출하지 않으려면 로컬 Amazon에 SageMaker 구성 파일을 EFS 설치하고 Amazon EMR 클러스터를 선택할 때 사용할 역할을 선택하십시오. IAM역할을 미리 로드하는 방법에 대한 자세한 내용은 을 참조하십시오실행 역할을 스튜디오 클래식에 미리 로드하세요..

다음 예제 정책은 모델링 및 교육 그룹에 속하는 Amazon EMR 실행 역할을 GetClusterSessionCredentials 호출할 수 있도록 허용합니다. 또한 보험 계약자는 문자열 또는 태그가 지정된 Amazon EMR 클러스터에 액세스할 수 있습니다. modeling training

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "elasticmapreduce:GetClusterSessionCredentials", "Resource": "*", "Condition": { "StringLike": { "elasticmapreduce:ExecutionRoleArn": [ "arn:aws:iam::123456780910:role/emr-execution-role-ml-modeling*", "arn:aws:iam::123456780910:role/emr-execution-role-ml-training*" ], "elasticmapreduce:ResourceTag/group": [ "*modeling*", "*training*" ] } } } ] }

클러스터와 Studio Classic이 서로 다른 계정에 있는 경우 런타임 역할 인증을 구성하십시오.

Amazon EMR 클러스터가 Studio Classic 계정에 없는 경우, 클러스터에 연결할 수 있도록 스튜디오 클래식 실행 역할이 계정 간 Amazon EMR 액세스 역할을 맡도록 허용하십시오. 교차 계정 구성을 설정하려면 다음 단계를 완료하세요.

  1. 실행 역할이 Amazon EMR 액세스 역할을 맡을 수 있도록 Studio Classic 실행 역할 권한 정책을 생성하십시오. 다음은 정책의 예입니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAssumeCrossAccountEMRAccessRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::emr_account_id:role/emr-access-role-name" } ] }
  2. 신뢰 정책을 생성하여 Amazon EMR 액세스 역할을 맡을 수 있는 것으로 신뢰할 수 IDs 있는 Studio Classic 계정을 지정합니다. 다음은 정책의 예입니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountSageMakerExecutionRoleToAssumeThisRole", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::studio_account_id:role/studio_execution_role" }, "Action": "sts:AssumeRole" } }
  3. Amazon EMR 액세스 역할 권한 정책을 생성하여 Amazon EMR 실행 역할에 클러스터에서 의도한 작업을 수행하는 데 필요한 권한을 부여합니다. EMR액세스 역할 권한 정책에 지정된 Amazon EMR 실행 역할을 API GetClusterSessionCredentials 사용하여 를 호출하도록 Amazon 액세스 역할을 구성합니다. 다음은 정책의 예입니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallingEmrGetClusterSessionCredentialsAPI", "Effect": "Allow", "Action": "elasticmapreduce:GetClusterSessionCredentials", "Resource": "", "Condition": { "StringLike": { "elasticmapreduce:ExecutionRoleArn": [ "arn:aws:iam::emr_account_id:role/emr-execution-role-name" ] } } } ] }
  4. 트래픽이 계정 간에 앞뒤로 이동할 수 있도록 교차 계정 네트워크를 설정하세요. 안내 지침은 대화형 Spark 및 ML 워크로드를 실행하기 위한 SageMaker Studio Classic에서 Amazon EMR 클러스터 생성 및 관리 - 2부의 블로그 게시물에서 네트워크 설정을 참조하십시오. 블로그 게시물의 단계는 다음 작업을 완료하는 데 도움이 됩니다.

    1. VPC-스튜디오 클래식 계정과 Amazon EMR 계정을 피어링하여 연결을 설정하십시오.

    2. 두 계정의 프라이빗 서브넷 라우팅 테이블에 경로를 수동으로 추가합니다. 이를 통해 Studio Classic 계정에서 원격 계정의 프라이빗 서브넷으로 Amazon EMR 클러스터를 생성하고 연결할 수 있습니다.

    3. Studio Classic 도메인에 연결된 보안 그룹은 아웃바운드 트래픽을 허용하고 Amazon EMR 기본 노드의 보안 그룹은 Studio Classic 인스턴스 보안 그룹의 인바운드 TCP 트래픽을 허용하도록 설정합니다.

  5. Amazon EMR 연결 명령을 수동으로 호출하지 않으려면 Amazon EMR 클러스터를 선택할 때 사용할 역할을 선택할 수 EFS 있도록 로컬 Amazon에 SageMaker 구성 파일을 설치하십시오. IAM역할을 미리 로드하는 방법에 대한 자세한 내용은 을 참조하십시오실행 역할을 스튜디오 클래식에 미리 로드하세요..

Lake Formation 액세스 구성

에서 관리하는 데이터 레이크의 데이터에 액세스하는 경우 런타임 역할에 연결된 정책을 사용하여 테이블 수준 및 열 수준 액세스를 적용할 수 있습니다. AWS Lake Formation Lake Formation 액세스 권한을 구성하려면 Amazon EMR 통합을 참조하십시오 AWS Lake Formation.

실행 역할을 스튜디오 클래식에 미리 로드하세요.

Amazon EMR 연결 명령을 수동으로 호출하지 않으려면 로컬 Amazon에 SageMaker 구성 파일을 EFS 설치하여 Amazon EMR 클러스터를 선택할 때 사용할 실행 역할을 선택할 수 있습니다.

Amazon EMR 실행 역할에 대한 구성 파일을 작성하려면 a 라이프사이클 구성을 사용하여 Studio Classic을 사용자 지정하세요 (LCC) 를 Jupyter 서버 애플리케이션에 연결하십시오. 또는 restart-jupyter-server 명령을 사용하여 구성 파일을 작성하거나 업데이트하고 Jupyter 서버를 다시 시작할 수 있습니다.

다음 스니펫은 Studio Classic 애플리케이션과 클러스터가 동일한 계정에 있는 경우 적용할 수 있는 예제 LCC bash 스크립트입니다.

#!/bin/bash set -eux FILE_DIRECTORY="/home/sagemaker-user/.sagemaker-analytics-configuration-DO_NOT_DELETE" FILE_NAME="emr-configurations-DO_NOT_DELETE.json" FILE="$FILE_DIRECTORY/$FILE_NAME" mkdir -p $FILE_DIRECTORY cat << 'EOF' > "$FILE" { "emr-execution-role-arns": { "123456789012": [ "arn:aws:iam::123456789012:role/emr-execution-role-1", "arn:aws:iam::123456789012:role/emr-execution-role-2" ] } } EOF

Studio Classic 애플리케이션과 클러스터가 서로 다른 계정에 있는 경우 클러스터를 사용할 수 있는 Amazon EMR 액세스 역할을 지정하십시오. 다음 예제 정책에서 123456789012는 아마존 EMR 클러스터 계정용이고 212121212121과 4343434343은 허용된 아마존 액세스 역할에 대한 ARN 정책입니다. ARNs EMR

#!/bin/bash set -eux FILE_DIRECTORY="/home/sagemaker-user/.sagemaker-analytics-configuration-DO_NOT_DELETE" FILE_NAME="emr-configurations-DO_NOT_DELETE.json" FILE="$FILE_DIRECTORY/$FILE_NAME" mkdir -p $FILE_DIRECTORY cat << 'EOF' > "$FILE" { "emr-execution-role-arns": { "123456789012": [ "arn:aws:iam::212121212121:role/emr-execution-role-1", "arn:aws:iam::434343434343:role/emr-execution-role-2" ] } } EOF # add your cross-account EMR access role FILE_DIRECTORY="/home/sagemaker-user/.cross-account-configuration-DO_NOT_DELETE" FILE_NAME="emr-discovery-iam-role-arns-DO_NOT_DELETE.json" FILE="$FILE_DIRECTORY/$FILE_NAME" mkdir -p $FILE_DIRECTORY cat << 'EOF' > "$FILE" { "123456789012": "arn:aws:iam::123456789012:role/cross-account-emr-access-role" } EOF