

# 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)에 설명된 대로 구성되어야 합니다.