분류 소개

이 항목에서는 분류의 작동 방식에 대한 정보를 제공합니다.

사용자 지정 분류자를 사용하는 방법에 대한 자세한 내용은 사용자 지정 데이터 분류 섹션을 참조하십시오.

이 항목의 내용:

개요

분류는 개인 데이터에 대한 필드와 메타데이터를 분석하여 Snowflake에서 정의된 시스템 태그를 열에 연결하는 다단계 프로세스이며, 데이터 엔지니어가 SQL과 Snowsight 를 사용하여 이 데이터를 추적할 수 있습니다. 데이터 엔지니어는 테이블의 열을 분류하여 고유 식별자(여권 또는 은행 계좌 데이터), 의사 식별자(개인이 거주하는 도시) 또는 민감한 값(개인의 급여)과 같이 추적하거나 보호해야 하는 특정 종류의 데이터가 열에 포함되어 있는지 확인할 수 있습니다.

데이터 엔지니어는 시스템 태그로 데이터를 추적하고 마스킹 또는 행 액세스 정책을 사용하여 데이터를 보호함으로써 데이터와 관련된 거버넌스 태세를 개선할 수 있습니다. 분류 및 데이터 보호 단계의 전체적인 결과는 데이터 프라이버시 규정 준수를 촉진하는 것입니다.

스키마의 단일 테이블이나 여러 테이블을 분류할 수 있습니다. Snowflake는 사전 정의된 시스템 태그 를 제공하여 열을 분류하고 태그를 지정하도록 지원하거나 사용자 지정 분류자를 사용하여 데이터에 대한 지식을 기반으로 고유한 의미 체계 카테고리를 정의할 수 있습니다. 채택하려는 거버넌스 태세에 따라 Snowflake 시스템 태그와 사용자 지정 분류자를 사용하는 접근 방식을 선택할 수도 있습니다.

분류는 데이터 프라이버시 및 데이터 거버넌스 관리자에게 다음과 같은 이점을 제공합니다.

데이터 액세스:

ID 및 액세스 관리 책임이 있는 관리자는 열 데이터를 분류한 결과를 통해 Snowflake 역할 계층 구조 를 평가하고 유지 관리하여 Snowflake 역할이 민감한 데이터 또는 PII 데이터에 대한 적절한 액세스 권한을 갖도록 해야 한다는 점을 알 수 있습니다.

데이터 공유:

분류 프로세스는 PII 데이터의 저장 위치를 식별하고 확인하는 데 도움이 될 수 있습니다. 그 뒤에, 데이터 공유 공급자는 분류 결과를 사용하여 데이터 공유 여부와 PII 데이터를 데이터 공유 컨슈머에게 제공하는 방법을 결정할 수 있습니다.

정책 적용:

뷰 또는 구체화된 뷰를 만들기 위해 기본 테이블의 열을 참조하는 것과 같이, PII 데이터가 포함된 열을 사용하면 마스킹 정책 또는 행 액세스 정책으로 데이터를 보호하는 최상의 접근 방식을 결정하는 데 도움이 될 수 있습니다.

시스템 태그 및 카테고리

시스템 태그는 Snowflake가 생성 및 유지 관리하고 공유 SNOWFLAKE 데이터베이스 에서 제공하는 태그입니다. 두 가지 분류 시스템 태그가 있는데, 둘 다 SNOWFLAKE.CORE 스키마에 있습니다.

  • SNOWFLAKE.CORE.SEMANTIC_CATEGORY

  • SNOWFLAKE.CORE.PRIVACY_CATEGORY

데이터 엔지니어는 이러한 태그를 개인 데이터 또는 민감한 데이터가 포함된 열에 할당합니다.

문자열 값:

Snowflake는 값이 문자열인 키-값 페어로 열에 시스템 태그의 할당을 저장합니다. Snowflake는 이러한 각 시스템 태그를 유지하므로 각 분류 시스템 태그에 허용되는 문자열 값을 정의합니다.

태그 이름 SEMANTIC_CATEGORYPRIVACY_CATEGORY 는 열 샘플링 프로세스 중에 Snowflake가 열 데이터에 할당하는 분류 카테고리에 해당합니다(즉, 태그 이름과 카테고리 이름이 같은 단어를 사용함).

의미 체계 카테고리:

의미 체계 카테고리는 개인 특성을 식별합니다.

분류가 지원하는 개인 특성 중 일부만 수록된 목록에 이름, 나이, 성별이 포함됩니다. 이 세 가지 특성은 열에 SEMANTIC_CATEGORY 태그를 할당할 때 가능한 문자열 값입니다.

분류를 통해 호주, 캐나다, 영국 등 다양한 국가의 정보를 검색할 수 있습니다. 예를 들어 테이블 열에 전화번호 정보가 포함된 경우 분석 프로세스로 이들 각국의 서로 다른 전화번호 값을 구별할 수 있습니다. 지원되는 국제 값의 전체 목록은 이 항목의 시스템 태그 및 카테고리 섹션을 참조하십시오.

개인정보 보호 카테고리:

분석에서 열 데이터가 의미 체계 카테고리에 해당하는 것으로 확인되면 Snowflake는 해당 열을 개인정보 보호 카테고리로 더 세부적으로 분류합니다. 개인정보 보호 카테고리에는 식별자, 준 식별자 또는 민감이라는 세 가지 값이 있습니다. 이 세 값은 열에 PRIVACY_CATEGORY 분류 시스템 태그를 할당할 때 지정할 수 있는 문자열 값입니다.

  • 식별자: 이 특성은 개인을 고유하게 식별합니다. 예제 특성은 이름, 주민 등록 번호, 전화 번호를 포함합니다.

    식별자 특성은 직접 식별자 와 동의어입니다.

  • 준 식별자: 이러한 특성이 2개 이상 결합된 경우 개인을 고유하게 식별할 수 있습니다. 예제 특성에는 연령과 성별이 포함됩니다.

    준 식별자는 간접 식별자 와 동의어입니다.

  • 민감: 이러한 특성은 개인을 식별하기에 충분하지 않은 것으로 간주되지만, 개인정보 보호상의 이유로 개인이 공개하지 않는 정보입니다.

    현재, Snowflake가 민감한 것으로 평가하는 유일한 특성은 급여입니다.

  • 민감하지 않음: 이러한 속성에는 개인 정보나 민감한 정보가 포함되지 않습니다.

다음 표에는 각 분류 카테고리와 시스템 태그 사이의 관계와 각 분류 시스템 태그의 문자열 값이 요약되어 있습니다. Snowflake는 특정 국가와 관련된 국제 SEMANTIC_CATEGORY 태그 값을 지원합니다. 국가 코드는 ISO-3166-1 alpha-2 표준을 기반으로 합니다. EMAIL, GENDER 등의 다른 의미 체계 카테고리에는 국가 코드가 없습니다. 국제 정보를 추적하기 위해, 데이터 엔지니어는 열에 시스템 태그를 설정할 때 SEMANTIC_CATEGORY 태그 값 열의 값을 사용합니다.

PRIVACY_CATEGORY 값

SEMANTIC_CATEGORY 값

지원되는 국가

IDENTIFIER

  • BANK_ACCOUNT

  • DRIVERS_LICENSE

  • MEDICARE_NUMBER

  • NATIONAL_IDENTIFIER

  • ORGANIZATION_IDENTIFIER

  • PASSPORT

  • PHONE_NUMBER

  • STREET_ADDRESS

  • TAX_IDENTIFIER

  • EMAIL

  • IBAN

  • IMEI

  • IP_ADDRESS

  • NAME

  • PAYMENT_CARD

  • URL

  • VIN

  • CA, NZ, US

  • AU, CA, US

  • AU, NZ

  • CA, GB, SG, US

  • AU, SG

  • AU, CA, NZ, SG, US

  • AU, CA, GB, US

  • CA, US

  • AU, NZ

QUASI_IDENTIFIER

  • ADMINISTRATIVE_AREA_1

  • ADMINISTRATIVE_AREA_2

  • CITY

  • POSTAL_CODE

  • AGE

  • COUNTRY

  • DATE_OF_BIRTH

  • ETHNICITY

  • GENDER

  • LAT_LONG

  • LATITUDE

  • LONGITUDE

  • MARITAL_STATUS

  • OCCUPATION

  • YEAR_OF_BIRTH

  • CA, NZ, US

  • US

  • CA, NZ, US

  • AU, CA, CH, NZ, GB, US

SENSITIVE

  • SALARY

참고

세 가지 개인정보 보호 카테고리 모두의 여러 의미 체계 태그 문자열 값은 “민감한 개인 데이터”, “데이터의 특수 카테고리” 또는 법률과 규정에 따라 유사한 용어로 간주될 수 있으며, 추가적인 보호나 통제가 필요할 수 있습니다.

현재, 분류에서는 열 데이터를 민감한 데이터와 식별 정보로 모두 태그 지정하지는 않습니다. 다시 말해, 주어진 열에 시스템 태그를 설정할 때 SEMANTIC_CATEGORY 또는 PRIVACY_CATEGORY 태그 중 하나를 선택해야 합니다.

지원되는 오브젝트 및 데이터 타입

Snowflake는 외부 테이블, 구체화된 뷰, 보안 뷰를 포함하여 모든 유형의 테이블과 뷰에 저장된 데이터를 분류하는 기능을 지원합니다.

다음 데이터 타입에 대한 경우를 제외하고 지원되는 모든 데이터 타입 에 대해 테이블을 분류하고 열을 볼 수 있습니다.

  • GEOGRAPHY

  • BINARY

  • VARIANT

    열 데이터 타입을 NUMBER 또는 STRING 데이터 타입으로 캐스팅 할 수 있을 때 VARIANT 데이터 타입으로 열을 분류할 수 있습니다. 열에 JSON, XML 또는 기타 반정형 데이터가 포함된 경우 Snowflake는 열을 분류하지 않습니다.

테이블에 지원되는 데이터 타입이 아닌 열이 있거나 열에 모든 NULL 값이 있는 경우, 분류 프로세스에서는 열을 무시하고 출력에 열을 포함하지 않습니다.

중요

데이터가 NULL이 아닌 값으로 NULL 값을 나타내는 경우, 분류 결과의 정확도에 영향을 미칠 수 있습니다.

컴퓨팅 비용

분류 프로세스에서는 분류 수행 시 사용 및 실행 중인 가상 웨어하우스 에서 제공하는 컴퓨팅 리소스가 필요합니다.

테이블/뷰의 데이터를 분류하는 데 필요한 시간과 이에 따라 웨어하우스에서 소비한 크레딧의 수는 분류할 데이터양의 함수입니다.

특히, 테이블 또는 뷰에 분류를 지원하는 열의 개수가 많은 경우에는 처리 시간에 영향을 미칠 수 있습니다. 하지만 일반적으로 처리 속도는 웨어하우스 크기에 따라 선형적으로 변화합니다. 다시 말해, 웨어하우스의 크기가 증가할 때마다(X-small에서 Small로) 일반적으로 처리 시간이 절반으로 감소합니다.

다음 일반 지침을 사용하여 웨어하우스 크기 를 선택합니다.

  • 처리 시간에 대한 걱정 없음: X-Small 웨어하우스.

  • 테이블에 최대 100개의 열: Small 웨어하우스.

  • 테이블에 101~300개의 열: Medium 웨어하우스.

  • 테이블에 301개 이상의 열: Large 웨어하우스.

자세한 내용은 웨어하우스 고려 사항 섹션을 참조하십시오.

권장 사항

분류 기능을 활용하고 PII 데이터 추적 기능을 최적화하려면 다음을 수행하십시오.

유효성 검사:

Account Usage 뷰를 먼저 쿼리합니다.

  • ACCESS_HISTORY: 가장 자주 액세스하는 테이블과 뷰 오브젝트를 확인합니다.

  • OBJECT_DEPENDENCIES: 둘 이상의 오브젝트 간 메타데이터 참조를 확인합니다.

쿼리 결과를 사용하여 분류 시스템 태그의 스키마 수준 또는 데이터베이스 수준 할당 우선순위를 지정합니다.

열 이름:

테이블 오브젝트에 적합한 열 이름을 사용하고 내부 테이블 생성 가이드라인을 준수하도록 테이블 생성자를 교육합니다.

데이터 타입:

열에 적합한 데이터 타입을 사용하십시오. 예를 들어 AGE 열에는 NUMBER 데이터 타입이 있어야 합니다.

VARIANT:

열에 VARIANT 데이터 타입이 있는 경우 테이블을 분류하기 전에 열에 대해 FLATTEN 명령을 사용하십시오.

웨어하우스:

데이터를 분류할 때 적절한 웨어하우스 크기를 사용하십시오. 자세한 내용은 이 항목의 컴퓨팅 비용 섹션을 참조하십시오.

분류 관리하기

권한 참조

데이터 개인정보 보호 관리자는 데이터 분류를 위한 권한 모델을 사용해 테이블과 태그 열을 분류할 수 있는 가상 사용자를 결정할 수 있습니다. 예를 들어, 단일 역할이 필요한 모든 권한을 가질 수도 있고, 데이터 개인정보 보호 관리자가 업무 분리(SoD) 요구 사항을 충족하기 위해 다양한 역할에 권한 부여를 위임할 수도 있습니다. 실행 가능한 권한 부여 조합의 한 예가 데이터 분류 사용하기데이터 분류 시작하기 섹션에 나와 있습니다.

관리자는 관련된 역할이나 가상 사용자를 관리하려는 방법에 따라 다양한 옵션을 사용할 수 있습니다. 옵션은 채택하려는 거버넌스 태세에 유연성을 제공합니다. 예:

  • 테이블 소유자(테이블에 대한 OWNERSHIP 권한을 가진 역할)는 테이블을 분류하고 열에 시스템 태그를 설정할 수 있습니다.

  • 테이블에 대한 SELECT 권한과 계정에 대한 APPLY TAG 권한이 있는 사용자 지정 역할은 테이블을 분류하고 열에 시스템 태그를 설정할 수 있습니다.

  • 열 분류 및 태그 지정에 다양한 역할이나 가상 사용자가 포함되도록 하려면 테이블에 대한 SELECT 권한을 한 역할에 부여하고 계정에 대한 APPLY TAG 권한을 다른 역할에 부여할 수 있습니다.

다음 표에는 테이블을 분류하고, 열에 Data Classification 시스템 태그를 설정하고, 다음 작업을 모두 수행하기 위한 다양한 권한 부여 옵션이 요약되어 있습니다.

권한 또는 역할

테이블 분류

열에 시스템 태그 설정

테이블이나 뷰에 대한 SELECT.

테이블에 대한 OWNERSHIP.

계정에 대한 APPLY TAG 권한.

ACCOUNTADMIN 역할.

데이터베이스나 스키마에 대한 OWNERSHIP.

중요

  • 테이블을 분류하려면 실행 중인 웨어하우스가 필요합니다. 테이블을 분류하는 데 사용되는 역할에는 최소한 웨어하우스에 대한 USAGE 권한이 있어야 합니다.

  • 계정 역할에 SNOWFLAKE.GOVERNANCE_VIEWER 데이터베이스 역할을 부여하여 해당 계정 역할이 있는 사용자가 DATA_CLASSIFICATION_LATEST 뷰를 쿼리하여 분류된 테이블의 최신 결과를 확인할 수 있습니다.

시스템 태그 추적하기

Snowflake는 분류 시스템 태그 사용을 추적하기 위한 기본 제공 뷰와 함수를 제공합니다.

  • 계정에서 시스템 태그가 있는 열을 찾으려면 Account Usage TAG_REFERENCES 뷰를 쿼리하십시오.

    SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TAG_REFERENCES
        WHERE TAG_NAME = 'PRIVACY_CATEGORY'
        ORDER BY OBJECT_DATABASE, OBJECT_SCHEMA, OBJECT_NAME, COLUMN_NAME;
    
    Copy
  • 특정 데이터베이스의 테이블 또는 뷰에 대한 시스템 태그가 있는 열을 찾으려면 TAG_REFERENCES Information Schema 테이블 함수를 호출하십시오.

    SELECT * FROM
      TABLE(
        MY_DB.INFORMATION_SCHEMA.TAG_REFERENCES(
          'my_db.my_schema.hr_data.fname',
          'COLUMN'
        ));
    
    Copy
  • 특정 데이터베이스 내의 테이블 또는 뷰에서 모든 열에 설정된 모든 태그를 찾으려면 Information Schema TAG_REFERENCES_ALL_COLUMNS 테이블 함수를 호출하십시오.

    SELECT * from
      TABLE(
        MY_DB.INFORMATION_SCHEMA.TAG_REFERENCES_ALL_COLUMNS(
          'my_db.my_schema.hr_data',
          'table'
        ));
    
    Copy
  • 열의 특정 태그 값을 찾으려면 SYSTEM$GET_TAG 시스템 함수를 호출하십시오.

    SELECT SYSTEM$GET_TAG(
      'SNOWFLAKE.CORE.PRIVACY_CATEGORY',
      'hr_data.fname',
      'COLUMN'
      );
    
    Copy