

# AWS Glue에서 작성한 데이터 암호화
<a name="encryption-security-configuration"></a>

*보안 구성*은 AWS Glue에서 사용할 수 있는 보안 속성의 집합입니다. 보안 구성을 사용하여 미사용 데이터를 암호화할 수 있습니다. 다음 시나리오는 보안 구성을 사용할 수 있는 몇 가지 방법을 보여줍니다.
+ 암호화된 Amazon CloudWatch Logs를 기록할 AWS Glue 크롤러에 보안 구성을 연결합니다. 크롤러에 보안 구성을 첨부하는 방법에 대한 자세한 내용은 [3단계: 보안 설정 구성](define-crawler-configure-security-settings.md) 섹션을 참조하세요.
+ 암호화된 Amazon Simple Storage Service(Amazon S3) 대상과 암호화된 CloudWatch Logs를 기록할 추출, 변환 및 로드(ETL) 작업에 보안 구성을 연결합니다.
+ 암호화된 Amazon S3 데이터로 작업 북마크를 기록할 ETL 작업에 보안 구성을 연결합니다.
+ 암호화된 Amazon S3 대상을 기록할 개발 엔드포인트에 보안 구성을 연결합니다.

**중요**  
현재 보안 구성은 ETL 작업 파라미터로 전달되는 서버 측 암호화(SSE-S3)를 재정의합니다. 따라서 보안 구성과 SSE-S3 파라미터가 모두 작업과 연결된 경우 SSE-S3 파라미터는 무시됩니다.

보안 구성에 대한 자세한 내용은 [AWS Glue 콘솔에서 보안 구성 관리](console-security-configurations.md) 섹션을 참조하세요.

**Topics**
+ [보안 구성을 사용하도록 AWS Glue 설정](#encryption-setup-Glue)
+ [VPC 작업 및 크롤러용 AWS KMS로 가는 경로 생성](#encryption-kms-vpc-endpoint)
+ [AWS Glue 콘솔에서 보안 구성 관리](console-security-configurations.md)

## 보안 구성을 사용하도록 AWS Glue 설정
<a name="encryption-setup-Glue"></a>

다음 단계에 따라 보안 구성을 사용하도록 AWS Glue 환경을 설정합니다.

1. AWS Key Management Service(AWS KMS) 키를 생성하거나 업데이트하여 CloudWatch Logs를 암호화할 AWS Glue 크롤러 및 작업에 전달되는 IAM 역할에 AWS KMS 권한을 부여합니다. 자세한 내용은 *Amazon CloudWatch Logs User Guide*의 [Encrypt Log Data in CloudWatch Logs Using AWS KMS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html)를 참조하세요.

   다음 예에서 {{"role1"}}, {{"role2"}}, {{"role3"}}은 크롤러와 작업에 전달되는 IAM 역할입니다.

   ```
   {
          "Effect": "Allow",
          "Principal": { "Service": "logs.{{region}}.amazonaws.com",
          "AWS": [
                   {{"role1"}},
                   {{"role2"}},
                   {{"role3"}}
                ] },
                       "Action": [
                              "kms:Encrypt*",
                              "kms:Decrypt*",
                              "kms:ReEncrypt*",
                              "kms:GenerateDataKey*",
                              "kms:Describe*"
                       ],
                       "Resource": "*"
   }
   ```

   키를 사용하여 CloudWatch Logs를 암호화하는 경우 `"Service": "logs.{{region}}.amazonaws.com"`과 같이 `Service` 문이 필요합니다.

1. 사용 전에 AWS KMS 키가 `ENABLED` 상태인지 확인합니다.

**참고**  
Iceberg를 데이터 레이크 프레임워크로 사용하는 경우 Iceberg 테이블에는 서버 측 암호화를 활성화하는 자체 메커니즘이 있습니다. AWS Glue의 보안 구성과 함께 이러한 구성을 활성화해야 합니다. Iceberg 테이블에서 서버 측 암호화를 활성화하려면 [Iceberg 설명서](https://iceberg.apache.org/docs/latest/aws/#s3-server-side-encryption)의 지침을 검토하세요.

## VPC 작업 및 크롤러용 AWS KMS로 가는 경로 생성
<a name="encryption-kms-vpc-endpoint"></a>

인터넷을 통해 연결하지 않고 Virtual Private Cloud(VPC)의 프라이빗 엔드포인트를 통해 AWS KMS에 직접 연결할 수 있습니다. VPC 엔드포인트를 사용하는 경우 VPC와 AWS KMS 사이의 통신은 모두 AWS 네트워크에서 수행됩니다.

VPC 안에 AWS KMS VPC 엔드포인트를 생성할 수 있습니다. 이 단계를 거치지 않으면 작업의 `kms timeout` 또는 크롤러의 `internal service exception`에서 작업이나 크롤러가 실패할 수 있습니다. 자세한 지침은 *AWS Key Management Service Developer Guide*의 [Connecting to AWS KMS Through a VPC Endpoint](https://docs.aws.amazon.com/kms/latest/developerguide/kms-vpc-endpoint.html)를 참조하세요.

이러한 설명에 따라 [VPC 콘솔](https://console.aws.amazon.com//vpc)에서 다음을 수행해야 합니다.
+ **프라이빗 DNS 이름 활성화**를 선택합니다.
+ Java Database Connectivity(JDBC)에 액세스하는 작업 또는 크롤러에 사용할 **보안 그룹**(자체 참조 규칙 포함)을 선택합니다. AWS Glue 연결에 대한 자세한 정보는 [데이터에 연결](glue-connections.md) 섹션을 참조하세요.

JDBC 데이터 스토어에 액세스하는 크롤러 또는 작업에 보안 구성을 추가할 때 AWS Glue에 AWS KMS 엔드포인트로 가는 경로가 있어야 합니다. 네트워크 주소 변환(NAT) 게이트웨이 또는 AWS KMS VPC 엔드포인트에 경로를 제공할 수 있습니다. NAT 게이트웨이를 생성하려면 *Amazon VPC 사용 설명서*의 [NAT 게이트웨이](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)를 참조하세요.