K-맵은 공격자가 데이터 세트에 누가 있는지 모를 가능성이 높다고 전제한다는 점을 제외하면 k-익명성과 상당히 비슷합니다. 데이터 세트가 비교적 작거나 속성 일반화에 투입되는 노력의 정도가 지나치게 높다고 판단되는 경우 k-맵을 사용합니다.
k-익명성과 마찬가지로 k-맵에서도 데이터베이스의 어느 열이 유사 식별자인지를 확인해야 합니다. 이 과정에서 공격자가 대상을 재식별하기 위해 사용할 가능성이 가장 높은 데이터를 명시합니다. 또한 k-맵 값을 계산하기 위해서는 재식별 데이터 세트, 즉 원본 데이터 세트의 행을 비교할 더 큰 테이블이 필요합니다.
이 주제에서는 Sensitive Data Protection을 사용하여 데이터 세트의 k-맵 값을 계산하는 방법을 보여줍니다. 계속 진행하기 전에 k-맵 또는 일반 위험 분석에 대한 자세한 내용은 위험 분석 개념 주제를 참조하세요.
시작하기 전에
계속하기 전에 다음 작업을 완료했는지 확인하세요.
- Google 계정으로 로그인합니다.
- Google Cloud 콘솔의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다. 프로젝트 선택기로 이동
- Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.
- Sensitive Data Protection을 사용 설정합니다. Sensitive Data Protection 사용 설정
- 분석할 BigQuery 데이터 세트를 선택합니다. 민감한 정보 보호는 BigQuery 테이블을 스캔하여 k-맵 측정항목을 추정합니다.
- 공격 데이터 세트를 모델링하는 데 사용할 데이터 세트 유형을 결정합니다. 자세한 내용은
KMapEstimationConfig
객체의 참조 페이지와 위험 분석 용어 및 기술을 참조하세요.
k-맵 추정값 계산
통계 모델을 사용하여 재식별 데이터 세트를 추정하는 민감한 정보 보호를 통해 k-맵 값을 추정할 수 있습니다. 이러한 위험 분석 방법은 공격 데이터 세트가 명시적으로 알려진 다른 방법과 대조적입니다. 데이터 유형에 따라 민감한 정보 보호는 공개적으로 사용 가능한 데이터 세트(예: 미국 통계국의 데이터 세트) 또는 커스텀 통계 모델(예: 사용자가 지정하는 BigQuery 테이블 하나 이상)을 사용하거나 입력 데이터 세트 값 분포에서 추론할 수 있습니다. 자세한 내용은 KMapEstimationConfig
객체의 참조 페이지를 확인하세요.
Sensitive Data Protection을 사용하여 k-맵 추정값을 계산하려면 먼저 위험 작업을 구성하세요. projects.dlpJobs
리소스에 요청을 작성합니다. 여기서 PROJECT_ID는 프로젝트 식별자를 나타냅니다.
https://dlp.googleapis.com/v2/projects/PROJECT_ID/dlpJobs
요청에는 다음 요소로 구성된 RiskAnalysisJobConfig
객체가 포함됩니다.
PrivacyMetric
객체. 여기서 다음을 포함하는KMapEstimationConfig
객체를 지정하여 k-맵을 계산하도록 지정합니다.quasiIds[]
: 필수. k-맵을 계산할 때 스캔하고 사용할 유사 식별자로 간주되는 필드TaggedField
객체). 두 개의 열이 동일한 태그를 가질 수 없습니다. 다음 중 하나가 될 수 있습니다.- infoType: 민감한 정보 보호에서 관련 공개 데이터 세트를 미국 우편번호, 리전 코드, 연령, 성별 등이 포함된 모집단의 통계 모델로 사용하도록 합니다.
- 커스텀 infoType: 이 열의 가능한 값에 대한 통계 정보가 포함된 보조 테이블(
AuxiliaryTable
)을 가리키는 커스텀 태그 inferred
태그: 지정된 의미 체계 태그가 없는 경우inferred
를 지정합니다. 민감한 정보 보호는 입력 데이터 값 분포에서 통계 모델을 추론합니다.
regionCode
: 통계 모델링에 사용할 민감한 정보 보호에 대한 ISO 3166-1 alpha-2 리전 코드. 리전별 infoType(예를 들어 미국 우편번호) 또는 리전 코드로 태그가 지정된 열이 없는 경우 이 값은 필수입니다.auxiliaryTables[]
: 분석에 사용할 보조 테이블(AuxiliaryTable
객체). 유사 식별자 열(quasiIds[]
)에 태그를 지정하는 데 사용된 각 커스텀 태그는 정확히 한 보조 테이블의 한 열에 나타나야 합니다.
BigQueryTable
객체. 다음을 모두 포함하여 스캔할 BigQuery 테이블을 지정합니다.projectId
: 테이블이 포함된 프로젝트의 프로젝트 IDdatasetId
: 테이블의 데이터 세트 IDtableId
: 테이블의 이름
작업 완료 시 실행할 작업을 나타내는 하나 이상의
Action
객체 집합(주어진 순서에 따름). 각Action
객체는 다음 작업 중 하나를 포함할 수 있습니다.SaveFindings
객체: 위험 분석 스캔의 결과를 BigQuery 테이블에 저장합니다.PublishToPubSub
객체: Pub/Sub 주제에 알림을 게시합니다.
PublishSummaryToCscc
객체: Security Command Center에 결과 요약을 저장합니다.PublishFindingsToCloudDataCatalog
객체: Data Catalog에 결과를 저장합니다.JobNotificationEmails
객체: 결과가 포함된 이메일을 보냅니다.PublishToStackdriver
객체: Google Cloud Observability에 결과를 저장합니다.
코드 예시
다음은 민감한 정보 보호를 사용하여 k-맵 값을 계산하는 방법을 보여주는 여러 언어로 된 샘플 코드입니다.
Go
Sensitive Data Protection의 클라이언트 라이브러리를 설치하고 사용하는 방법은 Sensitive Data Protection 클라이언트 라이브러리를 참조하세요.
Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.
Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.
Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
PHP
민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.
Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.
Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
C#
민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.
Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
k-맵 작업 결과 보기
REST API를 사용하여 k-맵 위험 분석 작업의 결과를 검색하려면 다음 GET 요청을 projects.dlpJobs
리소스에 보냅니다. PROJECT_ID를 프로젝트 ID로 바꾸고 JOB_ID를 결과를 가져올 작업 식별자로 바꿉니다.
작업 ID는 작업 시작 시 반환되었으며 모든 작업을 나열하여 검색할 수도 있습니다.
GET https://dlp.googleapis.com/v2/projects/PROJECT_ID/dlpJobs/JOB_ID
요청은 작업 인스턴스가 포함된 JSON 객체를 반환합니다. 분석 결과는 AnalyzeDataSourceRiskDetails
객체의 "riskDetails"
키 내에 있습니다. 자세한 내용은 DlpJob
리소스의 API 참조를 확인하세요.