Amazon EMR on EKS에서 작업 실행 역할 사용 - Amazon EMR

Amazon EMR on EKS에서 작업 실행 역할 사용

StartJobRun 명령을 사용하여 EKS 클러스터에서 작업 실행을 제출하려면 먼저 가상 클러스터에서 사용할 작업 실행 역할을 온보딩해야 합니다. 자세한 설명은 Amazon EMR on EKS 설정에서 작업 실행 역할 생성 섹션을 참조하십시오. Amazon EMR on EKS 워크숍의 Create IAM Role for job execution 섹션의 지침을 따를 수도 있습니다.

작업 실행 역할에 대한 신뢰 정책에 다음 권한이 포함되어야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::AWS_ACCOUNT_ID:oidc-provider/OIDC_PROVIDER" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringLike": { "OIDC_PROVIDER:sub": "system:serviceaccount:NAMESPACE:emr-containers-sa-*-*-AWS_ACCOUNT_ID-BASE36_ENCODED_ROLE_NAME" } } } ] }

위 예제의 신뢰 정책은 emr-containers-sa-*-*-AWS_ACCOUNT_ID-BASE36_ENCODED_ROLE_NAME 패턴과 일치하는 이름의 Amazon EMR 관리형 Kubernetes 서비스 계정에만 권한을 부여합니다. 이 패턴의 서비스 계정은 작업 제출 시 자동으로 생성되며 작업을 제출하는 네임스페이스로 범위가 지정됩니다. 이 신뢰 정책을 통해 이러한 서비스 계정이 실행 역할을 수임하고 실행 역할의 임시 보안 인증을 가져올 수 있습니다. 다른 Amazon EKS 클러스터 또는 동일한 EKS 클러스터 내 다른 네임스페이스의 서비스 계정은 실행 역할을 수임할 수 없습니다.

다음 명령을 실행하여 위에 제공된 형식으로 신뢰 정책을 자동 업데이트할 수 있습니다.

aws emr-containers update-role-trust-policy \ --cluster-name cluster \ --namespace namespace \ --role-name iam_role_name_for_job_execution

실행 역할에 대한 액세스 제어

Amazon EKS 클러스터의 관리자는 Amazon EMR on EKS의 멀티 테넌트 가상 클러스터를 생성할 수 있으며, 여기에 IAM 관리자가 여러 실행 역할을 추가할 수 있습니다. 신뢰할 수 없는 테넌트는 이러한 실행 역할을 사용하여 임의 코드를 실행하는 작업을 제출할 수 있으므로, 이러한 실행 역할 중 하나 이상에 할당된 권한을 획득하는 코드를 실행할 수 없도록 테넌트를 제한할 수 있습니다. IAM 관리자는 선택적 Amazon 리소스 이름(ARN) 조건 키(emr-containers:ExecutionRoleArn)를 사용하여 IAM 자격 증명에 연결된 IAM 정책을 제한할 수 있습니다. 이 조건은 다음 권한 정책에서 볼 수 있듯이 가상 클러스터에 대한 권한이 있는 실행 역할 ARN 목록을 수락합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "emr-containers:StartJobRun", "Resource": "arn:aws:emr-containers:REGION:AWS_ACCOUNT_ID:/virtualclusters/VIRTUAL_CLUSTER_ID", "Condition": { "ArnEquals": { "emr-containers:ExecutionRoleArn": [ "execution_role_arn_1", "execution_role_arn_2", ... ] } } } ] }

특정 접두사로 시작하는 모든 실행 역할(예: MyRole)을 허용하려면 조건 연산자 ArnEqualsArnLike 연산자로 바꾸고 조건의 execution_role_arn 값을 와일드카드 * 문자로 바꿀 수 있습니다. 예: arn:aws:iam::AWS_ACCOUNT_ID:role/MyRole*. 다른 모든 ARN 조건 키도 지원됩니다.

참고

Amazon EMR on EKS에서는 태그 또는 속성을 기반으로 실행 역할에 권한을 부여할 수 없습니다. Amazon EMR on EKS는 실행 역할에 대해 TBAC(태그 기반 액세스 제어) 또는 ABAC(속성 기반 액세스 제어)를 지원하지 않습니다.