Cloud DLP와 Data Fusion을 사용한 데이터 마스킹

김민형·2023년 3월 28일
0

GCP - Data

목록 보기
33/43

아키텍처

일전에 Cloud DLP와 Dataflow를 사용한 데이터 마스킹에서 데이터 마스킹을 다뤄본 적이 있다.
이번엔 Data Fusion을 사용하여 데이터 마스킹을 해볼 것이다.

사전 준비

우선 Cloud Storage 버킷을 하나 생성하고 input, output용 폴더를 하나씩 만들어준다.

아래 명령어를 Cloud Shell로 실행하여 데이터를 받아올 것이다.

# GCP에서 제공하는 Public 데이터
gsutil cp gs://cloud-training/OCBL167/SampleRecords.csv .
gsutil cp ./SampleRecords.csv gs://datapipeline-masking/input

Data Fusion 인스턴스 생성

기본 옵션으로 생성하면 Compute Engine default Service Account에 Data Fusion 실행자 권한이 부여되면서 실행될텐데 처음 생성할 시 Data Fusion에서 Dataproc에 대한 Service Account가 없다고 해당 권한을 부여한다는 문구가 뜰 것인데 이걸 허용해줘야 한다.

만들기를 누른 후 IAM의 default Compute Engine Service Account 확인

권한 설정

Cloud DLP는 Data Masking API이고 Data fusion에서 DLP를 사용하려면 권한을 부여해줘야 함.
IAM에서 "Google 제공 역할 부여 포함"을 클릭해주면 아래와 같이 Google에서 제공하는 서비스들의 에이전트 역할을 하는 Service Account들이 표시되는데 여기에 있는 Data Fusion 서비스 에이전트에 DLP 관리자 권한을 추가해줘야 한다.

인스턴스 접속

Source

먼저 소스에서 GCS선택 후 properties에서 앞서 만들어준 버킷의 input 데이터 경로 입력

GET SCHEMA로 데이터의 스키마를 가져올 수 있다.

스키마 수정
체크 표시 > NULLABLE 설정

템플릿 생성

데이터 손실 방지의 구성에서 템플릿 생성이 가능하다.

InfoType에 Google이 미리 정의해둔 마스킹할 유형들이 있다.
그 중 전화번호와 EMAIL 주소를 마스킹하는 InfoType 선택하여 생성.

Transform

Transform에서 Cloud DLP가 보여야 하는데 그냥 찾으려고 하면 보이지 않을 것이다.
DLP는 수동으로 설치를 해줘야 하는 플러그인.
상단에 HUB를 통해 플러그인을 받아올 수 있다.

Transform에서 Cloud DLP 생성 확인.
그 중 우린 데이터 마스킹을 위해 Redact 선택

어떤 데이터에서 우리가 생성한 템플릿의 infoType을 감지해 마스킹할 것인지 입력해준다.

  • Masking
  • Custom Template (중간에 None으로 표시된 게 정상)
  • Note
  • Masking Character : #(#으로 마스킹 처리)

Note 열에 전화번호나 EMAIL 주소는 #으로 치환되어 출력될 것이다.

Sink

output GCS설정

파이프라인 실행

Preview를 통해 이 파이프라인이 정상작동하는지 미리 확인할 수도 있다.
여기선 그냥 Deploy

provisioning > starting > running > succeeded 순으로 표시될 것이고 succeeded가 되면 Cloud Storage output 경로에 아래와 같이 파일이 출력 된 것을 확인할 수 있다.

데이터 확인

profile
Solutions Architect (rlaalsgud97@gmail.com)

0개의 댓글