핫워드 규칙을 사용하여 강력한 컨텍스트 규칙으로 내장 및 커스텀 infoType 감지기를 더 확장할 수 있습니다. 핫워드 규칙은 핫워드가 발견 항목 근처에서 발생하는지 여부에 따라 민감한 정보 보호에 발견 항목 가능성을 조정하도록 지시합니다. 핫워드 규칙은 규칙 세트에 지정된 검사 규칙의 한 유형입니다. 각 규칙은 내장 또는 커스텀 infoType 집합에 적용됩니다.
핫워드 규칙 심층 분석
infoType 감지기에는 핫워드 규칙이 없거나 여러 개일 수 있습니다. 검사 구성에서 다음과 같이 rules
배열 내에 각 HotwordRule
객체를 정의합니다.
"rules":[
{
"hotwordRule":{
"hotwordRegex":{
"pattern":"REGEX_PATTERN"
},
"proximity":{
"windowAfter":"NUM_CHARS_TO_CONSIDER_AFTER_FINDING",
"windowBefore":"NUM_CHARS_TO_CONSIDER_BEFORE_FINDING"
}
"likelihoodAdjustment":{
"fixedLikelihood":"LIKELIHOOD_VALUE"
-- OR --
"relativeLikelihood":"LIKELIHOOD_ADJUSTMENT"
},
}
},
...
]
다음을 바꿉니다.
- REGEX_PATTERN: 핫워드로 한정되는 대상을 정의하는 정규 표현식(
Regex
객체)입니다. - NUM_CHARS_TO_CONSIDER_AFTER_FINDING: 결과 다음의 문자 범위입니다. 민감한 정보 보호는 이 범위를 분석하여 핫워드가 발견 항목 근처에서 발생하는지 여부를 확인합니다.
NUM_CHARS_TO_CONSIDER_BEFORE_FINDING: 결과 이전의 문자 범위입니다. 민감한 정보 보호는 이 범위를 분석하여 핫워드가 발견 항목 근처에서 발생하는지 여부를 확인합니다.
LIKELIHOOD_VALUE: 결과를 설정할 고정된
Likelihood
수준입니다.LIKELIHOOD_ADJUSTMENT: 민감한 정보 보호에서 발견 항목 가능성을 늘리거나 줄여야 하는 양을 나타내는 숫자입니다. 양의 정수는 가능성 수준을 늘리고 음의 정수는 줄입니다. 예를 들어 감지 규칙이 없고
relativeLikelihood
가 1인 상태에서 결과가POSSIBLE
이면 결과가LIKELY
로 업그레이드됩니다.relativeLikelihood
가 -1이면 결과가UNLIKELY
로 다운그레이드됩니다. 가능성은VERY_UNLIKELY
보다 아래로 떨어지거나VERY_LIKELY
를 초과할 수 없습니다. 이러한 경우 가능성 수준이 동일하게 유지됩니다. 예를 들어 기본 가능성이VERY_LIKELY
이고relativeLikelihood
가 1인 경우 최종 가능성은VERY_LIKELY
로 유지됩니다.
핫워드 예시: 의료 레코드 번호 대조
'###-#-#####' 형식의 의료 기록 번호(MRN)와 같은 커스텀 infoType을 검색한다고 가정해보세요. 그리고 민감한 정보 보호가 핫워드 'MRN' 다음에 오는 각 발견 항목의 일치 가능성을 높이려고 합니다.
예시 값:
- 123-4-56789의 일치 가능성은
POSSIBLE
입니다. - MRN 123-4-56789의 일치 가능성은
VERY_LIKELY
입니다.
다음 JSON 예시 및 코드 스니펫은 핫워드 규칙을 구성하는 방법을 보여줍니다. 이 예시에서는 커스텀 정규 표현식 감지기가 사용됩니다.
이 예시에서는 다음에 주의하세요.
- 이 요청은 정규 표현식
[0-9]{3}-[0-9]{1}-[0-9]{5}
와 일치하는 문자열의 감지기인C_MRN
커스텀 infoType을 정의합니다. - 정규 표현식
(?i)(mrn|medical)(?-i)
는 핫워드를 정의합니다. 민감한 정보 보호는proximity
필드에 정의된 문자 범위 내에서 이 핫워드를 검색합니다. proximity
집합 내에서 핫워드가 있는 각C_MRN
발견 항목에 대해 민감한 정보 보호는 가능성 수준을VERY_LIKELY
로 설정합니다.
C#
민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.
Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.
Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.
Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.
Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
PHP
민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.
Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.
Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
REST
JSON과 함께 DLP API를 사용하는 데 대한 자세한 내용은 JSON 빠른 시작을 참조하세요.
HTTP 메소드 및 URL:
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:inspect
PROJECT_ID
를 프로젝트 ID로 바꿉니다.
JSON 입력:
{
"item":{
"value":"Patient's MRN 444-5-22222 and just a number 333-2-33333"
},
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"C_MRN"
},
"regex":{
"pattern":"[0-9]{3}-[0-9]{1}-[0-9]{5}"
},
"likelihood":"POSSIBLE",
}
],
"ruleSet":[
{
"infoTypes": [{"name" : "C_MRN"}],
"rules":[
{
"hotwordRule":{
"hotwordRegex":{
"pattern":"(?i)(mrn|medical)(?-i)"
},
"likelihoodAdjustment":{
"fixedLikelihood":"VERY_LIKELY"
},
"proximity":{
"windowBefore":10
}
}
}
]
}
]
}
}
JSON 출력(축약형):
{ "result": { "findings": [ { "infoType": { "name": "C_MRN" }, "likelihood": "VERY_LIKELY", "location": { "byteRange": { "start": "14", "end": "25" }, "codepointRange": { ... } } }, { "infoType": { "name": "C_MRN" }, "likelihood": "POSSIBLE", "byteRange": { "start": "44", "end": "55" }, "codepointRange": { ... } } } ] } }
출력에는 민감한 정보 보호가 C_MRN
커스텀 infoType 감지기를 사용하여 의료 기록 번호를 올바르게 식별한 것으로 표시됩니다.
또한 핫워드 규칙에 사용된 컨텍스트 일치로 인해 민감한 정보 보호에서 proximity
집합 내에 MRN이 있는 첫 번째 결과에 구성된 대로 VERY_LIKELY
가능성을 할당했습니다. 두 번째 결과는 컨텍스트가 부족하므로 likelihood
가 POSSIBLE
로 유지되었습니다.
핫워드 예시: 테이블 열의 일치 가능성 설정
이 예시에서는 전체 데이터 열의 일치 가능성을 설정하는 방법을 보여줍니다. 예를 들어 검사 결과에서 데이터 열을 제외하려면 이 접근 방법이 유용합니다.
다음 테이블을 참조하세요. 한 열에는 자리표시자 사회 보장 번호(SSN)이 포함되고 다른 열에는 실제 SSN이 포함됩니다.
가짜 사회 보장 번호 | 실제 사회 보장 번호 |
---|---|
111-11-1111 | 222-22-2222 |
검사 결과에서 노이즈를 최소화하려면 Fake Social Security Number
열에서 결과를 제외할 수 있습니다. 이 열에 낮은 가능성 수준을 할당합니다. 그런 후 해당 가능성 수준과 일치 항목이 결과에서 제외되도록 요청을 구성합니다.
이 예시에서는 다음에 주의하세요.
- 핫워드 규칙은
US_SOCIAL_SECURITY_NUMBER
infoType에 적용됩니다. - 핫워드 정규 표현식
(Fake Social Security Number)
에는 자리표시자 값이 있는 열의 이름이 포함됩니다. windowBefore
속성은 1로 설정됩니다. 즉, 핫워드는 열 헤더에 있고 발견 항목은 열에 있어야 함을 의미합니다.- 이 열의 각
US_SOCIAL_SECURITY_NUMBER
발견 항목에 대해 민감한 정보 보호는 가능성 수준을VERY_UNLIKELY
로 설정합니다. minLikelihood
속성은POSSIBLE
로 설정됩니다. 즉,POSSIBLE
보다 낮은 가능성 수준의 결과가 검사 결과에서 제외됩니다.
JSON과 함께 DLP API를 사용하는 데 대한 자세한 내용은 JSON 빠른 시작을 참조하세요.
HTTP 메소드 및 URL:
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:inspect
PROJECT_ID
를 프로젝트 ID로 바꿉니다.
C#
민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.
Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.
Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.
Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.
Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
PHP
민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.
Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
민감한 정보 보호의 클라이언트 라이브러리를 설치하고 사용하는 방법은 민감한 정보 보호 클라이언트 라이브러리를 참조하세요.
Sensitive Data Protection에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
REST
JSON 입력:{
"item": {
"table": {
"headers": [
{
"name": "Fake Social Security Number"
},
{
"name": "Real Social Security Number"
}
],
"rows": [
{
"values": [
{
"stringValue": "111-11-1111"
},
{
"stringValue": "222-22-2222"
}
]
}
]
}
},
"inspectConfig": {
"infoTypes": [
{
"name": "US_SOCIAL_SECURITY_NUMBER"
}
],
"includeQuote": true,
"ruleSet": [
{
"infoTypes": [
{
"name": "US_SOCIAL_SECURITY_NUMBER"
}
],
"rules": [
{
"hotwordRule": {
"hotwordRegex": {
"pattern": "(Fake Social Security Number)"
},
"likelihoodAdjustment": {
"fixedLikelihood": "VERY_UNLIKELY"
},
"proximity": {
"windowBefore": 1
}
}
}
]
}
],
"minLikelihood": "POSSIBLE"
}
}
JSON 출력:
{ "result": { "findings": [ { "quote": "222-22-2222", "infoType": { "name": "US_SOCIAL_SECURITY_NUMBER" }, "likelihood": "VERY_LIKELY", "location": { "byteRange": { "end": "11" }, "codepointRange": { "end": "11" }, "contentLocations": [ { "recordLocation": { "fieldId": { "name": "Real Social Security Number" }, "tableLocation": {} } } ] }, "createTime": "TIMESTAMP", "findingId": "TIMESTAMP" } ] } }
Fake Social Security Number
열에 있는 111-11-1111 값이 핫워드 규칙과 일치하므로 민감한 정보 보호가 VERY_UNLIKELY
가능성 수준에 할당됩니다. 이 수준은 검사 구성(POSSIBLE
)에 설정된 최소 가능성보다 낮으므로, 이 결과가 검사 결과에 제외됩니다.
규칙 집합을 삭제하여 이 예시로 실험할 수 있습니다. 민감한 정보 보호 결과에는 111-11-1111이 포함됩니다.