CLS(열 수준 보안)는 테이블에 대한 모든 액세스 권한 대신 테이블에서 선택한 열에 액세스할 수 있는 OneLake 보안 의 기능입니다. CLS를 사용하면 사용자가 액세스할 수 있는 테이블의 하위 집합을 지정할 수 있습니다. 목록에서 제거된 열의 데이터는 사용자에게 표시되지 않습니다.
필수 조건
- OneLake 보안을 지원하는 데이터 항목입니다. 지원되는 항목 유형 목록은 OneLake 보안 시작을 참조하세요.
- 알려진 제한 사항 섹션을 검토합니다.
열 수준 보안 이해
OneLake 보안 CLS는 다음 두 가지 방법 중 하나로 적용됩니다.
- 패브릭 엔진의 필터링된 테이블: Spark Notebook과 같은 패브릭 엔진을 쿼리하면 CLS 규칙에 따라 볼 수 있는 열만 사용자에게 표시됩니다.
- 테이블에 대한 액세스 차단: CLS 규칙이 적용된 테이블은 지원되는 패브릭 엔진 또는 OneLake 보안을 적용하는 권한 있는 타사 엔진 외부에서 읽을 수 없습니다. 권한이 없는 엔진에 대한 액세스가 차단됩니다.
필터링된 표의 경우 다음과 같은 동작이 적용됩니다.
- CLS 규칙은 관리자, 멤버 및 참가자 역할이 있는 사용자에 대한 액세스를 제한하지 않습니다.
- CLS 규칙이 정의된 테이블과 일치하지 않으면 쿼리가 실패하고 열이 반환되지 않습니다. CLS가 테이블에 포함되지 않은 열에 대해 정의된 경우를 예로 들 수 있습니다.
- 사용자가 두 개의 다른 역할에 속해 있고 그 역할 중 하나에 RLS(행 수준 보안)가 있는 경우, CLS 테이블 쿼리는 오류와 함께 실패합니다.
- CLS 규칙은 델타 parquet 테이블 개체에만 적용할 수 있습니다.
- 델타가 아닌 테이블 개체에 적용되는 CLS 규칙은 역할의 멤버에 대한 전체 테이블에 대한 액세스를 차단합니다.
- 사용자가 일부 열에만 액세스할 수 있는 테이블에서 쿼리를 실행하는
select *경우 CLS 규칙은 패브릭 엔진에 따라 다르게 동작합니다.- Spark Notebook: 쿼리가 성공하고 허용된 열만 표시됩니다.
- SQL 분석 엔드포인트: 사용자가 액세스할 수 없는 열에 대해 열 액세스가 차단됩니다.
- 의미 체계 모델: 사용자가 액세스할 수 없는 열에 대한 열 액세스는 차단됩니다.
- 보안 열의 이름은 특정 환경에서 볼 수 있지만 데이터 값은 표시되지 않습니다.
권한 있는 엔진에서 데이터 액세스
지원되는 Fabric 엔진 CLS 규칙이 적용된 테이블에 액세스할 수 있습니다.
Tip
- SQL 분석 엔드포인트에서 데이터에 액세스하려면 SQL 분석 엔드포인트에 OneLake 보안을 사용하도록 설정합니다.
- 의미 체계 모델에서 데이터에 액세스하려면 의미 체계 모델이 OneLake에서 Direct Lake를 사용해야 합니다.
권한 있는 타사 엔진은 권한 있는 엔진 API를 사용하여 OneLake에서 사용자에 대한 효과적인 열 액세스를 검색하고 쿼리 시 CLS를 적용할 수 있습니다. OneLake는 단일 진실의 출처로 남아 있으며, OneLake에서 작성된 CLS 정의는 패브릭 엔진과 권한이 부여된 외부 엔진 전반에 걸쳐 일관되게 적용됩니다.
자세한 내용은 타사 엔진과 OneLake 보안 통합을 참조하세요.
열 수준의 보안 규칙을 정의합니다.
항목의 테이블 섹션에 있는 델타-parquet 테이블에 대한 OneLake 보안 역할의 일부로 열 수준 보안을 정의할 수 있습니다. CLS는 항상 테이블에 대해 지정되며 사용하도록 설정되거나 사용하지 않도록 설정됩니다. 기본적으로 CLS는 사용하지 않도록 설정되어 있으며 사용자는 모든 열에 액세스할 수 있습니다. 사용자는 CLS를 사용하도록 설정하고 목록에서 열을 제거하여 액세스 권한을 철회할 수 있습니다.
중요합니다
열에 대한 액세스 권한을 제거해도 다른 역할이 해당 열에 대한 액세스 권한을 부여한 경우에는 해당 열에 대한 액세스 권한이 거부되지 않습니다.
열 수준 보안을 정의하려면 다음 단계를 따릅니다.
데이터 항목으로 이동하고 OneLake 보안 관리를 선택합니다.
테이블 또는 폴더 보안을 정의할 기존 역할을 선택하거나 새로 만들기를 선택하여 새 역할을 만듭니다.
역할 세부 정보 페이지에서 CLS를 정의할 테이블 옆에 있는 추가 옵션(...)을 선택한 다음 열 보안을 선택합니다.
기본적으로 테이블에 대한 CLS는 사용하지 않도록 설정되어 있습니다. CLS 사용을 선택하거나 새 규칙을 만들어 사용하도록 설정합니다.
UI에는 사용자가 볼 수 있는 해당 테이블의 열 목록이 채워집니다. 기본적으로 모든 열이 표시됩니다.
열에 대한 액세스를 제한하려면 열 이름 옆에 있는 확인란을 선택한 다음 제거를 선택합니다. 허용 열 목록에 최소한 하나의 열이 남아 있어야 합니다.
저장을 선택하여 역할을 업데이트합니다.
제거된 열을 추가하려면 새 규칙을 선택합니다. 이 작업을 수행하면 목록 끝에 새로운 CLS 규칙 항목이 추가됩니다. 그런 다음 드롭다운을 사용하여 액세스에 포함할 열을 선택합니다.
변경 내용을 완료한 후 저장을 선택합니다.
행 수준 및 열 수준 보안을 결합합니다.
행 수준 및 열 수준 보안을 함께 사용하여 테이블에 대한 사용자 액세스를 제한할 수 있습니다. 그러나 두 정책은 단일 OneLake 보안 역할을 사용하여 적용해야 합니다. 이 시나리오에서는 한 역할에 설정된 규칙에 따라 데이터 액세스가 제한됩니다.
OneLake 보안은 RLS 규칙을 포함하는 하나와 CLS 규칙을 포함하는 두 개 이상의 역할의 조합을 지원하지 않습니다. 지원되지 않는 역할 조합에 속하는 테이블에 액세스하려는 사용자는 쿼리 오류를 받습니다.