ส่วนขยายการป้องกันข้อมูลรั่วไหลของ Google Cloud

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่ เอกสารประกอบของ Apigee X
info

เวอร์ชัน: 1.5.1

ใช้ส่วนขยายนี้เพื่อซ่อนข้อมูลที่ละเอียดอ่อนจากเนื้อหาและรูปภาพ เช่น คุณอาจตรวจทานหมายเลขบัตรเครดิต ชื่อ และหมายเลขประกันสังคม

ข้อกำหนดเบื้องต้น

เนื้อหานี้มีข้อมูลอ้างอิงสำหรับการกำหนดค่าและการใช้ส่วนขยายนี้ ก่อนใช้ส่วนขยายจากพร็อกซี API โดยใช้นโยบาย ExtensionCallout คุณต้องดำเนินการดังนี้

  1. เปิดใช้ Google Cloud DLP API สำหรับโปรเจ็กต์

  2. ให้สิทธิ์การเข้าถึงในระดับที่ต้องการสำหรับส่วนขยาย

  3. ใช้คอนโซล GCP เพื่อสร้างคีย์สำหรับบัญชีบริการ

  4. ใช้เนื้อหาของไฟล์ JSON คีย์ที่ได้เมื่อ เพิ่มและกำหนดค่าส่วนขยายโดยใช้ข้อมูลอ้างอิงการกำหนดค่า

เกี่ยวกับ Cloud Data Loss Prevention (DLP)

Cloud Data Loss Prevention (DLP) เป็น API สำหรับตรวจสอบข้อความ รูปภาพ และข้อมูลอื่นๆ เพื่อระบุและจัดการข้อมูลที่ละเอียดอ่อน

ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมของ DLP หากต้องการข้อมูลอ้างอิงเกี่ยวกับ API ที่ส่วนขยายนี้เปิดเผย โปรดดู Cloud Data Loss Prevention (DLP) API

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงวิธีกำหนดค่าการรองรับการดำเนินการส่วนขยาย Cloud DLP โดยใช้นโยบาย ExtensionCallout

ตัวอย่างเหล่านี้ใช้นโยบาย AssignMessage เพื่อตั้งค่าตัวแปรโฟลว์และดึงค่าการตอบกลับของส่วนขยายเพื่อแสดงใน เครื่องมือติดตาม เพื่อให้การลองใช้โค้ดตัวอย่างนี้ง่ายขึ้น

มาสก์ด้วยดอกจัน

ตัวอย่างนี้ใช้การดำเนินการ 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 เพื่อมาสก์ข้อความประเภทที่ระบุด้วยชื่อ infoType เอง เช่น ระบบจะแทนที่อีเมล 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 การดำเนินการนี้จะมาสก์ส่วนต่างๆ ของ text ที่ระบุโดยพร็อพเพอร์ตี้ infoTypes ใน การกำหนดค่าส่วนขยาย

การมาสก์ข้อมูลที่ละเอียดอ่อนจะแทนที่อักขระด้วยสัญลักษณ์ เช่น ดอกจัน (*) หรือแฮช (#) คุณกำหนดค่าประเภทข้อมูลที่ละเอียดอ่อนได้ในการกำหนดค่าส่วนขยาย

ไวยากรณ์

<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
  "text" : "text-to-deidentify",
  "mask" : "masking-character"
}]]></Input>

ตัวอย่าง

ในตัวอย่างต่อไปนี้ อินพุตที่จะมาสก์คืออีเมลที่จัดเก็บไว้ในตัวแปรโฟลว์ input.email.address ส่วนขยายนี้ต้องได้รับการกำหนดค่าให้รองรับ infoType EMAIL_ADDRESS เพื่อรองรับตัวอย่างนี้โดยเฉพาะ ดูรายการ 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>

เอาต์พุตสำหรับตัวอย่างนี้จะเป็นเนื้อหาคำขอที่ไม่ได้ระบุตัวตน

พารามิเตอร์คำขอ

พารามิเตอร์ คำอธิบาย ประเภท ค่าเริ่มต้น ต้องระบุ
ข้อความ ข้อความที่จะไม่ระบุตัวตน ซึ่งเป็นข้อความที่กระบวนการไม่ระบุตัวตนจะดำเนินการ ออบเจ็กต์ ไม่มี ได้
templateName เทมเพลตที่จะใช้ ซึ่งจะเป็นเส้นทางไปยังเทมเพลตในรูปแบบ projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID เมื่อคุณ สร้างเทมเพลต ด้วย Google API ให้ใช้ค่าพร็อพเพอร์ตี้ name ของการตอบกลับเป็น templateName สตริง ไม่มี ได้

การตอบกลับ

ข้อความอินพุตที่มีค่า infoType ที่ระบุแทนที่ด้วยชื่อ infoType

deidentifyWithType

ไม่ระบุตัวตนข้อมูลที่ละเอียดอ่อนในเนื้อหาข้อความ โดยแทนที่ค่าที่ตรงกันแต่ละค่าด้วยชื่อ infoType ดูรายการ infoType ได้ที่ ข้อมูลอ้างอิงตัวตรวจจับ infoType การดำเนินการนี้จะมาสก์ส่วนต่างๆ ของ text ที่ระบุโดยพร็อพเพอร์ตี้ infoTypes ใน การกำหนดค่าส่วนขยาย

ในตัวอย่างต่อไปนี้ บริการจะจดจำหมายเลขโทรศัพท์ แล้วแทนที่ด้วยชื่อ 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 ส่วนขยายนี้ต้องได้รับการกำหนดค่าให้รองรับ infoType EMAIL_ADDRESS เพื่อรองรับตัวอย่างนี้โดยเฉพาะ ดูรายการ infoType ได้ที่ ข้อมูลอ้างอิงตัวตรวจจับ infoType

<Action>deidentifyWithType</Action>
<Input><![CDATA[{
    "text" : "{input.email.address}"
}]]></Input>

เอาต์พุตสำหรับตัวอย่างนี้จะเป็นดังนี้

{"text":"EMAIL_ADDRESS"}

พารามิเตอร์คำขอ

พารามิเตอร์ คำอธิบาย ประเภท ค่าเริ่มต้น ต้องระบุ
ข้อความ ข้อความที่จะไม่ระบุตัวตน สตริง ไม่มี ได้

การตอบกลับ

ข้อความอินพุตที่มีค่า infoType ที่ระบุแทนที่ด้วยชื่อ infoType เช่น

{"text":"EMAIL_ADDRESS"}

redactImage

ตรวจทานข้อความที่อยู่ในหมวดหมู่ infoType หมวดหมู่ใดหมวดหมู่หนึ่ง ระบบจะตรวจหาและซ่อนเนื้อหาที่ตรวจทานด้วยสี่เหลี่ยมผืนผ้าทึบแสง การดำเนินการนี้จะมาสก์ส่วนต่างๆ ของ image_data ที่ระบุโดยพร็อพเพอร์ตี้ infoTypes ใน การกำหนดค่าส่วนขยาย

ดูรายการ 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 รหัสโปรเจ็กต์ GCP ที่เปิดใช้ Cloud Data Loss Prevention API ไม่มี ได้
infoTypes ประเภทข้อมูลของข้อมูลที่ละเอียดอ่อน หากละไว้ บริการจะตรวจหาประเภทข้อมูลในตัวทั้งหมด ดูรายการ infoType ที่บริการ Google Cloud DLP รองรับได้ที่ ข้อมูลอ้างอิงตัวตรวจจับ infoType ไม่มี ไม่
ข้อมูลเข้าสู่ระบบ เมื่อป้อนในคอนโซล Apigee Edge ข้อมูลนี้จะเป็นเนื้อหาของไฟล์คีย์บัญชีบริการ เมื่อส่งผ่าน Management API ข้อมูลนี้จะเป็นค่าที่เข้ารหัส Base64 ซึ่งสร้างจากไฟล์คีย์บัญชีบริการ ไม่มี ได้