다음을 통해 공유


패브릭 데이터 웨어하우스에서 동적 데이터 마스킹을 구현하는 방법

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

동적 데이터 마스킹은 조직이 데이터베이스 내에서 중요한 정보를 보호하는 데 도움이 되는 최첨단 데이터 보호 기술입니다. 이를 통해 특정 열에 대한 마스킹 규칙을 정의하여 권한 있는 사용자만 원본 데이터를 보는 동시에 다른 사용자를 위해 데이터를 숨길 수 있습니다. 동적 데이터 마스킹은 액세스 권한에 따라 사용자에게 제공되는 데이터를 동적으로 변경하여 추가 보안 계층을 제공합니다.

자세한 정보는, 패브릭 데이터 웨어하우징의 동적 데이터 마스킹을 참조하세요.

필수 조건

시작하기 전에 다음을 확인합니다.

  1. 활성 용량 또는 평가판 용량이 있는 Microsoft Fabric 작업 영역입니다.
  2. 웨어하우스.
    1. 동적 데이터 마스킹은 SQL 분석 엔드포인트에서 작동합니다. 이 문서의 뒷부분에 설명된 대로 ALTER TABLE ... ALTER COLUMN을(를) 사용해 기존 열에 마스크를 추가할 수 있습니다.
    2. 이 연습에서는 웨어하우스를 사용합니다.
  3. 관리하려면 작업 영역에 대한 관리자, 구성원 또는 기여자 권한이 있는 사용자 또는 웨어하우스에 대한 상승된 권한을 가진 사용자입니다.
    1. 이 자습서에서는 "관리자 계정"을 참조하세요.
  4. 테스트하려면 작업 영역에 대한 관리자, 구성원 또는 기여자 권한이 없고 웨어하우스에 대한 상승된 권한이 없는 사용자입니다.
    1. 이 자습서에서는 "테스트 사용자"입니다.

1. 연결

  1. 패브릭 작업 영역을 열고 동적 데이터 마스킹을 적용하려는 웨어하우스로 이동합니다.
  2. 웨어하우스에 대한 관리자/구성원/기여자 역할 또는 웨어하우스에 대한 제어 권한 중 하나에서 높은 액세스 권한이 있는 계정을 사용하여 로그인합니다.

2. 동적 데이터 마스킹 구성

  1. 관리자 계정을 사용하여 Fabric Portal 에 로그인합니다.

  2. 패브릭 작업 영역에서 웨어하우스로 이동합니다.

  3. 새 SQL 쿼리 옵션을 선택하고 비어 있는 상태에서 새 SQL 쿼리를 선택합니다.

  4. SQL 스크립트에서 MASKED WITH FUNCTION 절을 사용하여 동적 데이터 마스킹 규칙을 정의합니다. 예시:

    CREATE TABLE dbo.EmployeeData (
        EmployeeID INT
        ,FirstName VARCHAR(50) MASKED WITH (FUNCTION = 'partial(1,"-",2)') NULL
        ,LastName VARCHAR(50) MASKED WITH (FUNCTION = 'default()') NULL
        ,SSN CHAR(11) MASKED WITH (FUNCTION = 'partial(0,"XXX-XX-",4)') NULL
        ,email VARCHAR(256) NULL
        );
    GO
    INSERT INTO dbo.EmployeeData
        VALUES (1, 'TestFirstName', 'TestLastName', '123-45-6789','email@youremail.com');
    GO
    INSERT INTO dbo.EmployeeData
        VALUES (2, 'First_Name', 'Last_Name', '000-00-0000','email2@youremail2.com');
    GO
    
    • FirstName 열은 문자열의 첫 번째 문자와 마지막 두 문자만 가운데의 -와 함께 표시합니다.
    • LastName 열에 XXXX이(가) 표시됩니다.
    • SSN 열에 문자열의 마지막 네 글자 뒤에 따르는 XXX-XX-이(가) 표시됩니다.
  5. 실행 단추를 선택하여 스크립트를 실행합니다.

  6. 스크립트 실행을 확인합니다.

  7. 스크립트는 지정된 동적 데이터 마스킹 규칙을 테이블의 지정된 열에 적용합니다.

3. 동적 데이터 마스킹 테스트

동적 데이터 마스킹 규칙이 적용되면 작업 영역에 대한 관리자, 구성원 또는 기여자 권한이 없거나 웨어하우스에 대한 상승된 권한이 없는 테스트 사용자로 테이블을 쿼리하여 마스킹을 테스트할 수 있습니다.

  1. 예를 들어 TestUser@contoso.com과 같이, Azure Data Studio 또는 SQL Server Management Studio와 같은 도구에 테스트 사용자로 로그인합니다.
  2. 테스트 사용자로서 테이블에 대해 쿼리를 실행합니다. 마스킹된 데이터는 정의한 규칙에 따라 표시됩니다.
    SELECT * FROM dbo.EmployeeData;
    
  3. 관리자 계정으로 테스트 사용자의 UNMASK 권한을 부여합니다.
    GRANT UNMASK ON dbo.EmployeeData TO [TestUser@contoso.com];
    
  4. 테스트 사용자로서 사용자가 마스크되지 않은 데이터를 볼 수 있도록 TestUser@contoso.com 로그인했는지 확인합니다.
    SELECT * FROM dbo.EmployeeData;
    
  5. 관리자 계정으로 테스트 사용자로부터 UNMASK 권한을 취소합니다.
    REVOKE UNMASK ON dbo.EmployeeData TO [TestUser];
    
  6. 테스트 사용자가 마스크되지 않은 데이터를 볼 수 없고 마스킹된 데이터만 볼 수 있는지 확인합니다.
    SELECT * FROM dbo.EmployeeData;
    
  7. 관리자 계정을 사용하여 역할에 대한 UNMASK 권한을 부여하고 해지할 수 있습니다.
    GRANT UNMASK ON dbo.EmployeeData TO [TestRole];
    REVOKE UNMASK ON dbo.EmployeeData TO [TestRole];
    

4. 동적 데이터 마스킹 규칙 관리 및 수정

기존 동적 데이터 마스킹 규칙을 관리하거나 수정하려면 새 SQL 스크립트를 만듭니다.

  1. MASKED WITH FUNCTION 절을 사용하여 기존 열에 마스크를 추가할 수 있습니다.

    ALTER TABLE dbo.EmployeeData
    ALTER COLUMN [email] ADD MASKED WITH (FUNCTION = 'email()');
    GO
    
    ALTER TABLE dbo.EmployeeData 
    ALTER COLUMN [email] DROP MASKED;
    

5 - 정리

  1. 이 테스트 테이블을 정리하려면 다음을 수행합니다.
    DROP TABLE dbo.EmployeeData;