Tibero Label Security

레이블을 통하여 사용자의 접근을 제어하는 기능인 Label Security에 대해서 설명합니다.

개요

Label Security는 특정 테이블의 열 및 사용자에게 할당 된 레이블을 이용하여 대상 테이블의 행에 대한 접 근을 제어하는 기능입니다.

기본적으로 Label Security는 행 레이블과 사용자 레이블을 비교하여 사용자의 접근을 제어하는 방식으로 동작하며, 민감한 정보를 승인된 사용에게만 접근 가능하도록 설정할 수 있습니다.

Label Security의 구성 요소

Label Security 기능을 사용하기 위해선 접근 제어 지표인 레이블과 접근 제어 관련 정보를 관리하는 정책 이 필요합니다.

  • 레이블

레이블은 다음과 같은 조건을 만족해야 합니다.

구분
설명

Level

데이터의 민감한 정도를 수직적으로 나타냄 (예: 공개, 대외비, 기밀)

Compartment

  • 데이터의 구성을 수평적으로 나타냄

  • 개별 프로젝트에 대한 접근을 제어하는 데 도움이 (예: 알파, 베타, 감마)

Group

  • 데이터의 구성을 tree 형태로 나타냄

  • 계층형 구조의 데이터에 대한 접근을 제어하는 데 도움이 됨 (예: 티맥스 – 티맥스데이터, 티맥스소프트)

  • 정책

접근 제어 관련 정보를 관리하는 메인 컨테이너입니다.

예를 들어 데이터의 민감도가 공개자료, 대외비, 기밀 3 단계의 level로 이루어져 있을 때 특정 사용자에게 대외비까지 접근할 수 있는 level이 부여되었습니다면 그 사용자가 기밀 데이터에 접근하는 것은 불가능합니다.

레이블에 대한 이해

Label Security 기능을 사용하기 위해서는 레이블 기반 보안 방식에 및 레이블 구성 요소에 대한 이해가 필 요합니다.

레이블 기반 보안 방식

레이블은 크게 데이터 레이블과 사용자 레이블로 나누어 생각할 수 있습니다.

  • 데이터 레이블 행 데이터의 민감한 정도와 특성을 나타내며, 사용자가 해당 행에 접근하기 위해 충족해야 하는 기준이 됩니다.

  • 사용자 레이블 사용자의 민감한 정도와 레이블이 지정된 데이터에 대한 사용자의 접근을 제한하는 기준이 됩니다. 각 사 용자에게는 레벨, 구획, 그룹의 범위가 할당되며 해당 범위 내의 레이블이 있는 데이터에 접근 가능합니다.

레이블 구성 요소

레이블을 구성하는 요소는 레벨, 구획, 그룹으로 나뉩니다. 해당 요소들을 적절하게 결합하여 레이블을 생성 할 수 있습니다.

레벨 구성 요소

레벨은 레이블 정보의 민감도를 등급화 한 지표입니다. 큰 레벨 값은 정보의 민감도가 높다는 것을 의미한 다.

다음과 같이 레벨을 정의할 수 있습니다.

숫자 형식
긴 형식
짧은 형식

30

기밀 (SECRET)

S

20

대외비 (CONFIDENTIAL)

C

10

공개 (PUBLIC)

P

구획 구성 요소

구획은 레이블이 지정된 데이터 정보의 민감도를 더 세분화하는 영역입니다. 특정 프로젝트와 관련 있는 모 든 데이터는 동일한 구획으로 레이블을 지정할 수 있습니다.

다음과 같이 구획을 정의할 수 있습니다.

숫자 형식
긴 형식
짧은 형식

80

알파 (ALPHA)

A

50

베타 (BETA)

B

20

감마 (GAMMA)

G

그룹 구성 요소

그룹은 계층적 구조로 레이블이 지정된 데이터 정보의 민감도를 더 세분화하는 영역입니다. 조직 구성을 기 반으로 데이터에 레이블을 지정할 수 있으며, 특정 부서와 관련있는 모든 데이터는 레이블에 해당 부서의 그룹을 포함할 수 있습니다.

다음과 같이 그룹을 정의할 수 있습니다.

레이블 구문 유형

레이블 구성 요소를 정의한 후 특정 레벨, 구획, 그룹 집합을 결합하여 데이터 레이블을 생성할 수 있습니다. 다음과 같은 구문 형태로 레이블 문자열 표현이 가능합니다.

레벨 구성 요소

레벨은 레이블 정보의 민감도를 등급화한 지표입니다. 큰 레벨 값은 정보의 민감도가 높다는 것을 의미합니다. 다음과 같이 레벨을 정의할 수 있습니다.

숫자 형식
긴 형식
짧은 형식

30

기밀 (SECRET)

S

20

대외비 (CONFIDENTIAL)

C

10

공개 (PUBLIC)

P

구획 구성 요소

구획은 레이블이 지정된 데이터 정보의 민감도를 더 세분화하는 영역입니다. 특정 프로젝트와 관련 있는 모 든 데이터는 동일한 구획으로 레이블을 지정할 수 있습니다.

다음과 같이 구획을 정의할 수 있습니다.

숫자 형식
긴 형식
짧은 형식

80

알파 (ALPHA)

A

50

베타 (BETA)

B

20

감마 (GAMMA)

G

그룹 구성 요소

그룹은 계층적 구조로 레이블이 지정된 데이터 정보의 민감도를 더 세분화하는 영역입니다. 조직 구성을 기 반으로 데이터에 레이블을 지정할 수 있으며, 특정 부서와 관련있는 모든 데이터는 레이블에 해당 부서의 그룹을 포함할 수 있습니다.

다음과 같이 그룹을 정의할 수 있습니다.

숫자 형식
긴 형식
짧은 형식
부모 그룹

1000

TMAX

T

1100

TMAX_DATA

T_DATA

T

1200

TMAX_SOFT

T_SOFT

T

관리자 권한 작동 방식

Label Security 관리자가 설정 한 권한에 따라 사용자의 접근을 제어합니다.

권한 부여 레벨

관리자는 사용자에게 Label Security 정책에 대한 레벨 권한을 명시적으로 설정할 수 있습니다.

권한 부여
설명

사용자 최대 레벨

사용자가 읽기/쓰기 작업 중 접근 가능한 최대 레벨

사용자 최소 레벨

사용자가 쓰기 작업 중 접근 가능한 최소 레벨 (사용자 최대 레벨은 사용자 최 소 레벨보다 크거나 같아야 함)

사용자 기본 레벨

기본적으로 설정되는 레벨

사용자 기본 행 레벨

데이터를 삽입할 때 기본적으로 사용되는 레벨

권한 부여 구획

관리자는 사용자가 접근할 수 있는 구획을 명시적으로 지정할 수 있습니다. 쓰기 권한이 없는 구획이 포함된 행을 직접 삽입, 업데이트 또는 삭제할 수 없습니다.

다음은 사용자에게 지정한 구획에 대한 예입니다.

짧은 이름
긴 이름
쓰기
기본

A

알파 (ALPHA)

YES

YES

YES

B

베타(BETA)

YES

YES

NO

C

감마(GAMMA)

YES

YES

NO

권한 부여 그룹

관리자는 사용자가 접근할 수 있는 그룹을 명시적으로 지정할 수 있습니다. 다음은 사용자에게 지정한 그룹에 대한 예입니다.

Label Security 정책 생성

본 절에서는 Label Security의 정책을 생성하는 방법과 그 과정을 설명합니다.

Label Security 정책 컨테이너 생성

Label Security 정책 컨테이너는 정책에 대한 메타 데이터를 저장합니다. 이 컨테이너는 정책의 이름, 정책을 부여할 테이블에 추가되는 열의 이름, 정책에 대한 기본 옵션을 담고 있습니다.

다음은 정책을 생성하는 구문에 대한 예입니다.

Default option은 정책을 특정 테이블에 적용할 때, 테이블 옵션을 부여하지 않을 경우 설정되는 기본 옵션 입니다.

Label Security 정책에 대한 데이터 레이블 생성

데이터 레이블은 테이블 행 의 민감도를 나타냅니다.

데이터 레이블의 구성요소는 레벨, 구획, 그룹이 있습니다.

구성요소
설명

레벨

등급에 따른 구분 (예: 기밀(SECRET), 대외비(CONFIDENTIAL), 공개(PUBLIC))

구획

영역에 따른 구분 (예: 알파(ALPHA), 베타(BETA), 감마(GAMMA))

그룹

계층에 따른 구분 (예: TMAX, TMAX_DATA, TMAX_SOFT)

정책에 대한 레벨 생성

레벨은 등급에 따른 구분입니다. 숫자가 클수록 높은 보안 등급을 의미합니다.

숫자 형식
긴 형식
짧은 형식

30

기밀 (SECRET)

S

20

대외비 (CONFIDENTIAL)

C

10

공개 (PUBLIC)

P

다음은 정책에 대한 레벨을 생성하는 예입니다.

정책에 대한 구획 생성

구획은 영역에 따른 구분입니다. 사용자는 자신이 속한 영역의 데이터를 읽을 수 있습니다.

숫자 형식
긴 형식
짧은 형식

80

알파 (ALPHA)

A

50

베타 (BETA)

B

20

감마 (GAMMA)

G

다음은 정책에 대한 구획을 생성하는 예입니다.

정책에 대한 그룹 생성

그룹은 계층에 따른 구분입니다. 사용자는 자신이 속한 조직의 데이터를 읽을 수 있습니다.

숫자 형식
긴 형식
짧은 형식
부모 그룹

1000

TMAX

T

1100

TMAX_DATA

T_DATA

T

1200

TMAX_SOFT

T_SOFT

T

다음은 정책에 대한 그룹을 생성하는 예입니다.

데이터 레이블 생성

SA_LABEL_ADMIN.CREATE_LABEL을 통해 데이터 레이블을 생성할 수 있습니다. 다음은 데이터 레이블을 생성하는 예입니다.

circle-info

참고

모든 정책에 대해 레이블 테그(label_tag)는 유일해야 하며, 같은 정책 내에서 같은 레이블 값(label_val ue)에 서로 다른 레이블 테그를 설정하는 것은 불가능합니다. 하지만 다른 정책에 대해서는 레이블 값 이 동일 하더라도 서로 다른 레이블 테그를 설정할 수 있습니다.

Label Security 정책에 대한 사용자 권한 부여

사용자 레이블은 SA_USER_ADMIN.SET_LEVELS, SA_USER_ADMIN.SET_COMPARTMENTS, SA_USER_ADMIN.SET_GROUPS 프러시저를 통해 부여할 수 있습니다.

정책에 대한 사용자 레벨 부여

레벨은 SA_USER_ADMIN.SET_LEVELS 프러시저를 통해 부여할 수 있습니다. 다음은 정책에 대한 사용자 레벨을 부여하는 예입니다.

매개 변수
설명

policy_name

정책 이름

user_name

정책이 적용될 사용자 이름

max_level

사용자가 읽기/쓰기 작업 중 접근 가능한 최대 레벨

min_level

사용자가 쓰기 잡업 중 접근 가능한 최소 레벨(사용자 최대 레벨은 사용자 최 소 레벨보다 크거나 같아야 합니다.)

def_level

기본적으로 설정되는 레벨

row_level

데이터를 삽입할 때 기본적으로 사용되는 레벨

정책에 대한 사용자 구획 부여

레벨을 설정한 후 선택적으로 구획을 사용자에게 부여할 수 있습니다. SA_USER_ADMIN.SET_COMPART MENTS 프러시저를 통해 부여할 수 있습니다.

다음은 정책에 대한 사용자 구획을 부여하는 예입니다.

매개 변수
설명

policy_name

정책 이름

user_name

정책이 적용될 사용자 이름

read_comps

읽기 가능한 구획

write_comps

쓰기 가능한 구획

def_comps

기본적으로 설정되는 구획

row_comps

데이터를 삽입할 때 기본적으로 사용되는 구획

정책에 대한 사용자 그룹 부여

레벨을 설정한 후 선택적으로 그룹을 사용자에게 부여할 수 있습니다. SA_USER_ADMIN.SET_GROUPS 프 러시저를 통해 부여할 수 있습니다.

다음은 정책에 대한 사용자 그룹을 부여하는 예입니다.

매개 변수
설명

policy_name

정책 이름

user_name

정책이 적용될 사용자 이름

read_groups

읽기 가능한 그룹

write_groups

쓰기 가능한 그룹

def_groups

기본적으로 설정되는 그룹

row_groups

데이터를 삽입할 때 기본적으로 사용되는 그룹

데이터베이스 테이블에 정책 적용

테이블에 대한 정책 적용은 SA_POLICY_ADMIN.APPLY_TABLE_POLICY 프러시저를 통해 할 수 있습니다. 다음은 데이터베이스 테이블에 정책을 적용하는 예입니다.

매개 변수
설명

policy_name

정책 이름

schema_name

스키마 이름

table_name

정책이 적용될 테이블 이름

table_options

정책 시행 옵션

label_function

Label 함수의 문자열

predicate

Read control과 함께 쓰이는 조건

Last updated