본문으로 건너뛰기
최종 수정: 에

데이터 접근 제어

Apache Doris는 관리자가 행, 열, 필드 내용별로 민감한 데이터에 대한 접근을 세밀하게 제어할 수 있도록 행 정책(Row Policy), 열 권한(Column Permission), 데이터 마스킹(Data Masking)이라는 세 가지 기능을 제공합니다. 이 문서에서는 각 기능의 작동 방식, 제한 사항, 대표적인 사용 예제를 설명합니다.

적용 시나리오​

시나리오권장 기능설명
사용자별로 테이블의 일부 행만 볼 수 있어야 하는 경우(예: 지역, 테넌트, 부서별 데이터 격리)행 정책(Row Policy)쿼리에 필터 조건을 자동으로 추가합니다
사용자별로 테이블의 일부 열에만 접근할 수 있어야 하는 경우(예: 급여나 전화번호 열 숨기기)열 권한(Column Permission)지정한 열에만 Select_priv 권한을 부여합니다
민감한 필드를 일부 숨기거나 대체해야 하는 경우(예: 신분증 번호나 은행 카드 번호를 ***로 표시)데이터 마스킹(Data Masking)Apache Ranger를 통해 마스킹 정책을 설정합니다

사전 요구 사항​

  • 현재 사용자에게 대상 객체에 대한 관리 권한(예: GRANT 권한)이 있어야 합니다.
  • 데이터 마스킹에는 Apache Ranger가 필요합니다. 먼저 Ranger 연동을 완료하세요(Apache Ranger 권한 부여 참조).
  • 세 가지 기능 모두 기본 사용자인 root와 admin에게는 적용되지 않습니다.

행 정책(Row Policy)​

Doris의 행 수준 정책을 사용하면 민감한 데이터에 대한 접근을 세밀하게 제어할 수 있습니다. 테이블 수준에서 정의한 보안 정책에 따라 어떤 사용자나 역할이 테이블의 특정 레코드에 접근할 수 있는지 결정할 수 있습니다.

작동 방식​

행 정책이 설정된 사용자가 쿼리를 실행하면 Doris는 해당 행 정책에 정의된 조건을 쿼리에 자동으로 추가합니다.

제한 사항​

  • 기본 사용자인 root와 admin에게는 행 정책을 설정할 수 없습니다.

행 정책 예제​

  1. 사용자 test가 table1에서 c1='a'인 행만 쿼리할 수 있도록 제한합니다:

    CREATE ROW POLICY test_row_policy_1 ON test.table1
    AS RESTRICTIVE TO test USING (c1 = 'a');

열 권한(Column Permission)​

Doris의 열 권한을 사용하면 테이블에 대한 접근을 세밀하게 제어할 수 있습니다. 테이블의 특정 열에만 권한을 부여하여 어떤 사용자나 역할이 해당 열에 접근할 수 있는지 결정할 수 있습니다.

현재 열 권한은 Select_priv만 지원합니다.

열 권한 예제​

  1. 사용자 user1에게 col1 및 col2 열을 쿼리할 수 있도록 테이블 tbl에 대한 권한을 부여합니다:

    GRANT Select_priv(col1,col2) ON ctl.db.tbl TO user1

데이터 마스킹(Data Masking)​

데이터 마스킹은 민감한 데이터를 보호하는 방법입니다. 원본 데이터를 수정하거나 대체하거나 숨겨서, 마스킹된 데이터가 일정한 형식과 특성을 유지하면서도 민감한 정보는 포함하지 않도록 합니다.

예를 들어 관리자는 신용카드 번호나 신분증 번호와 같은 민감한 필드의 숫자 일부 또는 전체를 별표 *나 다른 문자로 바꾸거나, 실명을 가명으로 대체할 수 있습니다.

Doris는 버전 2.1.2부터 Apache Ranger Data Masking을 통해 열에 마스킹 정책을 설정하는 기능을 지원합니다. 현재 지원되는 유일한 설정 방법은 Apache Ranger를 사용하는 것입니다.

데이터 마스킹은 admin 또는 root 사용자에게는 적용되지 않습니다.

자주 묻는 질문(FAQ)​

질문: root 또는 admin 사용자에게 행 정책이나 데이터 마스킹을 설정했지만 적용되지 않습니다.​

세 가지 기능 모두 기본 슈퍼유저인 root와 admin에게는 적용되지 않습니다. 일반 업무용 사용자 계정으로 확인하세요.

질문: 열 권한을 부여한 후에도 쿼리 실행 시 권한이 부족하다는 오류가 발생합니다.​

현재 열 권한은 Select_priv만 지원합니다. 권한 부여 구문에서 이 권한을 사용했는지, 권한을 부여한 대상이 의도한 Catalog, 데이터베이스 또는 테이블인지 확인하세요.

질문: 데이터 마스킹 정책이 적용되지 않습니다.​

데이터 마스킹은 Apache Ranger를 통해 설정해야 하며, Doris 버전 2.1.2 이상이 필요합니다. Ranger 연동이 완료되었는지, 정책이 활성화되어 있는지, 현재 사용자가 root 또는 admin이 아닌지 확인하세요.