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

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

เวอร์ชัน: 1.5.1

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

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

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

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

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

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

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

เกี่ยวกับการป้องกันข้อมูลรั่วไหล (DLP) ในระบบคลาวด์

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

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

ตัวอย่าง

ตัวอย่างต่อไปนี้จะแสดงวิธีกำหนดค่าการสนับสนุนสำหรับการดำเนินการของส่วนขยาย Cloud DLP โดยใช้นโยบาย ชิ้นงานข้อความไฮไลต์

เพื่อให้คุณลองใช้โค้ดตัวอย่างนี้ได้ง่ายขึ้น ตัวอย่างเหล่านี้ใช้นโยบาย 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>

นโยบาย Extensionข้อความไฮไลต์ ต่อไปนี้จะดึงค่าตัวแปร request.content และส่งไปยังส่วนขยาย Cloud DLP (ที่นี่เรียกว่า example-dlp) ส่วนขยายดังกล่าวได้รับการกำหนดค่าให้มาสก์ค่าตาม infoTypes URL และ EMAIL_ADDRESS

<?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>

นโยบาย ชิ้นงานข้อความไฮไลต์ ต่อไปนี้จะดึงค่าตัวแปร request.content และส่งไปยังส่วนขยาย Cloud DLP (ในที่นี้เรียกว่า example-dlp) ส่วนขยายดังกล่าวได้รับการกำหนดค่าให้มาสก์ค่าตาม infoTypes ของ URL และ EMAIL_ADDRESS

<?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 นี่จะเป็นเนื้อหาในไฟล์คีย์บัญชีบริการของคุณ เมื่อส่งผ่าน API การจัดการ ค่านี้จะเป็นค่าที่เข้ารหัสฐาน 64 ซึ่งสร้างขึ้นจากไฟล์คีย์บัญชีบริการ ไม่มี ได้