Amazon EMR on EKS에 대한 액세스 권한 부여 - Amazon EMR

Amazon EMR on EKS에 대한 액세스 권한 부여

Amazon EMR on EKS에서 수행하는 모든 작업에는 해당 작업에 해당하는 IAM 권한이 필요합니다. Amazon EMR on EKS 작업을 수행하는 데 필요한 IAM 정책을 생성하고 이 정책을 사용하고 있는 IAM 사용자 또는 역할에 연결해야 합니다.

이 주제에서는 새 정책을 생성하여 사용자에게 연결하는 단계를 제공합니다. 또한 여기에서는 Amazon EMR on EKS 환경을 설정하는 데 필요한 기본 권한도 다룹니다. 비즈니스 요구 사항에 따라 가능하면 항상 특정 리소스에 대한 권한을 구체화하는 것이 좋습니다.

새 IAM 정책을 생성하고 IAM 콘솔에서 사용자에게 연결

새 IAM 정책 생성
  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/ 에서 IAM 콘솔을 엽니다.

  2. IAM 콘솔의 왼쪽 탐색 창에서 정책을 선택합니다.

  3. 정책(Policies) 페이지에서 정책 생성(Create Policy)을 선택합니다.

  4. 정책 생성 창에서 JSON 편집 탭으로 이동합니다. 이 절차 다음의 예제와 같이 하나 이상의 JSON 명령문이 포함된 정책 문서를 생성합니다. 다음으로 정책 검토를 선택합니다.

  5. [정책 검토(Review Policy)] 화면에서 [정책 이름(Policy Name)]을 입력합니다(예: AmazonEMROnEKSPolicy). 정책의 이름과 설명(선택 사항)을 입력하고 정책 생성을 선택합니다.

사용자 또는 역할에 정책 연결
  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 Policies를 선택합니다.

  3. 정책 목록에서, 이전 섹션에서 생성한 정책 옆의 확인란을 선택합니다. [Filter] 메뉴와 검색 상자를 사용하여 정책 목록을 필터링할 수 있습니다.

  4. 정책 조치를 선택한 후 연결을 선택합니다.

  5. 정책을 연결할 사용자 또는 역할을 선택합니다. 필터 메뉴와 검색 상자를 사용하면 보안 주체 개체 목록을 필터링할 수 있습니다. 정책을 추가할 사용자 또는 역할을 선택한 후 정책 연결을 선택합니다.

가상 클러스터 관리를 위한 권한

AWS 계정의 가상 클러스터를 관리하려면 다음 권한이 포함된 IAM 정책을 생성합니다. 이러한 권한을 통해 AWS 계정에서 가상 클러스터를 생성, 나열, 설명 및 삭제할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": "emr-containers.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "emr-containers:CreateVirtualCluster", "emr-containers:ListVirtualClusters", "emr-containers:DescribeVirtualCluster", "emr-containers:DeleteVirtualCluster" ], "Resource": "*" } ] }

Amazon EMR은 Amazon EKS 클러스터 액세스 관리(CAM)와 통합되어 있으므로, 필요한 AuthN 및 AuthZ 정책의 구성을 자동화하여 Amazon EKS 클러스터의 네임스페이스에서 Amazon EMR Spark 작업을 실행할 수 있습니다. 이를 수행하려면 다음 권한이 있어야 합니다.

{ "Effect": "Allow", "Action": [ "eks:CreateAccessEntry" ], "Resource": "arn:<AWS_PARTITION>:eks:<AWS_REGION>:<AWS_ACCOUNT_ID>:cluster/<EKS_CLUSTER_NAME>" }, { "Effect": "Allow", "Action": [ "eks:DescribeAccessEntry", "eks:DeleteAccessEntry", "eks:ListAssociatedAccessPolicies", "eks:AssociateAccessPolicy", "eks:DisassociateAccessPolicy" ], "Resource": "arn:<AWS_PARTITION>:eks:<AWS_REGION>:<AWS_ACCOUNT_ID>:access-entry/<EKS_CLUSTER_NAME>/role/<AWS_ACCOUNT_ID>/AWSServiceRoleForAmazonEMRContainers/*" }

자세한 내용은 Amazon EMR on EKS에 대한 클러스터 액세스 활성화 자동화를 참조하세요.

AWS 계정에서 처음으로 CreateVirtualCluster 작업을 간접 호출하는 경우 Amazon EMR on EKS 서비스 연결 역할을 생성하려면 CreateServiceLinkedRole 권한도 필요합니다. 자세한 내용은 Amazon EMR on EKS에 대한 서비스 연결 역할 사용 단원을 참조하십시오.

작업을 제출하기 위한 권한

AWS 계정의 가상 클러스터에 작업을 제출하려면 다음 권한이 포함된 IAM 정책을 생성합니다. 이러한 권한을 통해 계정의 모든 가상 클러스터에 대한 작업 실행을 시작, 나열, 설명 및 취소할 수 있습니다. 작업을 제출하기 전에 가상 클러스터의 상태를 확인할 수 있도록 가상 클러스터를 나열하거나 설명하기 위한 권한을 추가하는 것을 고려해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-containers:StartJobRun", "emr-containers:ListJobRuns", "emr-containers:DescribeJobRun", "emr-containers:CancelJobRun" ], "Resource": "*" } ] }

디버깅 및 모니터링을 위한 권한

Amazon S3 및 CloudWatch로 푸시된 로그에 액세스하거나 Amazon EMR 콘솔에서 애플리케이션 이벤트 로그를 보려면 다음 권한이 포함된 IAM 정책을 생성합니다. 비즈니스 요구 사항에 따라 가능하면 항상 특정 리소스에 대한 권한을 구체화하는 것이 좋습니다.

중요

Amazon S3 버킷을 생성하지 않은 경우 정책 명령문에 s3:CreateBucket 권한을 추가해야 합니다. 로그 그룹을 생성하지 않은 경우 정책 명령문에 logs:CreateLogGroup을 추가해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-containers:DescribeJobRun", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:Get*", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": "*" } ] }

Amazon S3 및 CloudWatch에 로그를 푸시하도록 작업 실행을 구성하는 방법에 대한 자세한 내용은 S3 로그를 사용하도록 작업 실행 구성 및 CloudWatch Logs를 사용하도록 작업 실행 구성을 참조하세요.