동적 데이터 마스킹 구현

완료됨

동적 데이터 마스킹은 노출을 제한하기 위해 데이터를 난독 처리하여 작동합니다. 중요한 데이터를 볼 필요가 없는 사용자는 데이터가 포함된 열을 볼 수 있지만 실제 데이터 자체는 볼 수 없습니다. 동적 데이터 마스킹은 프레젠테이션 계층에서 작동하며, 마스킹되지 않은 데이터는 항상 높은 권한이 있는 사용자가 볼 수 있습니다.

동적 데이터 마스킹은 애플리케이션 또는 데이터베이스를 많이 수정할 필요가 없다는 장점이 있습니다. 아래와 같이 Azure Portal 또는 T-SQL 사용하여 구성할 수 있습니다.

Screenshot of the dynamic data masking T-SQL commands.

위의 예제에서 PhoneNumberEmailAddress 열은 테이블에 대한 SELECT 권한만 있는 DDMDemo 사용자에게 숨겨져 있습니다. 전화 번호는 열의 마지막 4자리를 제외한 모든 숫자를 대체하는 partial 기능을 사용하여 마스킹되므로 사용자는 전화 번호의 마지막 4자리를 볼 수 있습니다. 이 마스킹은 사용자 지정 함수로 간주됩니다. T-SQL 외에도 Azure SQL Database를 사용하는 경우 Azure Portal에서 동적 마스킹 규칙을 만들 수 있습니다.

Screenshot of how to add masking rule in Azure portal.

Azure Portal에서 데이터베이스로 이동하고 데이터베이스용 기본 블레이드의 보안 섹션에서 동적 데이터 마스킹을 선택하여 마스킹 규칙을 추가하는 화면에 도달할 수 있습니다.

동적 데이터 마스킹에서는 사용할 수 있는 다음 마스킹 패턴을 지원합니다.

마스킹 함수 정의 T-SQL 예제
기본값 값의 일부를 사용자에게 노출하지 않고 열의 데이터를 완전히 마스킹합니다. 문자열 값으로는 XXXX, 숫자로는 0, 날짜 값으로는 01.01.1900이 표시됩니다. ALTER TABLE [Customer] ALTER COLUMN Address ADD MASKED WITH (FUNCTION = 'default()')
신용 카드 사용자가 마지막 4자리를 볼 수 있도록 마지막 4개의 문자를 제외한 모두를 마스킹합니다. 이 마스킹은 신용 카드 번호의 마지막 4자리는 확인해야 하지만 전체 숫자를 볼 필요는 없는 고객 서비스 에이전트에 유용할 수 있습니다. 데이터는 신용 카드 번호 XXXX-XXXX-XXXX-1234의 일반적인 형식으로 표시됩니다. ALTER TABLE [Customer] ALTER COLUMN Address ADD MASKED WITH (FUNCTION = 'partial(0,"XXXX-XXXX-XXXX-",4)')
Email 첫 번째 문자와 후행 도메인 접미사만 마스킹되지 않습니다. 예: "aXXX@XXXXXXX.com" ALTER TABLE [Customer] ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()')
Number 이 마스킹 형식은 숫자 열에 사용해야 합니다. 실제 값이 아니라 마스킹된 값으로 난수를 표시합니다. 쿼리마다 다른 숫자가 표시됩니다. ALTER TABLE [Customer] ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)')
사용자 지정 문자열 이 옵션을 사용하면 텍스트를 임의의 값으로 마스킹하고 마스킹된 값의 양 끝에 사용자 지정된 문자 수를 표시할 수 있습니다. 마스킹될 값의 길이가 마스크가 표시되도록 지정하는 문자 수보다 작거나 같으면 마스킹된 문자만 표시됩니다. ALTER TABLE [Customer] ALTER COLUMN [PhoneNumber] ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)')

사용자가 마스킹이 정의된 열에서 마스킹되지 않은 데이터를 검색할 수 있도록 하려면 UNMASK 권한을 명시적으로 부여해야 합니다.

참고

결과에 따라 유추를 사용하여 마스킹된 데이터를 식별할 수 있습니다. 데이터 마스킹을 사용하는 경우 사용자가 임시 쿼리를 실행하는 기능도 제한해야 합니다.

이러한 이유로 중요한 데이터를 더 잘 보호하기 위해 감사, 암호화, 행 수준 보안과 같은 다른 보안 기능과 함께 동적 데이터 마스킹을 사용하는 것이 좋습니다.

사용 사례

데이터 마스킹은 간단하고 간단한 기능이며 다음을 비롯한 다양한 시나리오에 적합합니다.

  • 데이터베이스에 직접 액세스할 수 없는 애플리케이션 사용자로부터 데이터를 마스킹합니다.

  • 사용자 그룹에 대한 개인 정보를 제한합니다.

  • 데이터의 항목 간 관계를 유지하면서 중요한 정보를 보호해야 하는 외부 공급업체에 마스킹된 데이터를 제공합니다.

  • UNMASK 권한이 없는 사용자를 사용하여 개발 목적으로 프로덕션 데이터베이스의 복사본을 더 낮은 환경으로 내보냅니다. 데이터 내보내기 형식은 마스킹됩니다.

데이터 가져오기 및 내보내기

SELECT INTO 또는 INSERT INTO를 사용하여 마스킹된 열에서 다른 테이블로 데이터를 복사하면 대상 테이블에 마스킹된 데이터가 생성됩니다.

UNMASK 권한이 없는 사용자가 SQL Server 가져오기 및 내보내기를 실행하면 내보낸 데이터 파일에는 마스킹된 데이터가 포함되고 가져온 데이터베이스에는 비활성 마스킹된 데이터가 포함됩니다.

동적 데이터 마스킹의 작동 방식에 대한 자세한 내용은 동적 데이터 마스킹을 참조하세요.