Apigee Edge 문서를 보고 있습니다.
Apigee X 문서로 이동하세요. info
버전: 2.0.2
이 확장 프로그램을 사용하여 콘텐츠와 이미지에서 민감한 데이터를 가립니다. 예를 들어 신용카드 번호, 이름, 주민등록번호를 수정할 수 있습니다.
기본 요건
이 콘텐츠는 이 확장 프로그램을 구성하고 사용하는 데 필요한 참조를 제공합니다. ExtensionCallout 정책을 사용하여 API 프록시에서 확장 프로그램을 사용하려면 다음을 충족해야 합니다.
프로젝트에 Google Cloud DLP API를 사용 설정합니다.
확장 프로그램에 필요한 액세스 수준에 대해 권한 부여를 선택합니다.
Cloud Data Loss Prevention (DLP) 정보
Cloud Data Loss Prevention (DLP)는 텍스트, 이미지, 기타 데이터를 검사하여 민감한 정보를 식별하고 관리하는 API입니다.
자세한 내용은 DLP 개요를 참고하세요. 이 확장 프로그램이 노출하는 API에 대한 참조는 Cloud Data Loss Prevention (DLP) API를 참고하세요.
샘플
다음 예에서는 ExtensionCallout 정책을 사용하여 Cloud DLP 확장 프로그램 작업 지원을 구성하는 방법을 보여줍니다.
이 샘플 코드를 더 쉽게 사용해 볼 수 있도록 이 예에서는 AssignMessage 정책을 사용하여 흐름 변수 값을 설정하고 Trace 도구에 표시할 확장 프로그램 응답 값을 가져옵니다.
별표로 마스킹
이 예시에서는 deidentifyWithMask 작업을 사용하여 정책에 지정된 문자(여기서는 * 문자)로 지정된 유형의 텍스트를 마스킹합니다.
다음 AssignMessage 정책은 설명 목적으로 request.content 변수를 설정합니다. 일반적으로 클라이언트의 요청에서 요청 콘텐츠를 가져옵니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Set-Variable">
<DisplayName>Set Variable</DisplayName>
<AssignTo type="response" createNew="false"/>
<AssignVariable>
<Name>request.content</Name>
<Value>Visit my site at https://example.com. Or contact me at gladys@example.com.</Value>
</AssignVariable>
</AssignMessage>
다음 ExtensionCallout 정책은 request.content 변수 값을 가져와 Cloud DLP 확장 프로그램 (여기서는 example-dlp)에 전달합니다. 이 확장 프로그램은 URL 및 EMAIL_ADDRESS infoTypes을 기반으로 값을 마스킹하도록 구성되었습니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Data-Loss-Extension-Callout">
<DisplayName>Data Loss Prevention Extension Callout</DisplayName>
<Connector>example-dlp</Connector>
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "{request.content}",
"mask" : "*"
}]]></Input>
<Output>masked.output</Output>
</ConnectorCallout>
다음 AssignMessage 정책은 추적 도구에 표시할 확장 프로그램의 출력을 가져옵니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-DLP-Output">
<DisplayName>Get DLP Output</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{masked.output}</Payload>
</Set>
</AssignMessage>
다음은 이 코드의 출력 예시입니다.
{"text":"Visit my site at ******************* Or contact me at *****************."}
이름으로 마스크
이 예에서는 deidentifyWithType 작업을 사용하여 지정된 텍스트 유형을 정보 유형 이름 자체로 마스킹합니다. 예를 들어 이메일 주소 gladys@example.com를 EMAIL_ADDRESS로 바꿉니다.
다음 AssignMessage 정책은 설명 목적으로 request.content 변수를 설정합니다. 일반적으로 클라이언트의 요청에서 요청 콘텐츠를 가져옵니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Set-Variable">
<DisplayName>Set Variable</DisplayName>
<AssignTo type="response" createNew="false"/>
<AssignVariable>
<Name>request.content</Name>
<Value>Visit my site at https://example.com. Or contact me at gladys@example.com.</Value>
</AssignVariable>
</AssignMessage>
다음 ExtensionCallout 정책은 request.content 변수 값을 가져와 Cloud DLP 확장 프로그램 (여기서는 example-dlp)에 전달합니다. 이 확장 프로그램은 URL 및 EMAIL_ADDRESS infoTypes을 기반으로 값을 마스킹하도록 구성되었습니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Data-Loss-Extension-Callout">
<DisplayName>Data Loss Prevention Extension Callout</DisplayName>
<Connector>example-dlp</Connector>
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "{request.content}"
}]]></Input>
<Output>masked.output</Output>
</ConnectorCallout>
다음 AssignMessage 정책은 추적 도구에 표시할 확장 프로그램의 출력을 가져옵니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-DLP-Output">
<DisplayName>Get DLP Output</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{masked.output}</Payload>
</Set>
</AssignMessage>
다음은 이 코드의 출력 예시입니다.
{"text":"Visit my site at [URL] Or contact me at [EMAIL_ADDRESS]."}
작업
deidentifyWithMask
text에서 민감한 정보를 익명화하고 mask 문자로 데이터를 마스킹합니다. 이 작업은 확장 프로그램 구성에서 infoTypes 속성으로 지정된 text 부분을 마스크합니다.
민감한 정보 마스킹은 문자를 별표 (*) 또는 해시 (#)와 같은 기호로 대체합니다. 민감한 정보의 유형은 확장 프로그램 구성에서 구성할 수 있습니다.
구문
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify",
"mask" : "masking-character"
}]]></Input>
예
다음 예시에서 마스크 처리할 입력은 input.email.address 흐름 변수에 저장된 이메일 주소입니다. 이 특정 예를 지원하려면 이 확장 프로그램이 EMAIL_ADDRESS infoType을 지원하도록 구성되어 있어야 합니다. infoType 목록은 infoType 감지기 참조를 확인하세요.
<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
"text" : "{input.email.address}",
"mask" : "*"
}]]></Input>
<Output>masked.output</Output>
이 예의 출력은 다음과 같습니다.
{"text":"*****************"}
요청 매개변수
| 매개변수 | 설명 | 유형 | 기본값 | 필수 |
|---|---|---|---|---|
| 텍스트 | 익명화할 텍스트입니다. | 문자열 | 없음 | 예. |
| 마스크 | 민감한 정보를 마스킹하는 데 사용할 문자입니다. | 문자열 | 없음 | 예. |
응답
지정된 infoType의 값이 지정된 문자로 대체된 입력 텍스트입니다. 예를 들면 다음과 같습니다.
{"text":"*********"}
deidentifyWithTemplate
익명화할 텍스트와 처리 방법을 구성하는 템플릿을 사용하여 텍스트 콘텐츠의 민감한 정보를 익명화합니다.
템플릿은 검사 대상 및 익명화 방법과 같은 구성을 API 호출 구현에서 분리하는 데 유용합니다. 템플릿은 구성을 재사용할 수 있는 방법을 제공하며 사용자와 데이터 세트 전반에서 일관성을 유지할 수 있게 해줍니다.
템플릿에서 익명화할 콘텐츠를 나타내는 infoTypes를 지정합니다. infoType 목록은 infoType 감지기 참조를 확인하세요. 익명화는 템플릿의 infoTypes 속성으로 지정된 텍스트 부분을 마스킹합니다.
구문
<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify"
"templateName" : "path-to-template"
}]]></Input>
예
다음 예시에서 식별 해제를 위한 입력은 request.content 흐름 변수에 의해 전달되는 요청 본문입니다.
<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
"text" : "{request.content}"
"templateName" : "projects/[PROJECT_ID]/deidentifyTemplates/1231258663242"
}]]></Input>
이 예의 출력은 익명처리된 요청 콘텐츠입니다.
요청 매개변수
| 매개변수 | 설명 | 유형 | 기본값 | 필수 |
|---|---|---|---|---|
| 텍스트 | 익명화할 텍스트입니다. 익명화 프로세스가 작동하는 대상입니다. | 객체 | 없음 | 예. |
| 템플릿 이름 | 사용할 템플릿입니다. 템플릿의 경로는 projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID 형식입니다. Google API로 템플릿을 만드는 경우 응답의 name 속성 값을 templateName로 사용합니다. |
문자열 | 없음 | 예. |
응답
지정된 infoType의 값이 infoType 이름으로 대체된 입력 텍스트
deidentifyWithType
텍스트 콘텐츠의 민감한 정보를 익명화하여 각 일치 값을 infoType의 이름으로 대체합니다. infoType 목록은 infoType 감지기 참조를 확인하세요. 이 작업은 확장 프로그램 구성에서 infoTypes 속성으로 지정된 text 부분을 마스크합니다.
다음 예에서는 서비스에서 전화번호를 인식한 후 infoType의 이름으로 바꿉니다.
입력 텍스트:
John Smith, 123 Main St, Seattle, WA 98122, 206-555-0123.결과 텍스트:
John Smith, 123 Main St, Seattle, WA 98122, PHONE_NUMBER.
구문
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "text-to-deidentify"
}]]></Input>
예
다음 예시에서 마스크 처리할 입력은 input.email.address 흐름 변수에 저장된 이메일 주소입니다. 이 특정 예를 지원하려면 이 확장 프로그램이 EMAIL_ADDRESS infoType을 지원하도록 구성되어 있어야 합니다. infoType 목록은 infoType 감지기 참조를 확인하세요.
<Action>deidentifyWithType</Action>
<Input><![CDATA[{
"text" : "{input.email.address}"
}]]></Input>
이 예의 출력은 다음과 같습니다.
{"text":"EMAIL_ADDRESS"}
요청 매개변수
| 매개변수 | 설명 | 유형 | 기본값 | 필수 |
|---|---|---|---|---|
| 텍스트 | 익명화할 텍스트입니다. | 문자열 | 없음 | 예. |
응답
지정된 infoType의 값이 infoType 이름으로 대체된 입력 텍스트 예를 들면 다음과 같습니다.
{"text":"EMAIL_ADDRESS"}
redactImage
infoType 카테고리 중 하나에 속하는 텍스트를 수정합니다. 수정된 콘텐츠가 감지되어 불투명한 직사각형으로 가려집니다. 이 작업은 확장 프로그램 구성에서 infoTypes 속성으로 지정된 image_data 부분을 마스크합니다.
infoType 목록은 infoType 감지기 참조를 확인하세요.
요청 매개변수
<Action>redactImage</Action>
<Input><![CDATA[{
"image_data" : "base64-encoded-image-to-analyze",
"image_type" : "type-of-image"
}]]></Input>
| 매개변수 | 설명 | 유형 | 기본값 | 필수 |
|---|---|---|---|---|
| image_data | base64로 인코딩된 이미지 데이터입니다. | 문자열 | 없음 | 예. |
| image_type | 이미지 유형의 상수입니다. 사용 가능한 값은 IMAGE_JPEG, IMAGE_BMP, IMAGE_PNG, IMAGE_SVG입니다. | 문자열 | 없음 | 예. |
응답
텍스트가 수정된 이미지
구성 참조
API 프록시에서 사용할 이 확장 프로그램을 구성하고 배포할 때는 다음을 사용하세요. Apigee 콘솔을 사용하여 확장 프로그램을 구성하는 단계는 확장 프로그램 추가 및 구성을 참고하세요.
일반 확장 프로그램 속성
모든 확장 프로그램에는 다음과 같은 속성이 있습니다.
| 속성 | 설명 | 기본 | 필수 |
|---|---|---|---|
name |
확장 프로그램의 구성에 지정할 이름입니다. | 없음 | 지원됨 |
packageName |
Apigee Edge에서 제공하는 확장 프로그램 패키지 이름입니다. | 없음 | 지원됨 |
version |
확장 프로그램을 구성하는 확장 프로그램 패키지의 버전 번호입니다. | 없음 | 지원됨 |
configuration |
추가하는 확장 프로그램 관련 구성 값입니다. 이 확장 프로그램 속성의 속성을 참조하세요. | 없음 | 지원됨 |
이 확장 프로그램 패키지의 속성
이 확장 프로그램에만 해당하는 다음 구성 속성의 값을 지정합니다.
| 속성 | 설명 | 기본값 | 필수 |
|---|---|---|---|
| projectId | Cloud Data Loss Prevention API가 사용 설정된 Google Cloud 프로젝트 ID입니다. | 없음 | 예. |
| 데이터 애셋 | 민감한 정보의 정보 유형입니다. 생략하면 서비스에서 모든 내장 유형을 감지합니다. Google Cloud DLP 서비스에서 지원하는 infoType 목록은 InfoType 감지기 참조를 참고하세요. | 없음 | 아니요. |
| 사용자 인증 정보 | Apigee Edge 콘솔에 입력하면 서비스 계정 키 파일의 콘텐츠가 됩니다. 관리 API를 사용하여 전송되는 경우 서비스 계정 키 파일에서 생성된 base64 인코딩 값입니다. | 없음 | 예. |