

# AWS Glue에 대한 IAM 권한 설정
<a name="set-up-iam"></a>

이 주제의 지침은 AWS Glue에 대해 AWS Identity and Access Management(IAM) 권한을 빠르게 설정하는 데 도움이 됩니다. 다음 작업을 완료합니다.
+ IAM 자격 증명에 AWS Glue 리소스에 대한 액세스 권한을 부여합니다.
+ 작업 실행, 데이터 액세스, AWS Glue Data Quality 작업 실행을 위한 서비스 역할을 생성합니다.

AWS Glue에 대한 IAM 권한을 사용자 지정하는 데 사용할 수 있는 자세한 지침은 [AWS Glue에 대한 IAM 권한 구성](configure-iam-for-glue.md) 섹션을 참조하세요.

**AWS Management Console에서 AWS Glue에 대한 IAM 권한을 설정하려면**

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

1. **시작하기**를 선택합니다.

1. **AWS Glue에 대한 계정 준비**에서 **IAM 권한 설정**을 선택합니다.

1. AWS Glue 권한을 부여하려는 IAM 자격 증명(역할 또는 사용자)을 선택합니다. AWS Glue에서는 이 자격 증명에 `[AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)` 관리형 정책을 연결합니다. 이러한 권한을 수동으로 설정하거나 기본 서비스 역할만 설정하려는 경우 이 단계를 건너뛸 수 있습니다.

1. **다음**을 선택합니다.

1. 역할 및 사용자에게 필요한 Amazon S3 액세스 수준을 선택합니다. 이 단계에서 선택한 옵션은 선택한 모든 자격 증명에 적용됩니다.

   1. **S3 위치 선택**에서 액세스 권한을 부여하려는 Amazon S3 위치를 선택합니다.

   1. 다음으로, 이전에 선택한 위치에 대해 자격 증명에 **읽기 전용(권장)** 또는 **읽기 및 쓰기** 액세스 권한을 부여할지 선택합니다. AWS Glue에서는 선택한 위치 및 읽기 또는 쓰기 권한의 조합을 기반으로 자격 증명에 권한 정책을 추가합니다.

      다음 테이블에는 Amazon S3 액세스를 위해 AWS Glue에서 연결하는 권한이 나와 있습니다.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/glue/latest/dg/set-up-iam.html)

1. **다음**을 선택합니다.

1. 사용자 계정의 기본 AWS Glue 서비스 역할을 선택합니다. 서비스 역할은 사용자를 대신하여 다른 AWS 서비스의 리소스에 액세스하기 위해 AWS Glue에서 사용하는 IAM 역할입니다. 자세한 내용은 [AWS Glue의 서비스 역할](security_iam_service-with-iam.md#security_iam_service-with-iam-roles-service) 섹션을 참조하세요.
   + 표준 AWS Glue 서비스 역할을 선택하면 AWS Glue는 AWS 계정에서 이름이 `AWSGlueServiceRole`이고 다음 관리형 정책이 연결된 새 IAM 역할을 생성합니다. 사용자 계정에 이름이 `AWSGlueServiceRole`인 IAM 역할이 이미 있는 경우 AWS Glue는 이러한 정책을 기존 역할에 연결합니다.
     +  [ AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole) - 이 관리형 정책은 AWS Glue에서 사용자를 대신하여 리소스에 액세스하고 관리하는 데 필요합니다. 이를 통해 AWS Glue 작업, 크롤러 및 연결과 같은 다양한 리소스를 AWS Glue에서 생성, 업데이트 및 삭제할 수 있습니다. 또한 이 정책은 로깅 목적으로 Amazon CloudWatch 로그에 액세스할 수 있는 권한을 AWS Glue에 부여합니다. 시작하기 위해 AWS Glue를 사용하는 방법을 알아보도록 이 정책을 사용하는 것이 좋습니다. AWS Glue에 더 익숙해지면 필요에 따라 리소스에 대한 액세스를 미세 조정할 수 있는 정책을 생성할 수 있습니다.
     +  [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess) - 이 관리형 정책은 AWS Management Console을 통해 AWS Glue 서비스에 대한 전체 액세스 권한을 부여합니다. 이 정책은 AWS Glue 내에서 모든 작업을 수행할 수 있는 권한을 부여하므로 필요에 따라 모든 AWS Glue 리소스를 생성, 수정 및 삭제할 수 있습니다. 그러나 이 정책은 ETL 프로세스에 관여할 수 있는 기본 데이터 스토어 또는 기타 AWS 서비스에 액세스할 수 있는 권한을 부여하지 않는다는 점에 유의해야 합니다. `AWSGlueConsoleFullAccess` 정책은 광범위한 권한을 부여하므로 최소 권한 원칙에 따라 신중하게 할당해야 합니다. 가능하다면 특정 사용 사례와 요구 사항에 맞게 더욱 세부적인 정책을 만들고 사용하는 것이 좋습니다.
     +  [ AWSGlueConsole-S3-read-only-policy](https://console.aws.amazon.com/iam/home#policies/details/arn:aws:iam:aws:policy/AWSGlueConsole-S3-read-only-policy) – 이 정책은 AWS Glue가 지정된 Amazon S3 버킷에서 데이터를 읽을 수 있도록 허용하지만 Amazon S3에서 데이터를 쓰거나 수정할 수 있는 권한은 부여하지 않습니다.

        [ AWSGlueConsole-S3-read-and-write](https://console.aws.amazon.com/iam/home#policies/details/arn:aws:iam:aws:policy/AWSGlueConsole-S3-read-and-write) – 이 정책은 AWS Glue가 ETL 프로세스의 일부로 지정된 Amazon S3 버킷에 데이터를 읽고 쓸 수 있도록 허용합니다.
   +  기존 IAM 역할을 선택하면 AWS Glue는 역할을 기본값으로 설정하지만 역할에 `AWSGlueServiceRole` 권한을 추가하지는 않습니다. AWS Glue에 대한 서비스 역할로 사용하도록 역할을 구성했는지 확인합니다. 자세한 내용은 [1단계: AWS Glue 서비스를 위한 IAM 정책 생성](create-service-policy.md) 및 [2단계: AWS Glue에 대한 IAM 역할 생성](create-an-iam-role.md)(을)를 참조하세요.

1. **다음**을 선택합니다.

1. 마지막으로, 선택한 권한을 검토하고 **변경 사항 적용**을 선택합니다. 변경 사항을 적용하면 AWS Glue는 선택한 자격 증명에 IAM 권한을 추가합니다. 새 권한은 IAM 콘솔([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/))에서 확인하거나 수정할 수 있습니다.

이제 AWS Glue에 대한 최소 IAM 권한 설정을 완료했습니다. 프로덕션 환경에서는 사용 사례에 사용할 AWS 리소스를 확보할 수 있도록 [AWS Glue의 보안](security.md) 및 [AWS Glue의 Identity and Access Management](security-iam.md)에 익숙해지는 것이 좋습니다.

## 다음 단계
<a name="set-up-iam-next-steps"></a>

이제 IAM 권한을 설정했으므로 AWS Glue 사용을 시작하기 위해 다음 주제를 탐색해볼 수 있습니다.
+ [Getting Started with AWS Glue in AWS Skill Builder](https://explore.skillbuilder.aws/learn/course/external/view/elearning/8171/getting-started-with-aws-glue)
+ [AWS Glue Data Catalog 시작하기](start-data-catalog.md)

# AWS Glue Studio에 대한 설정
<a name="setting-up-studio"></a>

시각적 ETL에 대한 AWS Glue을(를) 처음 사용하는 경우 이 섹션의 작업을 완료합니다.

**Topics**
+ [AWS Glue Studio 사용자에게 필요한 IAM 권한 검토](getting-started-min-privs.md)
+ [ETL 작업에 필요한 IAM 권한 검토](getting-started-min-privs-job.md)
+ [AWS Glue Studio에 대한 IAM 권한 설정](getting-started-iam-permissions.md)
+ [ETL 작업에 사용할 VPC 구성](getting-started-vpc-config.md)

# AWS Glue Studio 사용자에게 필요한 IAM 권한 검토
<a name="getting-started-min-privs"></a>

AWS Glue Studio를 사용하려면 사용자가 다양한 AWS 리소스에 액세스할 수 있어야 합니다. 사용자는 Amazon S3 버킷, IAM 정책 및 역할, AWS Glue Data Catalog 객체를 보고 선택할 수 있어야 합니다.

## AWS Glue 서비스 권한
<a name="getting-started-min-privs-glue"></a>

AWS Glue Studio는 AWS Glue 서비스의 작업과 리소스를 사용합니다. AWS Glue Studio를 효과적으로 사용하려면 사용자에게 이러한 작업과 리소스에 대한 권한이 필요합니다. AWS Glue Studio 사용자에게 `AWSGlueConsoleFullAccess` 관리형 정책을 부여하거나 더 작은 권한 집합으로 사용자 지정 정책을 생성할 수 있습니다.

**중요**  
보안 모범 사례에 따라 Amazon S3 버킷 및 Amazon CloudWatch 로그 그룹에 대한 액세스를 추가로 제한하는 정책을 강화하여 액세스를 제한하는 것이 좋습니다. Amazon S3 정책 예제는 [IAM 정책 작성하기: Amazon S3 버킷으로의 액세스를 보장하는 방법](https://aws.amazon.com/blogs/security/writing-iam-policies-how-to-grant-access-to-an-amazon-s3-bucket/)을 참조하세요.

## AWS Glue Studio에 대한 사용자 지정 IAM 정책 생성
<a name="getting-started-all-gs-privs"></a>

AWS Glue Studio에 대한 더 작은 권한 집합을 포함하는 사용자 지정 정책을 생성할 수 있습니다. 이 정책에서는 객체 또는 작업의 하위 집합에 대한 권한을 부여할 수 있습니다. 사용자 지정 정책을 생성할 때는 다음 정보를 사용합니다.

 AWS Glue Studio API를 사용하려면 IAM 권한 내의 작업 정책에 `glue:UseGlueStudio`를 포함합니다. `glue:UseGlueStudio`를 사용하면 시간이 지남에 따라 API에 더 많은 작업이 추가되는 경우에도 모든 AWS Glue Studio 작업을 수행할 수 있습니다.

 AWS Glue에서 정의한 작업에 대한 자세한 내용은 [AWS Glue에서 정의한 작업](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsglue.html)을 참조하세요.

 **데이터 준비 작성 작업** 
+ SendRecipeAction
+ GetRecipeAction

 **DAG(방향성 비순환 그래프) 작업** 
+ CreateDag
+ UpdateDag
+ GetDag
+ DeleteDag

 **작업** 
+ SaveJob
+ GetJob
+ CreateJob
+ DeleteJob
+ GetJobs
+ UpdateJob

 **작업 실행 옵션** 
+ StartJobRun
+ GetJobRuns
+ BatchStopJobRun
+ GetJobRun
+ QueryJobRuns
+ QueryJobs
+ QueryJobRunsAggregated

 **스키마 작업** 
+ GetSchema
+ GetInferredSchema

 **데이터베이스 작업** 
+ GetDatabases

 **계획 작업** 
+ GetPlan

 **테이블 작업** 
+ SearchTables
+ GetTables
+ GetTable

 **연결 작업** 
+ CreateConnection
+ DeleteConnection
+ UpdateConnection
+ GetConnections
+ GetConnection

 **매핑 작업** 
+ GetMapping

 **S3 프록시 작업**
+ ListBuckets
+ ListObjectsV2
+ GetBucketLocation

**보안 구성 작업**
+ GetSecurityConfigurations 

**스크립트 작업**
+ CreateScript(AWS Glue에서 같은 이름의 API와 다름)

## AWS Glue Studio API에 액세스
<a name="getting-started-glue-studio-apis"></a>

 AWS Glue Studio에 액세스하려면 IAM 권한 내의 작업 정책 목록에 `glue:UseGlueStudio`를 추가합니다.

 아래 예제에서는 `glue:UseGlueStudio`가 작업 정책에 포함되어 있지만 AWS Glue Studio API는 개별적으로 식별되지 않습니다. 그 이유는 `glue:UseGlueStudio`를 포함하면 IAM 권한 내의 개별 AWS Glue Studio API를 지정하지 않아도 내부 API에 대한 액세스 권한이 사용자에게 자동으로 부여되기 때문입니다.

 이 예제에서 나열된 추가 작업 정책(예: `glue:SearchTables`)은 AWS Glue Studio API가 아니며, 따라서 필요에 따라 IAM 권한에 포함되어야 합니다. 부여할 Amazon S3 액세스 수준을 지정할 때 Amazon S3 프록시 작업을 포함할 수도 있습니다. 아래 예제 정책에서는 AWS Glue Studio를 열고, 시각적 작업을 생성하고 선택한 IAM 역할에 충분한 액세스 권한이 있는 경우 이를 저장/실행하는 액세스 권한을 제공합니다.

## 노트북 및 데이터 미리 보기 권한
<a name="getting-started-data-preview-perms"></a>

데이터 미리 보기와 노트북을 사용하면 작업을 실행하지 않고도 작업의 모든 스테이지(읽기, 변환, 쓰기)에서 데이터 샘플을 볼 수 있습니다. 데이터에 액세스할 때 사용할 AWS Glue Studio에 대한 AWS Identity and Access Management(IAM) 역할을 지정합니다. IAM 역할은 수임 가능하도록 설계되었으며 암호 또는 액세스 키와 같은 표준 장기 자격 증명이 연결되어 있지 않습니다. 대신, AWS Glue Studio가 역할을 수임할 때 IAM은 임시 보안 자격 증명을 제공합니다.

데이터 미리 보기와 노트북 명령이 올바르게 작동하려면 이름이 `AWSGlueServiceRole` 문자열로 시작하는 역할을 사용합니다. 역할에 다른 이름을 사용하려는 경우 `iam:passrole` 권한을 추가하고 IAM에서 해당 역할에 대한 정책을 구성해야 합니다. 자세한 내용은 [역할에 대해 ‘AWSGlueServiceRole\$1’이라는 이름이 아닌 IAM 정책 생성](getting-started-iam-permissions.md#create-iam-policy) 섹션을 참조하세요.

**주의**  
역할이 노트북에 대한 `iam:passrole` 권한을 부여하고 역할 체인을 구현하는 경우 사용자가 의도하지 않게 노트북에 액세스하게 될 수 있습니다. 노트북에 대한 액세스 권한이 부여된 사용자를 모니터링할 수 있는 감사는 현재 구현되어 있지 않습니다.

IAM ID가 데이터 미리 보기 세션을 생성하지 못하게 하려면 [ID가 데이터 미리 보기 세션을 생성하지 못하게 하기](security_iam_id-based-policy-examples.md#deny-data-preview-sessions-per-identity) 섹션의 다음 예제를 참조하세요.

## Amazon CloudWatch 권한
<a name="getting-started-min-privs-cloudwatch"></a>

AWS Glue에서 원시 데이터를 수집한 후 판독이 가능한 지표로 실시간에 가깝게 처리하는 Amazon CloudWatch를 사용하여 AWS Glue Studio 작업을 모니터링할 수 있습니다. 기본적으로 AWS Glue 지표 데이터는 CloudWatch에 자동으로 전송됩니다. 자세한 내용은 *Amazon CloudWatch User Guide*의 [What Is Amazon CloudWatch?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html)와 *AWS Glue Developer Guide*의 [AWS Glue Metrics](https://docs.aws.amazon.com/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html#awsglue-metrics)를 참조하세요.

CloudWatch 대시보드에 액세스하려면 AWS Glue Studio에 액세스하는 사용자에게 다음 중 하나가 필요합니다.
+ `AdministratorAccess` 정책
+ `CloudWatchFullAccess` 정책
+ 다음과 같은 특정 권한 중 하나 이상을 포함하는 사용자 지정 정책:
  + 대시보드 보기를 위한 `cloudwatch:GetDashboard` 및 `cloudwatch:ListDashboards`
  + 대시보드를 생성하거나 수정하는 `cloudwatch:PutDashboard`
  + 대시보드를 삭제하는 `cloudwatch:DeleteDashboards`

정책을 사용하여 IAM 사용자의 권한 변경에 대한 자세한 내용은 *IAM User Guide*의 [Changing Permissions for an IAM User](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html)를 참조하세요.

# ETL 작업에 필요한 IAM 권한 검토
<a name="getting-started-min-privs-job"></a>

AWS Glue Studio를 사용하여 작업을 생성하는 경우 작업은 생성 시 지정한 IAM 역할의 권한을 갖게 됩니다. 이 IAM 역할은 데이터 원본에서 데이터를 추출하고, 대상에 데이터를 쓰고, AWS Glue 리소스에 액세스할 수 있는 권한이 있어야 합니다.

작업을 위해 생성하는 역할의 이름이 `AWSGlueServiceRole` 문자열로 시작해야 AWS Glue Studio에서 올바르게 사용할 수 있습니다. 예를 들어 역할 이름을 `AWSGlueServiceRole-FlightDataJob`으로 지정할 수 있습니다.

## 데이터 원본 및 데이터 대상 권한
<a name="getting-started-min-privs-data"></a>

AWS Glue Studio 작업에서 사용하는 모든 소스, 대상, 스크립트, 임시 디렉터리를 위해 작업이 Amazon S3에 액세스할 수 있어야 합니다. 특정 Amazon S3 리소스에 대한 세분화된 액세스를 제공하는 정책을 생성할 수 있습니다.
+ 데이터 원본은 `s3:ListBucket` 및 `s3:GetObject` 권한을 요구합니다.
+ 데이터 대상은 `s3:ListBucket`, `s3:PutObject` 및 `s3:DeleteObject` 권한을 요구합니다.

**참고**  
 IAM 정책은 변환 호스팅 AWS Glue 변환에 사용되는 특정 버킷에 대한 `s3:GetObject`을(를) 허용해야 합니다.  
 다음 버킷은 AWS 서비스 계정이 소유하며 전 세계에서 읽을 수 있습니다. 이러한 버킷은 AWS Glue Studio 비주얼 에디터를 통해 액세스할 수 있는 변환의 하위 집합과 관련된 소스 코드의 저장소 역할을 합니다. 버킷에 대한 권한은 버킷에서의 다른 API 작업을 거부하도록 설정됩니다. 변환을 위해 제공하는 스크립트는 누구나 읽을 수 있지만, 서비스 팀 외부의 누구도 스크립트에 내용을 “입력”할 수 없습니다. AWS Glue 작업이 실행되면 해당 파일을 로컬 가져오기로 불러와서 로컬 컨테이너로 다운로드합니다. 이후에는 해당 계정과 더 이상 통신할 수 없습니다.

 지역: 버킷 이름 
+ af-south-1: aws-glue-studio-transforms-762339736633-prod-af-south-1
+ ap-east-1: aws-glue-studio-transforms-125979764932-prod-ap-east-1
+ ap-northeast-2: aws-glue-studio-transforms-673535381443-prod-ap-northeast-2
+ ap-northeast-3: aws-glue-studio-transforms-149976050262-prod-ap-northeast-3
+ ap-south-1: aws-glue-studio-transforms-584702181950-prod-ap-south-1
+ ap-south-2: aws-glue-studio-transforms-380279651983-prod-ap-south-2
+ ap-southeast-1: aws-glue-studio-transforms-737106620487-prod-ap-southeast-1
+ ap-southeast-2: aws-glue-studio-transforms-234881715811-prod-ap-southeast-2
+ ap-southeast-3: aws-glue-studio-transforms-151265630221-prod-ap-southeast-3
+ ap-southeast-4: aws-glue-studio-transforms-052235663858-prod-ap-southeast-4
+ ca-central-1: aws-glue-studio-transforms-622716468547-prod-ca-central-1
+ ca-west-1: aws-glue-studio-transforms-915795495192-prod-ca-west-1
+ eu-central-1: aws-glue-studio-transforms-560373232017-prod-eu-central-1
+ eu-central-2: aws-glue-studio-transforms-907358657121-prod-eu-central-2
+ eu-north-1: aws-glue-studio-transforms-312557305497-prod-eu-north-1
+ eu-south-1: aws-glue-studio-transforms-939684186351-prod-eu-south-1
+ eu-south-2: aws-glue-studio-transforms-239737454084-prod-eu-south-2
+ eu-west-1: aws-glue-studio-transforms-244479516193-prod-eu-west-1
+ eu-west-2: aws-glue-studio-transforms-804222392271-prod-eu-west-2
+ eu-west-3: aws-glue-studio-transforms-371299348807-prod-eu-west-3
+ il-central-1: aws-glue-studio-transforms-806964611811-prod-il-central-1
+ me-central-1: aws-glue-studio-transforms-733304270342-prod-me-central-1
+ me-south-1: aws-glue-studio-transforms-112120182341-prod-me-south-1
+ sa-east-1: aws-glue-studio-transforms-881619130292-prod-sa-east-1
+ us-east-1: aws-glue-studio-transforms-510798373988-prod-us-east-1
+ us-east-2: aws-glue-studio-transforms-251189692203-prod-us-east-2
+ us-west-1: aws-glue-studio-transforms-593230150239-prod-us-west-1
+ us-west-2: aws-glue-studio-transforms-818035625594-prod-us-west-2
+ ap-northeast-1: aws-glue-studio-transforms-200493242866-prod-ap-northeast-1
+ cn-north-1: aws-glue-studio-transforms-071033555442-prod-cn-north-1
+ cn-northwest-1: aws-glue-studio-transforms-070947029561-prod-cn-northwest-1
+ us-gov-west-1: aws-glue-studio-transforms-227493901923-prod-us-gov-west-1-2604
+ eusc-de-east-1: aws-glue-studio-transforms-780995497573-prod-eusc-de-east-1-555

Amazon Redshift를 데이터 원본으로 선택하면 클러스터 권한에 대한 역할을 제공할 수 있습니다. Amazon Redshift 클러스터에 대해 실행되는 작업은 임시 자격 증명을 사용하여 임시 스토리지용 Amazon S3에 액세스하는 명령을 실행합니다. 작업이 1시간 이상 실행되면 이러한 자격 증명이 만료되어 작업이 실패합니다. 이 문제를 방지하기 위해 임시 자격 증명을 사용하여 작업에 필요한 권한을 부여하는 역할을 Amazon Redshift 클러스터 자체에 할당할 수 있습니다. 자세한 내용은 *AWS Glue Developer Guide*의 [Moving Data to and from Amazon Redshift](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-redshift.html)를 참조하세요.

작업이 Amazon S3 이외의 데이터 원본 또는 대상을 사용하는 경우 이러한 데이터 원본 및 대상에 액세스하기 위해 작업에서 사용하는 IAM 역할에 필요한 권한을 연결해야 합니다. 자세한 내용은 *AWS Glue Developer Guide*의 [Setting Up Your Environment to Access Data Stores](https://docs.aws.amazon.com/glue/latest/dg/start-connecting.html)를 참조하세요.

데이터 스토어에 커넥터 및 연결을 사용하는 경우 [커넥터 사용에 필요한 권한](#getting-started-min-privs-connectors)에 설명된 대로 추가 권한이 필요합니다.

## 작업 삭제에 필요한 권한
<a name="getting-started-min-privs-delete-job"></a>

AWS Glue Studio의 콘솔에서 여러 작업을 선택하여 삭제할 수 있습니다. 이 작업을 수행하려면 `glue:BatchDeleteJob` 권한이 있어야 합니다. 이는 작업 삭제에 `glue:DeleteJob` 권한이 필요한 AWS Glue 콘솔과 다릅니다.

## AWS Key Management Service 권한
<a name="getting-started-min-privs-kms"></a>

AWS Key Management Service(AWS KMS)에서 서버 측 암호화를 사용하는 Amazon S3 소스 및 대상에 액세스하려는 경우 작업에 사용되는 AWS Glue Studio 역할에 작업에서 데이터를 복호화할 수 있도록 하는 정책을 연결합니다. 작업 역할에는 `kms:ReEncrypt`, `kms:GenerateDataKey` 및 `kms:DescribeKey` 권한이 필요합니다. 또한 작업 역할에는 AWS KMS 고객 마스터 키(CMK)로 암호화된 Amazon S3 객체를 업로드하거나 다운로드할 수 있는 `kms:Decrypt` 권한이 필요합니다.

AWS KMS CMK를 사용하면 추가 요금이 부과됩니다. 자세한 내용은 *AWS Key Management Service Developer Guide*의 [AWS Key Management Service Concepts - Customer Master Keys (CMKs)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys) 및 [AWS Key Management Service Pricing](https://aws.amazon.com/kms/pricing)을 참조하세요.

## 커넥터 사용에 필요한 권한
<a name="getting-started-min-privs-connectors"></a>

AWS Glue 사용자 정의 커넥터 및 연결을 사용하여 데이터 스토어에 액세스하는 경우 AWS Glue ETL 작업을 실행하는 데 사용되는 역할에 연결된 추가 권한이 필요합니다.
+ AWS Marketplace에서 구입한 커넥터 액세스를 위한 AWS 관리형 정책 `AmazonEC2ContainerRegistryReadOnly`.
+ `glue:GetJob` 및 `glue:GetJobs` 권한.
+ 연결에 사용되는 보안 암호 액세스를 위한 AWS Secrets Manager 권한. 예제 IAM 정책을 보려면 [예: 보안 암호 값을 검색할 수 있는 권한](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html#auth-and-access_examples_read)을 참조하세요.

AWS Glue ETL 작업이 Amazon VPC를 실행하는 VPC 내에서 실행되는 경우 VPC는 [ETL 작업에 사용할 VPC 구성](getting-started-vpc-config.md)에 설명된 대로 구성되어야 합니다.

# AWS Glue Studio에 대한 IAM 권한 설정
<a name="getting-started-iam-permissions"></a>

AWS 관리자 사용자를 사용하여 역할을 생성하고 사용자 및 작업 역할에 정책을 할당할 수 있습니다.

**AWSGlueConsoleFullAccess** AWS 관리형 정책을 사용하여 AWS Glue Studio 콘솔 사용에 필요한 권한을 제공할 수 있습니다.

자체 정책을 생성하려면 *AWS Glue Developer Guide*의 [Create an IAM Policy for the AWS Glue Service](https://docs.aws.amazon.com/glue/latest/dg/create-service-policy.html)에 설명된 단계를 따릅니다. 이전에 [AWS Glue Studio 사용자에게 필요한 IAM 권한 검토](getting-started-min-privs.md)에서 설명한 IAM 권한을 포함합니다.

**Topics**
+ [AWS Glue Studio 사용자에게 정책을 연결합니다.](#attach-iam-policy)
+ [역할에 대해 ‘AWSGlueServiceRole\$1’이라는 이름이 아닌 IAM 정책 생성](#create-iam-policy)

## AWS Glue Studio 사용자에게 정책을 연결합니다.
<a name="attach-iam-policy"></a>

AWS Glue Studio 콘솔에 로그인하는 모든 AWS 사용자에게 특정 리소스에 액세스할 수 있는 권한이 있어야 합니다. 사용자에게 IAM 정책을 할당하여 해당 권한을 제공합니다.

****AWSGlueConsoleFullAccess** 관리형 정책을 사용자에 연결**

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

1. 탐색 창에서 **정책**을 선택합니다.

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

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

1. 정책을 연결하려는 사용자를 선택합니다. **필터** 메뉴와 검색 상자를 사용하면 보안 주체 개체 목록을 필터링할 수 있습니다. 정책을 추가할 사용자를 선택한 다음 [**Attach policy(정책 추가)**]를 선택합니다.

1. 필요에 따라 이전 단계를 반복하여 사용자에게 추가 정책을 연결합니다.

## 역할에 대해 ‘AWSGlueServiceRole\$1’이라는 이름이 아닌 IAM 정책 생성
<a name="create-iam-policy"></a>

**AWS Glue Studio에서 사용하는 역할에 대한 IAM 정책 구성**

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

1. 새 IAM 정책을 추가합니다. 기존 정책에 추가하거나 새 IAM 인라인 정책을 생성할 수 있습니다. IAM 정책 생성

   1. **정책**을 선택한 후 **정책 생성**을 선택합니다. **시작** 버튼이 표시되면 이 버튼을 선택한 다음 **정책 생성**을 선택합니다.

   1. [**Create Your Own Policy**] 옆의 [**Select**]를 선택합니다.

   1. **정책 이름**에 나중에 쉽게 참조할 수 있는 값을 입력합니다. 선택적으로, **설명**에 설명을 입력합니다.

   1. **정책 문서**에 다음 형식의 정책 설명을 입력한 다음, **정책 생성**을 선택합니다.

1. 다음 블록을 복사하여 'Statement' 배열 아래의 정책에 붙여넣습니다. 이때 *my-interactive-session-role-prefix*를 AWS Glue에 대한 권한과 연결할 모든 공통 역할의 접두사로 바꿉니다.

   ```
   {
       "Action": [
           "iam:PassRole"
       ],
       "Effect": "Allow",
       "Resource": "arn:aws:iam::*:role/my-interactive-session-role-prefix*",
       "Condition": {
           "StringLike": {
               "iam:PassedToService": [
                   "glue.amazonaws.com "
               ]
           }
       }
   }
   ```

    다음은 정책에 포함된 Version 및 Statement 배열의 전체 예입니다.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Action": [
           "iam:PassRole"
         ],
         "Effect": "Allow",
         "Resource": "arn:aws:iam::*:role/my-interactive-session-role-prefix*",
         "Condition": {
           "StringLike": {
             "iam:PassedToService": [
               "glue.amazonaws.com "
             ]
           }
         }
       }
     ]
   }
   ```

------

1. 사용자에게 정책을 활성화하려면 **사용자**를 선택합니다.

1. 정책을 연결하려는 사용자를 선택합니다.

# ETL 작업에 사용할 VPC 구성
<a name="getting-started-vpc-config"></a>

Amazon Virtual Private Cloud(Amazon VPC)를 사용하면 AWS 클라우드 내에서 논리적으로 격리된 자체 영역에 *Virtual Private Cloud(VPC)*라고 하는 가상 네트워크를 정의할 수 있습니다. 인스턴스와 같은 AWS 리소스를 VPC에서 시작할 수 있습니다. VPC는 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사하지만 AWS의 확장 가능한 인프라를 사용한다는 이점을 제공합니다. 해당 IP 주소 범위를 선택하고, 서브넷을 만든 후 라우팅 테이블, 네트워크 게이트웨이 및 보안 설정을 구성하여 VPC를 구성할 수 있습니다. VPC의 인스턴스를 인터넷에 연결합니다. VPC를 사내 데이터 센터에 연결하여 AWS 클라우드에서 데이터 센터를 확장할 수 있습니다. 각의 서브넷에서 리소스를 보호하기 위해 보안 그룹 및 네트워크 액세스 제어 목록을 포함한 다중 보안 계층을 사용할 수 있습니다. 자세한 내용은 [Amazon VPC 사용 설명서](https://docs.aws.amazon.com/vpc/latest/userguide/)를 참조하세요.

커넥터를 사용할 때 VPC 내에서 실행되도록 AWS Glue ETL 작업을 구성할 수 있습니다. 필요에 따라 다음에 대해 VPC를 구성해야 합니다.
+ AWS에 없는 데이터 스토어에 대한 퍼블릭 네트워크 액세스. 작업이 액세스한 모든 데이터 스토어는 VPC 서브넷에서 사용 가능해야 합니다.
+ 작업에서 VPC 리소스와 퍼블릭 인터넷에 모두 액세스해야 할 경우 VPC 내부 네트워크 주소 변환(NAT) 게이트웨이가 VPC에 있어야 합니다.

  자세한 내용은 *AWS Glue Developer Guide*의 [Setting Up Your Environment to Access Data Stores](https://docs.aws.amazon.com/glue/latest/dg/start-connecting.html)를 참조하세요.

# AWS Glue Studio에서 노트북 시작하기
<a name="notebook-getting-started"></a>

 AWS Glue Studio를 통해 노트북을 시작하는 경우 데이터를 탐색하고 몇 초 만에 작업 스크립트 개발을 시작할 수 있도록 모든 구성 단계가 완료됩니다.

 다음 섹션에서는 ETL 작업에 대해 AWS Glue Studio에서 노트북을 사용하기 위해 역할을 생성하고 적절한 권한을 부여하는 방법을 설명합니다.

 AWS Glue에서 정의한 작업에 대한 자세한 내용은 [AWS Glue에서 정의한 작업](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsglue.html)을 참조하세요.

**Topics**
+ [IAM 역할에 권한 부여](#studio-notebook-permissions)

## IAM 역할에 권한 부여
<a name="studio-notebook-permissions"></a>

 AWS Glue Studio 설정은 노트북을 사용하기 위한 전제 조건입니다.

AWS Glue에서 노트북을 사용하려면 역할에 다음이 필요합니다.
+  `sts:AssumeRole` 작업(및 태그 지정을 원할 경우 `sts:TagSession` 작업)을 수행하기 위한 AWS Glue와의 신뢰 관계 
+  노트북, AWS Glue 및 대화형 세션에 대한 모든 권한을 포함하는 IAM 정책.
+  전달 역할에 대한 IAM 정책(역할이 노트북에서 대화형 세션으로 전달될 수 있어야 하기 때문) 

 예를 들어 새 역할을 생성할 때 역할에 `AWSGlueConsoleFullAccessRole`과 같은 표준 AWS 관리형 정책을 추가한 후 노트북 작업에 대한 새 정책과 IAM PassRole 정책에 대한 다른 새 정책을 추가할 수 있습니다.

### AWS Glue와의 신뢰 관계에 필요한 작업
<a name="create-notebook-permissions-trust"></a>

 노트북 세션을 시작할 때 노트북에 전달되는 역할의 신뢰 관계에 `sts:AssumeRole`을 추가해야 합니다. 세션에 태그가 포함되어 있는 경우 `sts:TagSession` 작업도 전달해야 합니다. 이러한 작업이 없으면 노트북 세션을 시작할 수 없습니다.

 예제: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "glue.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

### 노트북의 IAM 권한을 포함하는 정책
<a name="create-notebook-permissions-operations"></a>

 다음 샘플 정책은 노트북에 대한 필수적인 AWS IAM 권한을 설명합니다. 새 역할을 생성하는 경우 다음을 포함하는 정책을 생성합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:StartNotebook",
        "glue:TerminateNotebook",
        "glue:GlueNotebookRefreshCredentials",
        "glue:DeregisterDataPreview",
        "glue:GetNotebookInstanceStatus",
        "glue:GlueNotebookAuthorize"
      ],
      "Resource": "*"
    }
  ]
}
```

------

 다음 IAM 정책을 사용하여 특정 리소스에 대한 액세스를 허용할 수 있습니다.
+  *AwsGlueSessionUserRestrictedNotebookServiceRole*: 세션을 제외한 모든 AWS Glue 리소스에 대한 전체 액세스 권한을 제공합니다. 사용자가 자신과 연결된 노트북 세션만 생성하고 사용할 수 있도록 허용합니다. 이 정책에는 다른 AWS 서비스에서 AWS Glue 리소스를 관리하는 데 AWS Glue에서 필요한 기타 권한도 포함됩니다.
+  *AwsGlueSessionUserRestrictedNotebookPolicy*: 사용자가 자신과 연결된 노트북 세션만 생성하고 사용할 수 있도록 허용하는 권한을 제공합니다. 이 정책에는 제한된 AWS Glue 세션 역할을 사용자가 전달할 수 있도록 명시적으로 허용하는 권한도 포함되어 있습니다.

### 역할을 전달하는 IAM 정책
<a name="create-notebook-permissions-pass-role"></a>

 역할이 있는 노트북을 생성하면 해당 역할이 대화형 세션으로 전달되므로 두 위치에서 동일한 역할을 사용할 수 있습니다. 따라서 `iam:PassRole` 권한은 역할의 정책의 일부여야 합니다.

 다음 예제를 사용하여 역할에 대한 새 정책을 생성합니다. 계정 번호를 사용자의 고유한 역할 이름으로 바꿉니다.

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

****  

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

------