런타임 역할로 EMR Studio Workspace 실행 - Amazon EMR

런타임 역할로 EMR Studio Workspace 실행

참고

이 페이지에 설명된 런타임 역할 기능은 Amazon EC2에서 실행되는 Amazon EMR에만 적용되며, EMR Serverless 대화형 애플리케이션의 런타임 역할 기능을 참조하지 않습니다. EMR Serverless에서 런타임 역할을 사용하는 방법에 대한 자세한 내용은 Amazon EMR Serverless 사용 설명서에서 Job runtime roles를 참조하세요.

런타임 역할은 Amazon EMR 클러스터에 작업 또는 쿼리를 제출할 때 지정할 수 있는 AWS Identity and Access Management(IAM) 역할입니다. EMR 클러스터에 제출하는 작업 또는 쿼리는 런타임 역할을 사용하여 Amazon S3의 객체와 같은 AWS 리소스에 액세스합니다.

Amazon EMR 6.11 이상을 사용하는 EMR 클러스터에 EMR Studio Workspace를 연결하는 경우, AWS 리소스에 액세스할 때 사용하도록 제출하는 작업 또는 쿼리의 런타임 역할을 선택할 수 있습니다. 하지만 EMR 클러스터가 런타임 역할을 지원하지 않는 경우 EMR 클러스터는 AWS 리소스에 액세스할 때 역할을 수임하지 않습니다.

Amazon EMR Studio Workspace에서 런타임 역할을 사용하려면 먼저 Studio 사용자가 런타임 역할에서 elasticmapreduce:GetClusterSessionCredentials API를 직접 호출할 수 있도록 관리자가 사용자 권한을 구성해야 합니다. 그런 다음 Amazon EMR Studio Workspace에서 사용할 수 있는 런타임 역할을 포함하는 새 클러스터를 시작합니다.

런타임 역할에 대한 사용자 권한 구성

Studio 사용자가 사용하려는 런타임 역할에서 elasticmapreduce:GetClusterSessionCredentials API를 직접 호출할 수 있도록 사용자 권한을 구성합니다. 또한 사용자가 Studio 사용을 시작하기 전에 Amazon EC2 또는 Amazon EKS에 대한 EMR Studio 사용자 권한 구성을 구성해야 합니다.

주의

이 권한을 부여하려면 호출자에게 GetClusterSessionCredentials API 직접 호출 액세스 권한을 부여할 때 elasticmapreduce:ExecutionRoleArn 컨텍스트 키를 기반으로 조건을 생성합니다. 다음 예제에서는 이 작업을 수행하는 방법을 보여줍니다.

{ "Sid": "AllowSpecificExecRoleArn", "Effect": "Allow", "Action": [ "elasticmapreduce:GetClusterSessionCredentials" ], "Resource": "*", "Condition": { "StringEquals": { "elasticmapreduce:ExecutionRoleArn": [ "arn:aws:iam::111122223333:role/test-emr-demo1", "arn:aws:iam::111122223333:role/test-emr-demo2" ] } } }

다음 예제에서는 IAM 보안 주체가 런타임 역할로 test-emr-demo3 IAM 역할을 사용하도록 허용하는 방법을 보여줍니다. 또한 정책 보유자는 클러스터 ID j-123456789로만 Amazon EMR 클러스터에 액세스할 수 있습니다.

{ "Sid":"AllowSpecificExecRoleArn", "Effect":"Allow", "Action":[ "elasticmapreduce:GetClusterSessionCredentials" ], "Resource": [ "arn:aws:elasticmapreduce:<region>:111122223333:cluster/j-123456789" ], "Condition":{ "StringEquals":{ "elasticmapreduce:ExecutionRoleArn":[ "arn:aws:iam::111122223333:role/test-emr-demo3" ] } } }

다음 예제를 통해 IAM 보안 주체는 이름이 test-emr-demo4 문자열로 시작하는 모든 IAM 역할을 런타임 역할로 사용할 수 있습니다. 또한 정책 보유자는 키-값 페어 tagKey: tagValue로 태그가 지정된 Amazon EMR 클러스터에만 액세스할 수 있습니다.

{ "Sid":"AllowSpecificExecRoleArn", "Effect":"Allow", "Action":[ "elasticmapreduce:GetClusterSessionCredentials" ], "Resource": "*", "Condition":{ "StringEquals":{ "elasticmapreduce:ResourceTag/tagKey": "tagValue" }, "StringLike":{ "elasticmapreduce:ExecutionRoleArn":[ "arn:aws:iam::111122223333:role/test-emr-demo4*" ] } } }

런타임 역할을 사용하여 새 클러스터 시작

이제 필요한 권한을 확보했으면 Amazon EMR Studio Workspace에서 사용할 수 있는 런타임 역할을 포함하는 새 클러스터를 시작합니다.

런타임 역할이 있는 새 클러스터를 이미 시작한 경우 Workspace에서 런타임 역할을 포함하는 EMR 클러스터 사용 섹션으로 건너뛰어도 됩니다.

  1. 먼저 Amazon EMR 단계의 런타임 역할 섹션의 필수 조건을 완료합니다.

  2. 그런 다음 Amazon EMR Studio Workspace에서 런타임 역할을 사용하도록 다음 설정으로 클러스터를 시작합니다. 클러스터를 시작하는 방법에 대한 지침은 클러스터에 대한 보안 구성 지정 섹션을 참조하세요.

    • 릴리스 레이블 emr-6.11.0 이상을 선택합니다.

    • Spark, Livy, Jupyter Enterprise Gateway를 클러스터 애플리케이션으로 선택합니다.

    • 이전 단계에서 생성한 보안 그룹을 사용합니다.

    • 선택적으로 EMR 클러스터에 대해 Lake Formation을 활성화할 수 있습니다. 자세한 내용은 Amazon EMR에서 Lake Formation 활성화 섹션을 참조하세요.

클러스터를 시작한 후에는 EMR Studio Workspace에서 런타임 역할 지원 클러스터를 사용할 준비가 된 것입니다.

참고

ExecutionRoleArn 값은 ExecutionEngineConfig.Type 값이 EMR인 경우 현재 StartNotebookExecution API 작업에서 지원되지 않습니다.

Workspace에서 런타임 역할을 포함하는 EMR 클러스터 사용

클러스터를 설정하고 시작한 후에는 EMR Studio Workspace에서 런타임 역할 지원 클러스터를 사용할 수 있습니다.

  1. 새 Workspace를 생성하거나 기존 Workspace를 시작합니다. 자세한 내용은 EMR Studio Workspace 생성 섹션을 참조하세요.

  2. 열린 Workspace의 왼쪽 사이드바에서 EMR 클러스터 탭을 선택하고 컴퓨팅 유형 섹션을 확장한 다음, EC2의 EMR 클러스터 메뉴에서 클러스터를 선택하고 런타임 역할 메뉴에서 런타임 역할을 선택합니다.

    EMR Studio Workspace 사용자 인터페이스는 JupyterLab 인터페이스를 기반으로 하며 왼쪽 사이드바에 아이콘으로 표시된 탭이 있습니다.
  3. 연결을 선택하여 Workspace에 런타임 역할을 포함하는 클러스터를 연결합니다.

고려 사항

Amazon EMR Studio Workspace에서 런타임 역할 지원 클러스터를 사용할 때 다음 사항을 고려합니다.

  • Amazon EMR 릴리스 6.11 이상을 사용하는 EMR 클러스터에 EMR Studio Workspace를 연결할 때만 런타임 역할을 선택할 수 있습니다.

  • 이 페이지에 설명된 런타임 역할 기능은 Amazon EC2에서 실행되는 Amazon EMR에서만 지원되며, EMR Serverless 대화형 애플리케이션에서는 지원되지 않습니다. EMR Serverless에서 런타임 역할에 대한 자세한 내용은 Amazon EMR Serverless 사용 설명서에서 Job runtime roles를 참조하세요.

  • 클러스터에 작업을 제출할 때 런타임 역할을 지정하기 전에 추가 권한을 구성해야 하지만 EMR Studio Workspace에서 생성된 파일에 액세스하기 위한 추가 권한은 필요하지 않습니다. 이러한 파일에 대한 권한은 런타임 역할 없이 클러스터에서 생성된 파일과 동일합니다.

  • 런타임 역할이 있는 클러스터를 포함하는 EMR Studio Workspace에서는 SQL 탐색기를 사용할 수 없습니다. Amazon EMR은 Workspace가 런타임 역할 지원 EMR 클러스터에 연결된 경우 UI에서 SQL 탐색기를 비활성화합니다.

  • 런타임 역할이 있는 클러스터를 포함하는 EMR Studio Workspace에서는 협업 모드를 사용할 수 없습니다. Amazon EMR은 Workspace가 런타임 역할 지원 EMR 클러스터에 연결된 경우 Workspace 협업 기능을 비활성화합니다. Workspace는 해당 Workspace를 연결한 사용자만 계속 액세스할 수 있습니다.

  • 'Page may not be safe!' 경고가 런타임 역할 지원 클러스터의 경우 Spark UI에 나타날 수 있습니다. 이 경우 알림을 무시하고 Spark UI를 계속 표시하게 합니다.