익명화

Sensitive Data Protection은 정보 유형(즉, infoType)을 사용하여 스캔할 대상을 정의합니다. infoType은 이름, 이메일 주소, 전화번호, 식별 번호, 신용카드 번호와 같은 민감한 정보 유형입니다.

Sensitive Data Protection에 정의된 모든 infoType에는 해당 감지기가 있습니다. Sensitive Data Protection은 해당 스캔 구성에서 infoType 감지기를 사용하여 검사 대상과 발견 항목 변환 방법을 결정합니다. infoType 이름은 스캔 결과를 표시 또는 보고할 때도 사용됩니다.

이 주제에서는 infoType 및 infoType 감지기에 대해 자세히 설명하고 Sensitive Data Protection에서 infoType 감지기를 사용하여 콘텐츠에서 민감한 정보를 스캔하는 방법을 안내합니다.

익명화를 사용해야 하는 경우

다음은 몇 가지 일반적인 사용 사례입니다.

  • 외부 분석 파트너와 데이터 공유: 서드 파티 파트너와 연구자가 일반 텍스트 개인 신원에 액세스하지 않고도 데이터 세트를 분석할 수 있도록 직접 식별자 (예: 이름, 주민등록번호, 계좌 번호)를 토큰화하거나 가명 처리합니다.
  • 비프로덕션 환경에 프로덕션 데이터 세트 스테이징: 프로덕션 데이터베이스를 개발, 테스트 또는 학습 환경에 복제하기 전에 민감한 고객 속성을 마스킹하거나 일반화합니다.
  • 규제 개인 정보 보호 의무 준수: BigQuery 및 Cloud Storage 저장소 전반에서 민감한 개인 식별 정보 (PII) 및 보호 건강 정보(PHI)를 난독화하여 GDPR 및 HIPAA와 같은 규정 준수 표준을 충족합니다.
  • 스트리밍 이벤트 파이프라인에서 민감한 필드 정리: 데이터가 다운스트림 웨어하우스 또는 애플리케이션 데이터베이스에 저장되기 전에 이벤트가 Pub/Sub를 통해 흐를 때 민감한 레코드를 실시간으로 변환합니다.
  • 관계형 데이터 세트 전반에서 참조 무결성 유지: 결정론적 암호화 변환을 사용하여 기본 식별자를 노출하지 않고도 서로 다른 시스템 간에 안전한 조인 및 교차 테이블 분석을 허용합니다.

infoType 감지기 지정

콘텐츠를 스캔하도록 Sensitive Data Protection을 설정할 때는 스캔 구성에 사용할 infoType 감지기를 포함합니다.

예를 들어 다음 JSON은 DLP API에 대한 간단한 스캔 요청을 보여줍니다. PHONE_NUMBER 감지기는 inspectConfig에 지정되어 있으며, 이는 Sensitive Data Protection이 지정된 문자열에서 전화번호를 스캔하도록 지시합니다.

POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/content:inspect?key={YOUR_API_KEY}

{
  "item":{
    "value":"My phone number is (415) 555-0890"
  },
  "inspectConfig":{
    "includeQuote":true,
    "minLikelihood":"POSSIBLE",
    "infoTypes":{
      "name":"PHONE_NUMBER"
    }
  }
}

앞의 요청은 다음을 반환합니다.

{
  "result":{
    "findings":[
      {
        "quote":"(415) 555-0890",
        "infoType":{
          "name":"PHONE_NUMBER"
        },
        "likelihood":"VERY_LIKELY",
        "location":{
          "byteRange":{
            "start":"19",
            "end":"33"
          },
          "codepointRange":{
            "start":"19",
            "end":"33"
          }
        },
        "createTime":"2018-10-29T23:46:34.535Z"
      }
    ]
  }
}

스캔 구성에서 항상 infoType을 지정하십시오. infoType을 지정하지 않으면 Sensitive Data Protection이 기본값 infoType 목록을 사용합니다. 스캔할 콘텐츠의 양에 따라 기본 infoType을 스캔하는 데 시간이 오래 걸리거나 비용이 많이 들 수 있습니다.

infoType 감지기를 사용하여 콘텐츠를 스캔하는 방법에 대한 자세한 내용은 검사, 수정, 익명화에 대한 방법 주제들 중에 하나를 참조하세요.

infoType 감지기의 종류

정보 유형 (즉, 'infoType') 감지기는 Sensitive Data Protection이 민감한 정보를 찾는 데 사용하는 메커니즘입니다.

Sensitive Data Protection에는 여러 종류의 infoType 감지기가 있습니다. 이러한 모든 감지기를 요약하면 다음과 같습니다.

  • 기본 제공 infoType 감지기는 Sensitive Data Protection에 기본 제공됩니다. 여기에는 전역적으로 적용 가능한 데이터 유형은 물론 국가 또는 리전별 민감한 정보 유형에 대한 감지기가 포함됩니다.
  • 커스텀 infoType 감지기는 개발자가 직접 만드는 감지기입니다. 커스텀 infoType 감지기에는 다음과 같은 세 가지 종류가 있습니다.
    • 일반 커스텀 사전 감지기는 Sensitive Data Protection이 일치 항목을 검색하는 간단한 단어 목록입니다. 목록에 포함된 단어 또는 구문의 수가 최대 수만 개 수준인 경우 일반 커스텀 사전 감지기를 사용합니다. 단어 목록이 크게 바뀔 일이 없는 경우 일반 커스텀 사전 감지기가 유리합니다.
    • 저장된 커스텀 사전 감지기는 Sensitive Data Protection에서 Cloud Storage 또는 BigQuery에 저장된 대량의 단어 또는 구문 목록을 사용하여 생성합니다. 목록에 포함된 단어 또는 구문의 수가 최대 수천만 개 수준으로 많은 경우 저장된 커스텀 사전 감지기를 사용합니다.
    • 정규 표현식 (정규식) 감지기를 사용 설정하면 Sensitive Data Protection에서 정규 표현식 패턴을 기준으로 일치 항목을 감지할 수 있습니다.

스캔 결과를 상세검색하려면 검사 규칙을 만드세요.

기본 제공 infoType 감지기

기본 제공 infoType 감지기는 Sensitive Data Protection에 내장되어 있으며, 프랑스 Numéro d'Inscription au Répertoire (NIR) (FRANCE_NIR), 영국 운전면허증 번호 (UK_DRIVERS_LICENSE_NUMBER), 미국 사회보장번호 (US_SOCIAL_SECURITY_NUMBER)와 같은 국가 또는 리전별 민감한 정보 유형의 감지기를 포함합니다. 또한 사람 이름 (PERSON_NAME), 전화번호 (PHONE_NUMBER), 이메일 주소 (EMAIL_ADDRESS), 신용카드 번호(CREDIT_CARD_NUMBER)와 같이 전 세계적으로 적용 가능한 데이터 유형도 포함됩니다. infoType에 해당하는 콘텐츠를 감지하기 위해 Sensitive Data Protection은 패턴 일치, 체크섬, 머신러닝, 컨텍스트 분석 등 다양한 기법을 활용합니다.

내장 infoType 감지기 목록은 항상 업데이트됩니다. 현재 지원되는 전체 기본 제공 infoType 감지기 목록은 InfoType 감지기 참조에서 볼 수 있습니다.

또한 민감한 정보 보호의 infoTypes.list 메서드를 호출하여 기본 제공되는 모든 infoType 감지기의 전체 목록을 볼 수 있습니다.

커스텀 infoType 감지기

커스텀 infoType 감지기에는 다음과 같은 세 가지 종류가 있습니다.

스캔 결과를 상세검색하려면 검사 규칙을 만드세요.

일반 커스텀 사전 감지기

일반 커스텀 사전 감지기를 사용하면 최대 수만 개로 구성된 짧은 단어 또는 구문 목록에서 일치 항목을 확인할 수 있습니다. 일반 커스텀 사전은 그 자체로 고유한 감지기가 될 수 있습니다.

커스텀 사전 감지기는 정규 표현식 또는 기본 제공 감지기로는 쉽게 일치 항목을 확인할 수 없는 단어 또는 구문 목록을 스캔하려는 경우 유용합니다. 예를 들어 방 번호보다는 시 또는 지역 이름, 명소, 가상 캐릭터 등 할당된 방 이름으로 지칭되는 경우가 많은 회의실을 스캔하려는 경우를 가정해 보겠습니다. 이러한 모든 방 이름 목록이 포함된 일반 커스텀 사전 감지기를 만들 수 있습니다. Sensitive Data Protection은 콘텐츠에서 각 방 이름을 스캔하고 컨텍스트에서 이러한 방 이름 중 하나를 발견하면 일치 항목을 반환합니다. 일반 커스텀 사전 감지기 만들기의 '사전 일치 세부사항' 섹션에서 Sensitive Data Protection에서 일치하는 사전 단어와 구문을 검색하는 방법을 알아보세요.

일반 사전 커스텀 infoType 감지기의 작동 방법에 대한 자세한 내용과 사용 예는 일반 커스텀 사전 감지기 만들기를 참조하세요.

저장된 커스텀 사전 감지기

스캔할 단어나 구문이 많거나 단어 또는 구문 목록이 자주 변경되는 경우 저장된 커스텀 사전 감지기를 사용합니다. 저장된 커스텀 사전 감지기는 최대 수천만 개의 단어 또는 구문에서 일치 항목을 확인할 수 있습니다.

저장된 커스텀 사전 감지기는 매우 큰 커스텀 감지기라는 특성에 따라 정규 표현식 커스텀 감지기 및 일반 커스텀 사전 감지기와는 다르게 만들어집니다. 각 저장된 커스텀 사전에는 다음과 같은 두 가지 구성요소가 있습니다.

  • 사용자가 만들고 정의하는 구문 목록. 이 목록은 Cloud Storage 내에 텍스트 파일로 또는 BigQuery 테이블에 열로 저장됩니다.
  • 구문 목록을 기준으로 Sensitive Data Protection에서 생성한 사전 파일입니다. 사전 파일은 Cloud Storage에 저장되며 원본 구문 데이터, 그리고 검색 및 일치 확인을 보조하는 블룸 필터로 구성됩니다. 이러한 파일은 직접 편집할 수 없습니다.

단어 목록을 만들고 Sensitive Data Protection을 사용하여 커스텀 사전을 생성한 다음에는 다른 infoType 감지기와 비슷한 방법으로 저장된 커스텀 사전 감지기를 사용하는 스캔을 시작하거나 예약합니다.

저장된 커스텀 사전 감지기의 작동 방법에 대한 자세한 내용과 사용 예는 저장된 커스텀 사전 감지기 만들기를 참조하세요.

정규 표현식

정규 표현식 (정규식) 커스텀 infoType 감지기를 사용하면 Sensitive Data Protection에서 정규 표현식 패턴을 기준으로 일치 항목을 감지할 수 있게 해주는 자체 infoType 감지기를 만들 수 있습니다. 예를 들어 ###-#-##### 형식의 의료 레코드 번호가 있다고 가정한다면 다음과 같은 정규 표현식 패턴을 정의할 수 있습니다.

[1-9]{3}-[1-9]{1}-[1-9]{5}

그러면 Sensitive Data Protection에서 다음과 같은 일치 항목을 검색합니다.

123-4-56789

또한 각 커스텀 infoType 일치 항목에 할당할 가능성을 지정할 수 있습니다. 즉, Sensitive Data Protection이 지정한 시퀀스와 일치하면 지정한 가능성을 할당합니다. 커스텀 정규식에서 정의된 시퀀스가 다른 무작위 시퀀스와 쉽게 일치할 정도로 충분히 일반적이라면 Sensitive Data Protection이 모든 일치 항목에 VERY_LIKELY 라벨을 지정하도록 할 필요가 없으므로 이 기능이 도움이 됩니다. 그렇지 않으면 스캔 결과의 신뢰도가 낮아지고 잘못된 정보가 익명화될 수 있습니다.

정규 표현식 커스텀 infoType 감지기에 대한 자세한 내용과 사용 예는 커스텀 정규 표현식 감지기 만들기를 참조하세요.