설명
Glue Data Catalog에는 메타데이터와 데이터 소스 연결 정보가 저장됩니다. 카탈로그 저장 암호화와 연결 비밀번호 보호는 서로 독립적인 설정이므로 함께 검토해야 합니다.
return_connection_password_encrypted = true는 GetConnection과 GetConnections 응답에서도 비밀번호를 암호화된 상태로 유지합니다. 카탈로그 암호화만 켜는 것으로 이 보호를 대신할 수 없습니다. 카탈로그 암호화를 활성화하고 고객 관리형 키를 지정하지 않으면 AWS 관리형 KMS 키를 사용할 수 있습니다.
잠재적 영향
메타데이터나 연결 비밀번호의 보호가 부족하면 저장 정보 또는 조회 응답에 접근한 주체에게 민감한 값이 노출될 수 있습니다. 반대로 필요한 KMS 권한을 제거하거나 키를 사용할 수 없게 하면 카탈로그 조회와 데이터 처리 작업이 실패할 수 있습니다.
해결 방법
encryption_at_rest에서 지원되는 KMS 암호화 모드를 선택하고 조직의 요구에 맞는 키를 사용하세요. 고객 관리형 키를 선택하면sse_aws_kms_key_id를 지정하세요.connection_password_encryption에서return_connection_password_encrypted = true와 적절한aws_kms_key_id를 구성하세요. 연결 생성·수정과 비밀번호 복호화에 필요한 권한을 구분해 최소한으로 부여하세요.- 변경 후 실제 카탈로그와 기존 연결의 상태, 조회 응답 및 작업 동작을 확인하세요. 데이터 소스 자체의 암호화와 TLS는 별도로 관리하세요.
예시
참조한 대칭 KMS 키와 필요한 권한은 별도로 준비하세요. 두 예시 모두 카탈로그 저장 암호화가 켜져 있으며, 비밀번호의 암호화된 반환 여부만 다릅니다.
비밀번호 암호화 반환 비활성화
hcl
resource "aws_glue_data_catalog_encryption_settings" "catalog_settings" {
data_catalog_encryption_settings {
connection_password_encryption {
aws_kms_key_id = aws_kms_key.test.arn
return_connection_password_encrypted = false
}
encryption_at_rest {
catalog_encryption_mode = "SSE-KMS"
sse_aws_kms_key_id = aws_kms_key.test.arn
}
}
}
조회 응답에서 비밀번호를 암호화된 상태로 유지하도록 요청하지 않습니다. 카탈로그 전체가 암호화되지 않았다는 뜻은 아닙니다.
비밀번호 암호화 반환 활성화
hcl
resource "aws_glue_data_catalog_encryption_settings" "catalog_settings" {
data_catalog_encryption_settings {
connection_password_encryption {
aws_kms_key_id = aws_kms_key.test.arn
return_connection_password_encrypted = true
}
encryption_at_rest {
catalog_encryption_mode = "SSE-KMS"
sse_aws_kms_key_id = aws_kms_key.test.arn
}
}
}
연결 비밀번호를 암호화된 상태로 반환하도록 요청합니다. 실제로 비밀번호가 필요한 주체에게만 해당 키의 복호화 권한을 부여하세요.