민감한 정보가 포함된 데이터베이스 쿼리를 위해 DLP 프록시를 사용하는 아키텍처 예시

Last reviewed 2022-09-29 UTC

이 문서에서는 Google Cloud 데이터베이스에 저장된 민감한 정보가 사용자에게 노출될 위험을 줄이면서도 의미 있는 데이터를 계속 쿼리할 수 있도록 민감한 정보 보호를 사용하는 방법을 설명합니다.

민감한 정보는 전사적으로 존재할 수 있습니다. 수집, 처리, 공유되는 데이터에는 외부 및 내부 정책 또는 규정이 적용되는 개인 식별 정보(PII)와 같은 정보가 포함될 수 있습니다. 민감한 정보에 대한 액세스를 제한하는 적절한 보안 제어 외에도 다음 기술을 통해 사용 중 데이터를 보호할 수 있습니다. 익명화데이터 마스킹, 버케팅, 토큰화와 같은 기술을 사용하여 데이터의 유틸리티와 개인정보 보호 사이의 균형을 유지하는 데 도움이 됩니다.

토큰화는 민감한 정보를 데이터를 쿼리하거나 볼 때 원래(원시) 민감한 값을 나타내는 토큰이라고 하는 서로게이트 값으로 대체합니다. 이 프로세스는 가명처리 또는 서로게이트 교체라고도 합니다. 토큰화라는 개념은 금융 및 의료와 같은 업계에서 광범위하게 사용되고 있으며, 토큰화는 사용 중 데이터의 위험을 낮추고 규정 준수 범위를 줄이고 민감한 정보가 필요하지 않은 사용자나 시스템에 노출되지 않도록 최소화하는 데 도움이 됩니다.

민감한 정보 보호를 사용하면 실시간으로 민감한 정보를 일괄적으로 분류하고 익명화할 수 있습니다. 분류는 민감한 정보를 식별하고 유형을 결정하는 절차입니다. 이 문서에서는 익명화 기술을 어디에서 사용할 수 있는지 설명하고 프록시를 사용하여 이러한 작업을 수행하는 방법을 보여줍니다.

다음 다이어그램은 이 문서에 설명된 시나리오를 보여줍니다.

Cloud Storage에 저장되고 ETL을 통해 수집된 후 사용자가 쿼리하는 데이터의 아키텍처입니다.

  • Cloud Storage에 데이터가 저장됩니다. 예를 들어 파트너로부터 받은 데이터입니다.
  • 데이터는 추출, 변환, 로드(ETL) 프로세스를 통해 SQL Database로 수집됩니다.
  • 이 데이터베이스의 데이터는 사용자가 분석을 수행하도록 쿼리됩니다.

이 시나리오에서는 쿼리에서 반환된 결과가 원시 데이터이므로 민감한 정보가 표시되고 쿼리를 실행하는 사용자에게 PII 데이터가 노출될 수 있습니다. 민감한 정보에 대한 승인되지 않은 쿼리를 감사하고 방지하도록 애플리케이션을 설계해야 합니다.

DLP 프록시 아키텍처

PII 데이터를 보호하는 한 가지 방법은 요청된 데이터를 사용자에게 반환하기 전에 민감한 정보 보호를 사용하여 결과를 파싱하고 검사한 후 결과를 로그하거나 결과를 익명화하는 서비스를 통해 모든 쿼리 및 결과를 전달하는 것입니다. 이 문서에서는 이 서비스를 DLP 프록시라고 합니다.

DLP 프록시 애플리케이션은 SQL 쿼리를 입력으로 수락하고 데이터베이스에서 쿼리를 실행한 다음 민감한 정보 보호를 결과에 적용한 후에 결과를 데이터를 요청하는 사용자에게 반환합니다.

다음 다이어그램은 DLP 프록시 애플리케이션의 아키텍처를 보여줍니다.

데이터 변환 명령어를 사용하는 DLP 프록시 앱의 아키텍처입니다.

민감한 정보 보호를 사용하면 검사할 데이터 유형과 이러한 검사 결과 또는 데이터 구조(예: 필드 이름)에 따라 데이터를 변환하는 방법을 자세히 구성할 수 있습니다. 구성 생성 및 관리를 간소화하려면 민감한 정보 보호 템플릿을 사용하세요. DLP 프록시 애플리케이션은 검사익명화 템플릿을 모두 참조합니다.

템플릿을 사용하여 민감한 정보 보호로 구성 정보를 만들고 유지할 수 있습니다. 템플릿은 검사 대상 및 익명화 방법과 같은 구성 정보를 요청 구현에서 분리하는 데 유용합니다. 템플릿에 대한 자세한 내용은 민감한 정보 보호 템플릿을 참조하세요.

Cloud 감사 로그는 이 아키텍처에서 사용되는 Google Cloud의 통합 로깅 서비스입니다. 먼저 Cloud 감사 로그는 Cloud Data Loss Prevention API(민감한 정보 보호의 일부)로 보낸 호출의 감사 추적을 제공합니다. 감사 로그 항목에는 누가 API 호출을 수행했는지, 어떤 Google Cloud 프로젝트를 실행했는지, 템플릿이 요청의 일부로 사용되었는지 여부 등 요청에 대한 세부정보가 포함됩니다. 두 번째로, 애플리케이션의 구성 파일을 사용하여 감사를 설정하면 Cloud 감사 로그는 검사 결과 요약을 기록합니다.

Cloud Key Management Service(Cloud KMS)는 Google Cloud에서 호스팅되는 키 관리 서비스로서 클라우드 서비스의 암호화 키를 관리할 수 있습니다.

토큰화날짜 이동을 위한 민감한 정보 보호 메서드는 암호화를 사용하여 대체 값을 생성합니다. 이러한 암호화 방법은 키를 사용하여 일관되게 값을 암호화하여 참조 무결성 유지하거나 가역적인 방법의 경우에는 역토큰화를 일으킬 수 있습니다. 이 키를 호출할 때 직접 민감한 정보 보호에 제공하거나 Cloud KMS를 사용하여 래핑할 수 있습니다. Cloud KMS에서 키 래핑은 추가 액세스 제어 및 감사 레이어를 제공하므로 프로덕션 배포에 선호되는 방법입니다.

프로덕션 구성에서는 최소 권한 원칙을 사용하여 권한을 할당해야 합니다. 다음 다이어그램은 이러한 원칙의 예시를 보여줍니다.

3개의 페르소나 및 권한이 포함된 프로덕션 구성

위의 다이어그램은 일반적인 프로덕션 구성에서 서로 다른 역할과 원시 데이터에 액세스할 수 있는 3가지 페르소나가 있음을 보여줍니다.

  • 인프라 관리자: 민감한 정보 보호 프록시가 설치된 컴퓨팅 환경에 액세스할 수 있도록 프록시를 설치하고 구성합니다.
  • 데이터 분석가: DLP 프록시에 연결하는 클라이언트에 액세스합니다.

  • 보안 관리자: 데이터를 분류하고 민감한 정보 보호 템플릿을 만들고 Cloud KMS를 구성합니다.

Cloud KMS를 사용하여 데이터를 암호화 및 복호화하는 방법에 대한 자세한 내용은 데이터 암호화 및 복호화를 참조하세요.

이 문서에 사용된 DLP 프록시의 경우 이 정보는 모두 민감한 정보 보호 익명화 템플릿에서 구성됩니다.

감사, 마스킹, 토큰화로 PII 보호

이 시나리오에서 PII가 노출될 위험을 완화하기 위해 구현할 수 있는 두 가지 전략이 있습니다.

데이터베이스에 저장된 원시 데이터

애플리케이션이 원시 데이터를 데이터베이스에 저장하는 경우 DLP 프록시를 사용하여 민감한 결과를 자동으로 검사하고 생성하여 사용자에게 반환하는 결과를 처리할 수 있습니다. 또는 다음 다이어그램에 표시된대로 쿼리 결과를 실시간으로 마스킹할 수 있습니다.

쿼리 결과가 실시간으로 마스킹되는 아키텍처

이 구성을 사용하려면 DLP 프록시에 연결하는 SQL 클라이언트를 사용해야 합니다. 앱에서 감사를 사용 설정하면 검사 결과 요약과 함께 로그가 Cloud 감사 로그에 생성됩니다. 이 요약은 쿼리에 반환된 민감한 정보의 유형을 나타냅니다.

익명화된 형식으로 저장된 데이터

원시 데이터를 저장하지 않으려면 다음 다이어그램에 표시된대로 ETL 프로세스 중에 데이터베이스로 익명화 변환을 수행하여 애플리케이션의 데이터를 익명화 또는 마스크 형식으로 저장할 수 있습니다.

ETL 프로세스 중에 쿼리 결과가 마스킹되는 아키텍처입니다.

위의 다이어그램은 데이터베이스로 내부 데이터화되기 전에 데이터를 검사하고 마스킹하는 기본 흐름을 보여줍니다. 사용자가 이 데이터를 쿼리하면 데이터베이스에 원시 액세스 권한이 있어도 마스킹된 버전만 볼 수 있습니다.

사용자가 마스킹되지 않은 데이터를 볼 수 있도록 허용하려면 다음 다이어그램에 표시된대로 데이터를 마스킹 해제할 권한이 있는 DLP 프록시 인스턴스에 연결할 수 있는 클라이언트를 사용해야 합니다.

마스킹 해제된 데이터를 보기 위해 클라이언트를 사용하여 DLP 프록시에 연결하는 아키텍처

위의 다이어그램은 클라이언트를 사용하여 DLP 프록시에 연결하여 마스킹 해제된 데이터를 클라이언트에 표시하는 방법을 보여줍니다.

다음 단계