터칭 데이터

Snowflake Data Governance 관련 기능 본문

데이터 웨어하우스(Data Warehouse)

Snowflake Data Governance 관련 기능

터칭 데이터 2023. 11. 30. 21:50

 

 

Data Governance란?

필요한 데이터가 적재적소에 올바르게 사용됨을 보장하기 위한 데이터 관리 프로스세입니다.

데이터의 품질 보장과 데이터 관련된 법규를 준수하는 것이 기능의 주 목적입니다.

 

다음을 이룩하기 위함이 기본 목적

 

1. 데이터 기반 결정에서 일관성

ex) KPI(Key Performance Indicator)등의 지표가 우리의 상황을 정확하게 나타내고 있는가

 

2. 데이터를 이용한 가치 만들기

Citizen data scientist가 더 효율적으로 일할 수 있게 도와주기

Data silos(특정 부서의 데이터 독점)를 없애기

 

3. 데이터 관련 법규 준수

민감한 개인 정보 보호를 위해 적절한 권한 설정과 보안 프로세스가 필수!

 

 

 

 

 

 

 

 

 

Snowflake의 관련 기능

Object Tagging

Data Classification

Tag based Masking Policies

Access History

Object Dependencies

 

Snowflake의 Enterprise에서 사용 가능한 기능입니다.

우리가 현재 실습으로 무료 사용중인 Standard 레벨에서는 사용이 불가능합니다.

 

 

 

 

 

 

 

Object Tagging

 

 

Organization부터 Column에 이르기까지 Snowflake의 모든 것은 Object입니다.

 

모든 Object에는 문자열로 태그를 지정할 수 있습니다.

 

CREATE TAG ~

 

CREATE TAG로 생성 가능하며

 

시스템 태그도 있는데 이는 뒤의 Data Classification에서 다시 이야기 하겠습니다.

 

이렇게 지정된 tag는 구조를 따라 계승됩니다.

 

 

 

 

 

 

 

 

 

Data Classification

보통 tag는 민감한 개인 정보가 무엇인지 표시하기 위한 용도로 가장 많이 사용되는데 일일이 지정해주기 힘듭니다. 이러한 이유로 고안된 기능이 바로 Data Classification입니다.

 

3가지 스텝으로 구성됩니다.

 

Analyze: 테이블에 적용하면 개인정보나  민감정보가 있는 컬럼들을 분류해냅니다.

 

Review: 이를 사람(보통 데이터 엔지니어)이 보고 최종 리뷰 (결과 수정도 가능)

 

Apply: 이 최종 결과를 System Tag로 적용

우리가 Object Tagging에서 시스탬 태그는 Data Classification에서 살펴보겠다고 했었죠?

두가지 시스템 태그가 있습니다.

하나는 SNOWFLAKE.CORE.PRIVACY_CATEGORY (상위레벨) 입니다.
PRIVACY_CATEGORY는 3가지로 분류할 수 있는데 IDENTIFIER(개인 정보), QUASI_IDENTIFIER(모일 경우 개인정보가 될 수 있는), SENSITIVE(연봉과 같은 약간 민감한 정보)와 같습니다.

다른 하나는 SNOWFLAKE.CORE.SEMANTIC_CATEGORY (하위레벨 - 더 세부정보) 입니다. PRIVACY_CATEGORY의 정보를 조금 더 자세하게 알 수 있는 세부정보 입니다. 예를 들어 어떤 PRIVACY_CATEGORY의 컬럼이 IDENTIFIER로 판명 되었을 때 이에 대한 SEMANTIC_CATEGORY는 전화번호나 메일과 같은 세분류가 될 수 있습니다.

 

 

Data Classification은 반자동 기능입니다. 

컴퓨터가 자동으로 Ananlyze한 결과물을 Review 단계 이후에는 사람이 개입해 처리하기 때문입니다.

 

개인을 바로 지칭하는 식별자(Identifier)

몇 개의 조합으로 지칭가능한 준식별자(Quasi Identifier)

 

 

식별자들은 현재는 미국 중심으로 분류됩니다. 식별자에 US 접두사가 붙은게 많죠?

 

 

 

 

 

 

 

 

 

 

 

 

Tag based Masking Policies

Object Tagging이나 Data Classification으로 붙은 태그에 근거해 접근 권한 Role을 부여합니다.

 

먼저 Tag에 액세스 권한을 지정
해당 Tag가 지정된 Snowflake Object의 액세스 권한을 그에 맞춰 제한하는 방식

 

보통 앞서 본 개인정보와 같은 Tag에 부여하는 것이 가장 많이 사용되는 패턴
Tag Lineage가 여기에도 적용됩니다..

 

 

 

 

 

 

 

 

 

 

Access History

과거의 기록으로 Audit(감사)을 진행할 수 있게합니다.

 

목적은 데이터 액세스에 대한 감사 추적을 제공하여 보안과 규정 준수
잠재적인 보안 위반이나 무단 액세스 시도의 조사를 가능하게 해줍니다.
캡처된 정보에는 사용자 신원, IP 주소, 타임스탬프 및 기타 관련 세부 정보 포함

 

'Access History'를 통해 다음 활동의 추적이 가능
데이터베이스 로그인, 실행된 쿼리, 테이블 및 뷰 액세스, 데이터 조작 작업


이 기능은 사실 다른 모든 클라우드 데이터 웨어하우스에서도 제공됩니다.

 

다른 거의 모든 데이터 웨어하우스와 마찬가지로 이 기능도 Redshift에서 제공됩니다.

 

 

 

 

 

 

 

 

 

 

 

Object Dependencies

나 혹은 누군가가 의도치 않게, 별 생각 없이 데이터의 이름을 바꾸거나 컬럼을 드랍하는 경우가 정말 많습니다. 회사의 규모가 크거나 데이터 베이스의 구조가 복잡할수록 내가 지금 변경하거나 삭제하는 Object를 누가 사용하고 있는지 제대로 파악하는 것은 불가능에 가깝습니다. 만약 내가 변경하고 삭제한 컬럼이나 테이블이 누군가가 백엔드에서 사용중이었다면 일이 복잡해지겠죠?

 

이런 대형 사고들을 방지해주는 기능이 바로 Object Dependencies입니다.

 

시스템 차원에서 Object간의 의존도(Dependencies)를 파악한 뒤 이런 Object를 변경하려는 경우 경고를 보내줍니다.

 

데이터 거버넌스와 시스템 무결성 유지를 목적으로 함


테이블이나 뷰를 수정하는 경우 이로 인한 영향을 자동으로 식별
    예를 들어 테이블 이름이나 컬럼 이름을 변경하거나 삭제하는 경우
    즉 데이터 리니지 분석을 자동으로 수행해줍니다.


계승 관계 분석을 통한 더 세밀한 보안 및 액세스 제어
    어떤 테이블의 개인정보 컬럼이 새로운 테이블을 만들때 사용된다면?
        원본 테이블에서의 권한 설정이 그대로 전파됨 (Tag 포함)

 

 

 

 

 

 

 

 

이상의 기능들은 조직이 커졌을 경우 Snowflake의 진가가 특히 발휘되는 기능들입니다. 다른 데이터 웨어하우스들은 시스템 자체적으로 이러한 기능들을 제공하지는 못하고 별도의 툴을 구매하고 설치해야 합니다.