Glue Data Catalog 및 연결 비밀번호 암호화 점검

Glue 카탈로그 저장 암호화와 연결 비밀번호의 암호화된 반환을 함께 확인하세요.

설명

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
    }
  }
}

연결 비밀번호를 암호화된 상태로 반환하도록 요청합니다. 실제로 비밀번호가 필요한 주체에게만 해당 키의 복호화 권한을 부여하세요.

참조