구글 PS1팀 김소원
GCP(Google Cloud Platform)에서는 Policy Tag를 통해, 개인 정보 등 민감한 정보의 Column에 권한이 부여된 개인정보 취급자1에게만 정보를 공개하여 안전하게 데이터를 관리합니다.
Policy Tag의 계층 적 그룹을 만들고, BigQuery Column에 Policy Tag를 지정하여 액세스 제어를 적용합니다.

데이터 클래스의 계층 구조
조직에서 처리하는 데이터의 종류를 고려하여 업무에 적합한 데이터 클래스의 계층 구조를 만듭니다. Policy Tag의 데이터 클래스 계층 구조를 만들면 아래와 같이 관리할 수 있습니다.

- 하나의 Policy Tag를 여러 Column에 적용 가능하며, 몇 개의 Policy Tag 만으로 여러 Column을 효율적으로 관리합니다.
- 서로 다른 Policy Tag에 액세스해야 하는 사용자 그룹이 있다면, Policy Tag 별로 사용자 그룹에게 권한을 주어 관리 할 수 있습니다.
- Policy Tag를 그룹화하여, Policy Tag가 모두 포함된 루트 Policy Tag를 만들어 사용 할 수 있으며, 상위 레벨에 권한을 부여하면 하위 Tag 에도 동일하게 적용이 됩니다.
BigQuery Column 수준 보안
BigQuery Column 수준 보안을 사용하면 Query시 사용자에게 적절한 액세스 권한이 있는지 확인하며 다음과 같은 액세스 검사를 시행합니다.
- Credit_Card(Column)을 보려면 Business Criticality:high 에 권한 있어야 합니다.
GCP 실습
Policy Tag 생성

[GCP Console > Data Catalog2 > Policy Tags]

[BigQuery Dataset Info]
- 분류(taxonomy)의 Location과 Big Query의 Table의 Data Location이 일치해야 Policy Tag를 설정할 수 있습니다.
- Policy Tag 생성을 위해 아래 권한이 필요합니다.
역할 | 설명 |
---|---|
roles/datacatalog.categoryAdmin | 분류(Taxonomy)를 관리합니다. |
Policy Tag를 BigQuery Column에 적용
Policy Tag 적용 전
- 모든 Column 조회 성공
Policy Tag 적용 후
- BigQuery Column에 Policy Tag 적용한 화면
[BigQuery > Table > EDIT SCHEMA > Column 선택 > ADD POLICY TAG > Policy Tag 선택]

※ Policy Tag 설정된 Column의 데이터를 보기위해 아래 FineGrainedReader 권한이 필요합니다.
역할 | 설명 |
---|---|
roles/datacatalog.categoryFineGrainedReader | 정책으로 태그를 지정한 하위 리소스(예: BigQuery 열)에 대한 읽기 액세스 권한입니다. |
- 해당 Column에 적용된 Policy Tag의 Fine-Grained Reader 권한이 없을 시, 조회 실패(Query : Select Credit_card From table_01)

- 해당 Column에 적용된 Policy Tag의 Fine-Grained Reader 권한이 있을시, 조회 성공(Query : Select name, email From table_01)

[Low의 Fine-Grained Reader 권한에 사용자/그룹 추가]

[Low 하위 권한(name, email) Column 조회 가능]
- 1 개인정보 처리에 관한 업무를 총괄해서 책임지는 자
- 2 조직에서 Google Cloud의 모든 사내 데이터를 신속하게 찾고 관리하며 파악할 수 있도록 지원하는 확장 가능한 완전 관리형 메타데이터 관리 서비스.