

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

# Amazon EMR on EKS에 대한 액세스 권한 부여
<a name="setting-up-iam"></a>

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

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

## 새 IAM 정책을 생성하고 IAM 콘솔에서 사용자에게 연결
<a name="setting-up-iam-console"></a>

**새 IAM 정책 생성**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) IAM 콘솔을 엽니다.

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

1. **정책** 페이지에서 **정책 생성**을 선택합니다.

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

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

**사용자 또는 역할에 정책 연결**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) IAM 콘솔을 엽니다.

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

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

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

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

## 가상 클러스터 관리를 위한 권한
<a name="permissions-virtual-cluster"></a>

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

------
#### [ JSON ]

****  

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

------

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에 대한 클러스터 액세스 활성화 자동화](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/setting-up-cluster-access.html#setting-up-cluster-access-cam-integration)를 참조하세요.

 AWS 계정에서 `CreateVirtualCluster` 작업을 처음 호출하는 경우 Amazon EMR on EKS에 대한 서비스 연결 역할을 생성할 수 있는 `CreateServiceLinkedRole` 권한도 필요합니다. 자세한 내용은 [Amazon EMR on EKS에 대한 서비스 연결 역할 사용](using-service-linked-roles.md) 단원을 참조하십시오.

## 작업을 제출하기 위한 권한
<a name="permissions-submitting-jobs"></a>

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

------
#### [ JSON ]

****  

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

------

## 디버깅 및 모니터링을 위한 권한
<a name="permissions-debugging-monitoring"></a>

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

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

------
#### [ JSON ]

****  

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

------

Amazon S3 및 CloudWatch에 로그를 푸시하도록 작업 실행을 구성하는 방법에 대한 자세한 내용은 [S3 로그를 사용하도록 작업 실행 구성 [및 CloudWatch Logs를 사용하도록 작업 실행 구성](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-cloudwatch)을 참조하세요](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-s3).