

# 2단계: AWS Glue에 대한 IAM 역할 생성
<a name="create-an-iam-role"></a>

AWS Glue가 사용자 대신 다른 서비스를 호출할 때 이용할 수 있도록 IAM 역할 권한을 부여해야 합니다. 여기에는 AWS Glue에서 사용하는 소스, 대상, 스크립트 및 임시 디렉터리에 대한 Amazon S3 액세스 권한이 포함됩니다. 크롤러, 작업 및 개발 엔드포인트는 권한이 필요합니다.

AWS Identity and Access Management(IAM)을 사용하여 그러한 권한을 제공합니다. IAM 역할에 정책을 추가하여 AWS Glue에 전달합니다.

****작업 편집기 내에서 IAM 역할을 생성하려면 다음을 수행합니다.****

1. AWS Glue 콘솔에서 작업을 생성할 때 역할 섹션을 찾습니다.

1. **Create new role**(새 역할 생성)을 선택합니다.

1. 인라인 역할 생성 양식이 열리고 다음을 수행할 수 있습니다.
   + **역할 이름**을 지정합니다. 예: `AWSGlueServiceRoleDefault`.
   + 관리형 정책 `AWSGlueServiceRole`이(가) 자동으로 선택됩니다.
   + 신뢰 정책을 검토하여 역할을 수임합니다.
   + 메타데이터에 대한 선택적 태그를 추가합니다.

1. **역할 생성**을 선택합니다.

1. 새로 생성된 역할은 작업에 대해 자동으로 선택됩니다.

또는 IAM 콘솔을 사용하여 역할을 생성할 수 있습니다.

****IAM 콘솔을 사용하여 AWS Glue에 대해 IAM 역할을 생성하려면 다음을 수행합니다.****

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

1. 왼쪽 탐색 창에서 **역할**을 선택합니다.

1. **역할 생성**을 선택합니다.

1.  신뢰할 수 있는 엔터티 유형으로서 **AWS 서비스**를 선택합니다. 그런 다음, 서비스 또는 사용 사례의 경우 **AWS Glue**을(를) 찾아서 선택합니다. **다음**을 선택합니다.

1. **권한 추가** 페이지에서 필요한 권한이 포함된 정책을 선택합니다. 예를 들어 일반 AWS Glue 권한에 대한 AWS 관리형 정책 `AWSGlueServiceRole`와(과) Amazon S3 리소스에 대한 액세스에 대한 AWS 관리형 정책 **AmazonS3FullAccess**가 있습니다. 그리고 **다음**을 선택합니다.
**참고**  
이 역할의 정책 중 하나가 Amazon S3 소스 및 대상에 대한 권한을 보장한다는 것을 확인합니다. 특정 Amazon S3 리소스에 액세스를 위한 자체 정책을 제공하고자 할 수 있습니다. 데이터 원본은 `s3:ListBucket` 및 `s3:GetObject` 권한을 요구합니다. 데이터 대상은 `s3:ListBucket`, `s3:PutObject` 및 `s3:DeleteObject` 권한을 요구합니다. 리소스에 대한 Amazon S3 정책을 생성하는 방법은 [정책에서 리소스 지정](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-arn-format.html)을 참조하세요. Amazon S3 정책 예제는 [IAM 정책 작성하기: Amazon S3 버킷으로의 액세스를 보장하는 방법](https://aws.amazon.com/blogs/security/writing-iam-policies-how-to-grant-access-to-an-amazon-s3-bucket/)을 참조하세요.  
SSE-KMS로 암호화된 Amazon S3 소스 및 대상에 액세스하고자 할 경우, AWS Glue 크롤러, 작업 및 개발 엔드포인트가 데이터를 복호화할 수 있게 허용하는 정책을 연결합니다. 자세한 내용은 [AWS KMS 관리형 키(SSE-KMS)를 사용하는 서버 측 암호화로 데이터 보호](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)를 참조하세요.  
다음은 예입니다.  

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "kms:Decrypt"
         ],
         "Resource": [
           "arn:aws:kms:*:{{111122223333}}:key/{{key-id}}"
         ]
       }
     ]
   }
   ```

1.  역할 이름을 지정하고 설명(선택 사항)을 추가한 다음, 신뢰 정책 및 권한을 검토하세요. [**역할 이름(Role name)**]에 역할 이름을 입력합니다(예: `AWSGlueServiceRoleDefault`). 이름의 접두사가 문자열 `AWSGlueServiceRole`인 역할을 생성하고, 콘솔 사용자가 서비스로 해당 역할을 전달할 수 있도록 합니다. AWS Glue가 제공한 정책에서는 IAM 서비스 역할이 `AWSGlueServiceRole`로 시작될 것으로 예상합니다. 그렇지 않으면 정책을 추가하여 IAM 역할에 대한 `iam:PassRole` 권한을 사용자에게 부여하고 이름 규정과 일치시켜야 합니다. **역할 생성**을 선택합니다.
**참고**  
역할이 있는 노트북을 생성하면 해당 역할이 대화형 세션으로 전달되므로 두 위치에서 동일한 역할을 사용할 수 있습니다. 따라서 `iam:PassRole` 권한은 역할의 정책의 일부여야 합니다.  
다음 예제를 사용하여 역할에 대한 새 정책을 생성합니다. 계정 번호를 사용자의 고유한 역할 이름으로 바꿉니다.  

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "iam:PassRole",
         "Resource": "arn:aws:iam::090000000210:role/<role_name>"
       }
     ]
   }
   ```

1.  규칙에 태그를 추가합니다(선택 사항). 태그는 리소스를 식별, 구성 또는 검색하는 데 도움이 되는 AWS 리소스에 추가할 수 있는 키-값 쌍입니다. 그런 다음 **역할 생성**을 선택합니다.