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

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

เวอร์ชัน: 1.5.1

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

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

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

  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>

นโยบาย ExtensionExtension ต่อไปนี้จะเรียกค่าตัวแปร 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>

นโยบาย ExtensionExtension ต่อไปนี้ดึงค่าตัวแปร 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 ดูรายการ infoTypes ได้ที่ข้อมูลอ้างอิงเกี่ยวกับตัวตรวจจับ InfoType

<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
    "text" : "{input.email.address}",
    "mask" : "*"
}]]></Input>
<Output>masked.output</Output>

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

{"text":"*****************"}

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

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

คำตอบ

ข้อความอินพุตที่มีค่า infoTypes ที่ระบุซึ่งแทนที่ด้วยอักขระที่ระบุ ตัวอย่างเช่น

{"text":"*********"}

deidentifyWithTemplate

ลบการระบุตัวตนในข้อมูลที่ละเอียดอ่อนในเนื้อหาข้อความโดยใช้เทมเพลตที่กำหนดค่าข้อความที่จะลบการระบุตัวตนและวิธีจัดการ

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

ในเทมเพลต คุณจะระบุ infoTypes ที่แสดงถึงเนื้อหาที่จะลบการระบุตัวตน ดูรายการ infoTypes ได้ที่ข้อมูลอ้างอิงเกี่ยวกับตัวตรวจจับ 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>

เอาต์พุตสำหรับตัวอย่างนี้คือเนื้อหาคำขอที่ลบการระบุตัวตน

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

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

คำตอบ

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

deidentifyWithType

ลบการระบุตัวตนในข้อมูลที่ละเอียดอ่อนในเนื้อหาข้อความ โดยแทนที่ค่าที่ตรงกันแต่ละค่าด้วยชื่อของ infoType ดูรายการ infoTypes ได้ที่ข้อมูลอ้างอิงเกี่ยวกับตัวตรวจจับ 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 ดูรายการ infoTypes ได้ที่ข้อมูลอ้างอิงเกี่ยวกับตัวตรวจจับ InfoType

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

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

{"text":"EMAIL_ADDRESS"}

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

พารามิเตอร์ คำอธิบาย Type ค่าเริ่มต้น จำเป็น
ข้อความ ข้อความที่จะลบการระบุตัวตน สตริง ไม่มี ใช่

คำตอบ

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

{"text":"EMAIL_ADDRESS"}

redactImage

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

ดูรายการ infoTypes ได้ที่ข้อมูลอ้างอิงเกี่ยวกับตัวตรวจจับ InfoType

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

<Action>redactImage</Action>
<Input><![CDATA[{
  "image_data" : "base64-encoded-image-to-analyze",
  "image_type" : "type-of-image"
}]]></Input>
พารามิเตอร์ คำอธิบาย Type ค่าเริ่มต้น จำเป็น
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 ที่บริการ DLP ของ Google Cloud รองรับที่หัวข้อข้อมูลอ้างอิงเกี่ยวกับตัวตรวจจับ InfoType ไม่มี ไม่มี
ข้อมูลเข้าสู่ระบบ ซึ่งเมื่อป้อนในคอนโซล Apigee Edge คือเนื้อหาในไฟล์คีย์บัญชีบริการ เมื่อส่งผ่าน API การจัดการ ค่าดังกล่าวคือค่าที่เข้ารหัสแบบ Base64 ซึ่งสร้างขึ้นจากไฟล์คีย์บัญชีบริการ ไม่มี ใช่