ABAC 정책 디자인 및 태그 거버넌스에 대한 다음 모범 사례를 고려합니다.
특성 표준화 및 명명
정책을 만들기 전에 일관된 태그 지정 분류를 설정합니다. 팀 전체에서 태그 키 이름, 허용되는 값 및 명명 규칙에 동의합니다. 잘 정의된 작은 태그 집합은 임시 태그가 확산되는 것보다 관리하기 쉽습니다.
예를 들어, is_sensitive, data_class, pii_level와 같은 여러 겹치는 태그를 사용하는 대신, 제어된 값(public, internal, confidential, restricted)이 있는 단일 sensitivity 태그를 사용합니다.
태그를 설정할 수 있는 사람 제어
태그 지정은 ABAC의 보안 경계입니다. 사용자가 데이터 자산에 대한 태그를 변경할 수 있는 경우 해당 자산에 적용되는 정책을 변경할 수 있습니다. 잘못된 태그나 누락된 태그는 올바른 태그가 있는 경우에만 정책이 적용되므로 데이터를 보호하지 않거나 액세스할 수 없게 만들 수 있습니다.
- 태그 만들기 및 수정을 권한 있는 데이터 관리자 또는 거버넌스 관리자로 제한합니다. 태그 권한을 구성하는 방법은 관리 태그 를 참조하세요.
- 감사 로그 시스템 테이블을 사용하여 태그가 정기적으로 변경됩니다.
분류되지 않은 데이터에 대한 대체 규칙 설정
모든 개체에 태그가 올바르게 지정되어 있다고 가정하지 마세요. 자동화를 사용하여 태그 지정 표준을 적용하고 분류되지 않은 데이터에 대한 대체 메커니즘을 구현합니다.
- 데이터 관리자가 검토할 때까지 새 개체에 기본 제한 태그(예:
classification : unverified)를 적용합니다. - 기본 태그를 사용하여 개체에 대한 액세스를 제한하는 정책을 만듭니다.
자세한 예제는 중요한 열에 태그가 지정될 때까지 액세스 방지를 참조하세요.
적용 가능한 가장 높은 범위에서 정책 정의
가능하면 카탈로그 또는 스키마 수준에서 정책을 연결합니다. 테이블 수준 정책은 드물며 예외여야 합니다.
카탈로그 범위 정책은 카탈로그의 모든 테이블에 대해 평가되고 스키마 범위 정책은 스키마의 모든 테이블에 대해 평가됩니다. 새 테이블을 추가할 때 기존 정책은 태그가 정책의 조건과 일치하는 한 적용됩니다.
정책 확산 방지
ABAC는 액세스 제어 규칙 수를 줄이지 않고 늘리지 않도록 설계되었습니다. 팀이 태그와 정책을 너무 많이 만들면 결과를 관리하고 감사하기가 어렵습니다.
- 정책을 만들기 전에 거버넌스 요구 사항을 분석합니다.
- 카탈로그 또는 지역 행 필터링에서 PII 마스킹과 같은 소수의 광범위한 정책으로 시작합니다.
- 모든 에지 사례에 대해 별도의 정책을 만들지 않습니다.
- 정책을 주기적으로 검토하고 겹치는 정책을 통합합니다.
많은 수의 정책과 복잡한 조건으로 인해 권한 부여 검사가 느려질 수 있습니다. 자세한 내용은 성능 고려 사항을 참조하세요.
주 대상 지정에 대해 TO/EXCEPT을 선호합니다.
가능하면 정책의 TO 및 EXCEPT 절을 사용하여 정책이 적용되는 사용자 및 그룹을 정의합니다. 이렇게 하면 UDF 논리가 단순하게 유지됩니다. 이 절은 EXCEPT 특정 사용자를 정책에서 완전히 제외하므로 필터링 또는 마스킹이 적용되지 않습니다. 복잡한 조건부 논리가 필요한 경우 UDF 내부와 같은 is_account_group_member() ID 함수는 유효한 옵션으로 유지됩니다.
자세한 내용은 주체 대상으로 하는 접근 방법을 참조하세요.
동적 정책 평가 계획
ABAC 정책은 동적입니다. 테이블 정의에 직접 표시되는 테이블 수준 행 필터 및 열 마스크와 달리 ABAC 정책은 사용자의 ID 및 그룹 멤버 자격과 정책 범위의 데이터 개체에 대한 태그를 기반으로 쿼리 시간에 평가합니다. 이렇게 하면 데이터 소비자와 테이블 소유자가 지정된 테이블에 적용되는 액세스 규칙을 이해하기 어려울 수 있습니다.
- 특정 테이블에 적용되는 내용을 확인하는 데 사용합니다
SHOW EFFECTIVE POLICIES. - 팀이 각 정책을 개별적으로 검사하지 않고 거버넌스 모델을 이해할 수 있도록 태그 지정 분류, 정책 및 그룹 관리 접근 방식을 문서화합니다.
- 특정 테이블에 투명도가 중요한 경우 격리된 사례에 대해 테이블 수준 행 필터 및 열 마스크를 대신 사용하는 것이 좋습니다. 가능한 충돌을 먼저 해결해야 합니다.
자세한 정보
| 주제 | Description |
|---|---|
| 성능 고려 사항 | ABAC 정책 디자인이 쿼리 성능에 미치는 영향 및 정책을 최적화하고 테스트하는 방법입니다. |
| ABAC와 테이블 수준 행 필터 및 열 마스크를 사용해야 하는 경우 | 범위, 소유권 및 두 방법 중에서 선택하는 방법의 차이점입니다. |
| 델타 공유 및 ABAC | 델타 공유를 통해 ABAC로 보호된 테이블을 공유하고, 받는 사람 쪽 정책을 처리하고, 받는 사람-로컬 보기를 설정하는 방법입니다. |