

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

# 작업 실행 역할 생성
<a name="creating-job-execution-role"></a>

Amazon EMR on EKS에서 워크로드를 실행하려면 IAM 역할을 생성해야 합니다. 이 설명서에서는 이 역할을 *작업 실행 역할*이라고 합니다. IAM 역할 생성에 대한 자세한 내용은 IAM 사용 설명서에서 [IAM 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html)을 참조하세요.

또한 작업 실행 역할에 대한 권한을 지정하는 IAM 정책을 생성한 다음, IAM 정책을 작업 실행 역할에 연결해야 합니다.

작업 실행 역할에 대한 다음 정책은 리소스 대상, Amazon S3 및 CloudWatch에 대한 액세스를 허용합니다. 이러한 권한은 작업 및 액세스 로그를 모니터링하는 데 필요합니다. AWS CLI를 사용하여 동일한 프로세스를 수행하려면: 

작업 실행을 위한 IAM 역할 만들기: EMR이 작업 실행에 사용할 역할을 만들어 보겠습니다. 이 역할은 EKS에서 실행될 때 EMR 작업이 수행하게 될 역할입니다.

```
cat <<EoF > ~/environment/emr-trust-policy.json
 {
   "Version": "2012-10-17",		 	 	 
   "Statement": [
     {
       "Effect": "Allow",
       "Principal": {
         "Service": "elasticmapreduce.amazonaws.com"
       },
       "Action": "sts:AssumeRole"
     }
   ]
 }
 EoF
  
 aws iam create-role --role-name EMRContainers-JobExecutionRole --assume-role-policy-document file://~/environment/emr-trust-policy.json
```

다음으로 s3 및 cloudwatch에 로그를 쓸 수 있도록 필요한 IAM 정책을 역할에 연결합니다.

```
cat <<EoF > ~/environment/EMRContainers-JobExecutionRole.json
 {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [
                 "s3:PutObject",
                 "s3:GetObject",
                 "s3:ListBucket"
             ],
             "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
         },
         {
             "Effect": "Allow",
             "Action": [
                 "logs:PutLogEvents",
                 "logs:CreateLogStream",
               "logs:DescribeLogGroups",
                 "logs:DescribeLogStreams"
             ],
             "Resource": [
                 "arn:aws:logs:*:*:*"
             ]
         }
     ]
 } 
 EoF
 aws iam put-role-policy --role-name EMRContainers-JobExecutionRole --policy-name EMR-Containers-Job-Execution --policy-document file://~/environment/EMRContainers-JobExecutionRole.json
```

**참고**  
액세스 범위는 적절해야 하며, 작업 실행 역할의 모든 S3 객체에 부여되지 않아야 합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket"
      ],
      "Sid": "AllowS3Putobject"
    },
    {
      "Effect": "Allow",
      "Action": [
        "logs:PutLogEvents",
        "logs:CreateLogStream",
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams"
      ],
      "Resource": [
        "arn:aws:logs:*:*:*"
      ],
      "Sid": "AllowLOGSPutlogevents"
    }
  ]
}
```

------

자세한 내용은 [작업 실행 역할 사용](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/iam-execution-role.html), [S3 로그를 사용하도록 작업 실행 구성](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-s3) 및 [CloudWatch Logs를 사용하도록 작업 실행 구성](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-cloudwatch)을 참조하세요.