패브릭 데이터 웨어하우징의 동적 데이터 마스킹

적용 대상: Microsoft Fabric의 SQL 분석 엔드포인트 및 웨어하우스

동적 데이터 마스킹은 권한이 없는 사용자에게 마스킹하여 중요한 데이터 노출을 제한합니다. 애플리케이션의 보안 설계 및 코딩을 크게 간소화하는 데 사용됩니다.

동적 데이터 마스킹은 관리자가 애플리케이션 계층에 미치는 영향을 최소화하면서 표시할 중요한 데이터의 양을 지정할 수 있도록 하여 중요한 데이터를 무단으로 볼 수 없도록 합니다. 지정된 데이터베이스 필드에 동적 데이터 마스킹을 구성하여 쿼리의 결과 집합에서 중요한 데이터를 숨길 수 있습니다. 동적 데이터 마스킹을 사용하면 데이터베이스의 데이터가 변경되지 않으므로 마스킹 규칙이 쿼리 결과에 적용되므로 기존 애플리케이션에서 사용할 수 있습니다. 많은 애플리케이션은 기존 쿼리를 수정하지 않고 중요한 데이터를 마스킹할 수 있습니다.

  • 중앙 데이터 마스킹 정책은 데이터베이스의 중요한 필드에서 직접 작동합니다.
  • 중요한 데이터에 액세스할 수 있는 권한 있는 사용자 또는 역할을 지정합니다.
  • 동적 데이터 마스킹은 전체 마스킹 및 부분 마스킹 함수와 숫자 데이터에 대한 임의 마스크를 제공합니다.
  • 간단한 Transact-SQL 명령에서 마스크를 정의하고 관리합니다.

동적 데이터 마스킹의 목적은 중요한 데이터의 노출을 제한하여 데이터에 대한 액세스 권한이 없는 사용자가 보지 못하게 하는 것이지 데이터베이스 사용자가 데이터베이스에 직접 연결하여 중요한 데이터 조각을 노출하는 과도한 쿼리를 실행하지 못하게 하는 것은 아닙니다.

동적 데이터 마스킹은 열 수준 보안 및 행 수준 보안과 같은 다른 패브릭 보안 기능과 보완됩니다. 데이터베이스의 중요한 데이터를 보호하기 위해 이러한 데이터 보호 기능을 함께 사용하는 것이 좋습니다.

동적 데이터 마스크 정의

해당 열의 데이터를 난독 처리하기 위해 테이블의 열에 마스킹 규칙을 정의할 수 있습니다. 5가지 유형의 마스크를 사용할 수 있습니다.

함수 설명 예제
기본값 지정된 필드의 데이터 형식에 따른 전체 마스킹입니다.

문자열 데이터 형식의 경우 필드 크기가 4자 미만인 경우(문자, nchar, varchar, nvarchar, text, ntext)를 사용합니다 XXXX .

숫자 데이터 형식의 경우 0 값(bigint, bit, decimal, int, money, numeric, smallint, smallmoney, tinyint, float, real)을 사용합니다.

날짜 및 시간 데이터 형식의 경우 (date, datetime2, datetime, datetimeoffset, smalldatetime, time)을 사용합니다 1900-01-01 00:00:00.0000000 .

이진 데이터 형식의 경우 ASCII 값 0의 단일 바이트(이진, varbinary, 이미지)를 사용합니다.
열 정의 구문 예제: Phone# varchar(12) MASKED WITH (FUNCTION = 'default()') NULL

alter 구문의 예: ALTER COLUMN Gender ADD MASKED WITH (FUNCTION = 'default()')
메일 이메일 주소의 형식에서 이메일 주소의 첫 번째 문자와 상수 접미사 ".com"을 표시하는 마스킹 방법입니다. aXXX@XXXX.com. 예제 정의 구문: Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULL

alter 구문의 예: ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()')
임의 임의의 숫자 형식에서 사용할 임의 마스킹 함수로, 지정된 범위 내의 임의 값으로 원래 값을 마스킹합니다. 예제 정의 구문: Account_Number bigint MASKED WITH (FUNCTION = 'random([start range], [end range])')

alter 구문의 예: ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)')
사용자 지정 문자열 첫 번째 문자와 마지막 문자를 노출하고 중간에 사용자 지정 안쪽 여백 문자열을 추가하는 마스킹 메서드입니다. prefix,[padding],suffix

원래 값이 너무 짧아 전체 마스크를 완료할 수 없는 경우 접두사 또는 접미사의 일부가 노출되지 않습니다.
예제 정의 구문: FirstName varchar(100) MASKED WITH (FUNCTION = 'partial(prefix,[padding],suffix)') NULL

alter 구문의 예: ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)')

이렇게 하면 전화 번호가 다음과 같이 555.123.12345XXXXXXX뀝니다.

추가 예제:

ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(5,"XXXXXXX",0)')

이렇게 하면 전화 번호가 다음과 같이 555.123.1234555.1XXXXXXX뀝니다.

자세한 예제는 Synapse Data Warehouse에서 동적 데이터 마스킹을 구현하는 방법을 참조하세요.

사용 권한

작업 영역에 대한 관리istrator, Member 또는 Contributor 권한이 없고 웨어하우스에 대한 상승된 권한이 없는 사용자는 마스킹된 데이터를 볼 수 있습니다.

동적 데이터 마스크를 사용하여 테이블을 만들려면 특별한 권한이 필요하지 않으며 표준 CREATE TABLEALTER 스키마 권한에만 해당합니다.

열의 마스크를 추가, 바꾸기 또는 제거하려면 테이블에 대한 사용 권한과 ALTER 권한이 필요합니다ALTER ANY MASK. 보안 책임자에게 부여하는 ALTER ANY MASK 것이 적절합니다.

테이블에 대한 권한이 있는 SELECT 사용자는 테이블 데이터를 볼 수 있습니다. 마스킹으로 정의된 열은 마스킹된 데이터를 표시합니다. 마스킹이 UNMASK 정의된 열에서 마스크되지 않은 데이터를 검색할 수 있도록 사용자에게 권한을 부여합니다.

데이터베이스에 대한 권한에는 CONTROL 사용자가 마스크되지 않은 데이터를 볼 수 있는 권한과 UNMASK 권한이 모두 ALTER ANY MASK 포함됩니다. 관리이상 사용자 또는 역할(예: 관리, 멤버 또는 기여자)은 기본적으로 데이터베이스에 대한 CONTROL 권한을 가지며 기본적으로 마스크되지 않은 데이터를 볼 수 있습니다. 웨어하우스에 대한 상승된 권한에는 사용 권한이 포함됩니다 CONTROL .

보안 고려 사항: 유추 또는 무차별 암호 대입 기술을 사용하여 마스킹 무시

동적 데이터 마스킹은 애플리케이션에서 사용하는 미리 정의된 쿼리 집합에서 데이터 노출을 제한하여 애플리케이션 개발을 간소화하도록 설계되었습니다. 동적 데이터 마스킹은 데이터에 직접 액세스할 때 중요한 데이터가 실수로 노출되는 것을 방지하는 데 유용할 수도 있지만, 쿼리 권한이 있는 권한 없는 사용자는 실제 데이터에 액세스하기 위한 기술을 적용할 수 있다는 점에 유의해야 합니다.

예를 들어 웨어하우스에서 쿼리를 실행할 수 있는 충분한 권한이 있는 사용자를 고려하고 기본 데이터를 '추측'하고 궁극적으로 실제 값을 유추하려고 합니다. 열에 마스크가 정의되어 있고 이 사용자가 데이터베이스에 [Employee].[Salary] 직접 연결하고 값 추측을 시작하여 결국 테이블의 [Salary] 값을 Employees 유추한다고 가정합니다.

SELECT ID, Name, Salary FROM Employees
WHERE Salary > 99999 and Salary < 100001;

결과:

ID 이름 급여
62543 신원 미상 0
91245 John Smith 0

이는 동적 데이터 마스킹을 단독으로 사용하여 웨어하우스 또는 SQL 분석 엔드포인트에 대한 쿼리 액세스 권한이 있는 사용자의 중요한 데이터를 완전히 보호해서는 안 됨을 보여 줍니다. 중요한 데이터 노출을 방지하는 데 적합하지만 기본 데이터를 유추하려는 악의적인 의도로부터 보호하지는 않습니다.

SQL 세분화된 권한으로 개체 수준 보안을 적절하게 관리하고 항상 필요한 최소한의 권한 원칙을 따르는 것이 중요합니다.

다음 단계