DA

Snowflake 운영과 관리

ha_data 2024. 1. 30. 16:17

목표: Snowflake Role로 권한 설정 해보고 Snowflake가 제공해주는 보안 관련 기능 알아보기

Redshift는 snowflake보다 오래된 기술이라 안전성이 높지만 트렌드를 따라가지 못하는 단점이 있음.

Snowflake는 Group을 지원하지 않음. Redshift는 사용자 그룹 지원, 그 위에 Role 추가. 

Group과 Role은 흡사하지만 Role은 계승구조 지원. 가장 Base line이 되는 권한 생성하면 그 위에 새로운 Role 만들 수 있음.

=> 관리가 쉽고 반복을 안해도 되는 장점

 

Role과 User 생성

--Role과 User 생성
--3개의 Role 생성. 아직 누구에게도 부여하지 않음.
CREATE ROLE analytics_users;
CREATE ROLE analytics_authors;
CREATE ROLE pii_users;

ha에게 analytics_users role 권한 부여. 

--사용자 생성
CREATE USER ha PASSWORD='haha'
--사용자에게 analytics_users 권한 지정
GRANT ROLE analytics_users TO USER ha;

 

 

컬럼레벨 보안 (Column Level Security)

테이블 내의 특정 컬럼을 특정 사용자나 특정 역할에게만 접근가능하게 하는 것

보통 개인정보에 등에 해당하는 컬럼을 권한이 없는 사용자들에게 감추기 위해 사용

-> 민감한 정보의 컬럼만 모아서 별도의 테이블로 구성하는 게 가장 좋은 방법, 더 좋은 방법은 보안이 필요한 정보를 아예 데이터 시스템으로 로딩하지 않는 것

 

레코드 레벨 보안 (Row Level Security)

테이블 내의 특정 레코드들을 특정 사용자나 특정 역할에만 접근 가능하게 하는 것

특정 사용자/그룹의 특정 테이블 대상 SELECT UPDATE DELETE 작업에 추가 조건을 다는 형태로 동작

일반적으로 더 좋은 방법은 아예 별도의 테이블을 만드는 것

 

Data Governace 란?

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

품질 보장과 데이터 관련 법규 준수를 주 목적으로 함

목적 

- 데이터 기반 결정에서 일관성 : KPI 등의 지표 정의와 계산에 있어 일관성

- 데이터 이용한 가치 만들기 : Data silos 를 없애기 (특정 부서만 독점, 공유 안하는 것)

- 데이터 관련 법규 준수 : 개인정보보호를 위해 적절한 권한 설정과 보안 프로세스 필수

 

Object Tagging 

Enterprise 레벨에서만 가능한 기능. CREATE TAG로 생성

문자열을 Snowflake object에 지정 가능 (계정, 스키마, 테이블, 컬럼, 뷰 등)

지정된 Tag는 구조를 따라 계승됨 

 

Data Classification

Enterprise 레벨에서만 가능한 기능

Object Tagging은 개인 정보 관리가 주요 용도 중의 하나지만 메뉴얼하게 관리하기는 어려워서 나온 기능

3가지 스텝으로 구성

- Analze 테이블에 적용하면 개인정보나 민감정보가 있는 컬럼들을 분류해냄

- Review 데이터 엔지니어가 보고 최종 리뷰

- Apply 최종 결과를 system tag로적용 

 

식별자와 준식별자

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

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

 

Tag based Masking Policies 

Enterprise 레벨에서 사용 가능

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

보통 앞서 본 개인정보와 같은 Tag에 부여하는 것이 가장 많이 사용되는 패턴

Tag Lineage가 여기에도 적용됨

 

Access History 

Enterprise 레벨에서만 가능한기능

목적은 데이터 엑세스에 대한 감사 추적을 제공하여 보안과 규정 주눗 

- 잠재적인 보안 위반이나 무단 액세스 시도의 조사를 가능하게 해줌

- 캡처된 정보에는 사용자 신원, IP 주소, 타임스탬프 및 기타 관련 세부 정보 포함

데이터베이스 로그인, 실행된 쿼리, 테이블 및 뷰 액세스, 데이터 조작 작업 활동 추적 가능

모든 클라우드 데이터 웨어하우스에도 제공됨

 Object Dependencies 

시스템 무결성 유지를 목적으로 함

테이블이나 뷰를 수정하는 경우 이로 인한 영향을 자동으로 식별

계승 관계 분석을 통한 더 세밀한 보안 및 액세스 제어 

- 어떤 테이블의 개인정보 컬럼이 새로운 테이블 만들 때 사용된다면? 원본 테이블에서의 권한 설정 그대로 전파됨 태그 포함