1. ภาพรวม
Cloud Data Loss Prevention (DLP) เป็นบริการที่มีการจัดการเต็มรูปแบบซึ่งออกแบบมาเพื่อช่วยค้นหา จัดประเภท และปกป้องข้อมูลที่ละเอียดอ่อน Codelab นี้จะแนะนำความสามารถพื้นฐานบางอย่างของ Cloud DLP API และแสดงวิธีต่างๆ ที่ใช้เพื่อปกป้องข้อมูลได้
สิ่งที่คุณต้องทำ
- ใช้ DLP เพื่อตรวจสอบสตริงและไฟล์สำหรับประเภทข้อมูลที่ตรงกัน
- ดูข้อมูลเกี่ยวกับเทคนิคการไม่ระบุตัวตนและใช้ DLP เพื่อไม่ระบุตัวตนของข้อมูล
- ดูวิธีระบุข้อมูลที่ถูกลบข้อมูลระบุตัวตนอีกครั้งโดยใช้การเข้ารหัสที่สงวนรูปแบบ (FPE)
- ใช้ DLP เพื่อปกปิด infoType จากสตริงและรูปภาพ
สิ่งที่คุณต้องมี
- โปรเจ็กต์ Google Cloud ที่ตั้งค่าการเรียกเก็บเงินแล้ว หากยังไม่มีบัญชีดังกล่าว คุณจะต้องสร้างบัญชี
2. การเริ่มตั้งค่า
คุณสามารถเรียกใช้ Codelab นี้บน Google Cloud Platform ได้อย่างสมบูรณ์โดยไม่ต้องติดตั้งหรือกำหนดค่าในเครื่อง
Cloud Shell
ตลอดทั้งโค้ดแล็บนี้ เราจะจัดสรรและจัดการทรัพยากรและบริการต่างๆ ในระบบคลาวด์โดยใช้บรรทัดคำสั่งผ่าน Cloud Shell
ดาวน์โหลดที่เก็บโปรเจ็กต์ที่ใช้ร่วมกัน
git clone https://github.com/googleapis/nodejs-dlp
เมื่อดาวน์โหลดโค้ดโปรเจ็กต์แล้ว ให้เปลี่ยนเป็นไดเรกทอรีตัวอย่างและติดตั้งแพ็กเกจ Node.js ที่จำเป็น
cd samples && npm install
ตรวจสอบว่าคุณใช้โปรเจ็กต์ที่ถูกต้องโดยตั้งค่าด้วยคำสั่ง gcloud ต่อไปนี้
gcloud config set project [PROJECT_ID]
เปิดใช้ API
API ที่เราจะต้องเปิดใช้ในโปรเจ็กต์มีดังนี้
- Cloud Data Loss Prevention API - มีวิธีการตรวจหา วิเคราะห์ความเสี่ยง และยกเลิกการระบุตัวบุคคลจากข้อมูลที่ละเอียดอ่อนด้านความเป็นส่วนตัวในข้อความ รูปภาพ และที่เก็บข้อมูลของ Google Cloud Platform
- Cloud Key Management Service (KMS) API - Google Cloud KMS ช่วยให้ลูกค้าจัดการคีย์การเข้ารหัสและดำเนินการเข้ารหัสลับด้วยคีย์เหล่านั้นได้
เปิดใช้ API ที่จำเป็นด้วยคำสั่ง gcloud ต่อไปนี้
gcloud services enable dlp.googleapis.com cloudkms.googleapis.com \
--project ${GOOGLE_CLOUD_PROJECT}
3. ตรวจสอบสตริงและไฟล์
ไดเรกทอรีตัวอย่างของโปรเจ็กต์ที่ดาวน์โหลดในขั้นตอนก่อนหน้ามีไฟล์ JavaScript หลายไฟล์ที่ใช้ฟังก์ชันการทำงานต่างๆ ของ Cloud DLP inspect.js จะตรวจสอบสตริงหรือไฟล์ที่ระบุเพื่อหาประเภทข้อมูลที่ละเอียดอ่อน
หากต้องการทดสอบ ให้ระบุstringและสตริงตัวอย่างที่มีข้อมูลที่อาจมีความละเอียดอ่อน
node inspect.js -c $GOOGLE_CLOUD_PROJECT \ string 'My email address is jenny@somedomain.com and you can call me at 555-867-5309'
เอาต์พุตควรแจ้งให้เราทราบผลการค้นหาสำหรับข้อมูลแต่ละประเภทที่ตรงกัน ซึ่งรวมถึง
ใบเสนอราคา: เทมเพลตระบุ
InfoType: ประเภทข้อมูลที่ตรวจพบสำหรับส่วนนั้นของสตริง ดูรายการประเภทข้อมูลทั้งหมดที่อาจเกิดขึ้นได้ที่นี่ โดยค่าเริ่มต้น inspect.js จะตรวจสอบเฉพาะประเภทข้อมูล CREDIT_CARD_NUMBER, PHONE_NUMBER และ EMAIL_ADDRESS
ความเป็นไปได้: ระบบจะจัดหมวดหมู่ผลลัพธ์ตามความเป็นไปได้ที่แต่ละรายการจะตรงกัน ความเป็นไปได้อาจอยู่ในช่วง VERY_UNLIKELY ถึง VERY_LIKELY
ผลลัพธ์สำหรับคำขอคำสั่งข้างต้นคือ
Findings:
Quote: jenny@somedomain.com
Info type: EMAIL_ADDRESS
Likelihood: LIKELY
Quote: 555-867-5309
Info type: PHONE_NUMBER
Likelihood: VERY_LIKELY
ในทำนองเดียวกัน เราก็ตรวจสอบไฟล์เพื่อหาประเภทข้อมูลได้ ดูไฟล์ accounts.txt ตัวอย่าง
resources/accounts.txt
My credit card number is 1234 5678 9012 3456, and my CVV is 789.
เรียกใช้ inspect.js อีกครั้ง คราวนี้ใช้ตัวเลือกไฟล์
node inspect.js -c $GOOGLE_CLOUD_PROJECT file resources/accounts.txt
ผลลัพธ์
Findings:
Quote: 5678 9012 3456
Info type: CREDIT_CARD_NUMBER
Likelihood: VERY_LIKELY
สําหรับการค้นหาทั้ง 2 ประเภท เราอาจจํากัดผลลัพธ์ตามความน่าจะเป็นหรือประเภทข้อมูล เช่น
node inspect.js -c $GOOGLE_CLOUD_PROJECT \ string 'Call 900-649-2568 or email me at anthony@somedomain.com' \ -m VERY_LIKELY
การระบุ VERY_LIKELY เป็นความน่าจะเป็นขั้นต่ำจะทำให้ระบบยกเว้นการจับคู่ใดๆ ที่น้อยกว่า VERY_LIKELY
Findings:
Quote: 900-649-2568
Info type: PHONE_NUMBER
Likelihood: VERY_LIKELY
ผลลัพธ์ทั้งหมดโดยไม่มีข้อจำกัดจะเป็นดังนี้
Findings:
Quote: 900-649-2568
Info type: PHONE_NUMBER
Likelihood: VERY_LIKELY
Quote: anthony@somedomain.com
Info type: EMAIL_ADDRESS
Likelihood: LIKELY
ในทำนองเดียวกัน เราสามารถระบุประเภทข้อมูลที่ต้องการตรวจสอบได้ดังนี้
node inspect.js -c $GOOGLE_CLOUD_PROJECT \ string 'Call 900-649-2568 or email me at anthony@somedomain.com' \ -t EMAIL_ADDRESS
ระบบจะแสดงเฉพาะประเภทข้อมูลที่ระบุหากพบ
Findings:
Quote: anthony@somedomain.com
Info type: EMAIL_ADDRESS
Likelihood: LIKELY
ด้านล่างนี้คือฟังก์ชันแบบอะซิงโครนัสที่ใช้ API เพื่อตรวจสอบอินพุต
inspect.js
async function inspectString(
callingProjectId,
string,
minLikelihood,
maxFindings,
infoTypes,
customInfoTypes,
includeQuote
) {
...
}
ระบบใช้อาร์กิวเมนต์ที่ระบุสำหรับพารามิเตอร์ด้านบนเพื่อสร้างออบเจ็กต์คำขอ จากนั้นจะส่งคำขอดังกล่าวไปยังฟังก์ชัน inspectContent เพื่อรับคำตอบซึ่งจะทำให้เราได้เอาต์พุตต่อไปนี้
inspect.js
// Construct item to inspect
const item = {value: string};
// Construct request
const request = {
parent: dlp.projectPath(callingProjectId),
inspectConfig: {
infoTypes: infoTypes,
customInfoTypes: customInfoTypes,
minLikelihood: minLikelihood,
includeQuote: includeQuote,
limits: {
maxFindingsPerRequest: maxFindings,
},
},
item: item,
};
...
...
const [response] = await dlp.inspectContent(request);
4. การลบการระบุตัวตน
นอกเหนือจากการตรวจสอบและตรวจหาข้อมูลที่ละเอียดอ่อนแล้ว Cloud DLP ยังสามารถดำเนินการลบข้อมูลระบุตัวบุคคลได้ด้วย การไม่ระบุตัวตนคือกระบวนการนำข้อมูลที่ระบุตัวตนออกจากข้อมูล API จะตรวจหาข้อมูลที่ละเอียดอ่อนตามที่กำหนดโดยประเภทข้อมูล จากนั้นจะใช้การเปลี่ยนรูปแบบเพื่อไม่ให้ระบุตัวบุคคลได้เพื่อมาสก์ ลบ หรือปิดบังข้อมูล
deid.js จะแสดงให้เห็นการลบข้อมูลระบุตัวบุคคลได้หลายวิธี วิธีที่ง่ายที่สุดในการลบข้อมูลระบุตัวบุคคลคือการใช้มาสก์
node deid.js deidMask -c $GOOGLE_CLOUD_PROJECT \ "My order number is F12312399. Email me at anthony@somedomain.com"
เมื่อใช้มาสก์ API จะแทนที่อักขระของประเภทข้อมูลที่ตรงกันด้วยอักขระอื่น ซึ่งโดยค่าเริ่มต้นคือ * เอาต์พุตจะเป็นดังนี้
My order number is F12312399. Email me at *****************************
โปรดทราบว่าอีเมลในสตริงจะได้รับการปกปิดในขณะที่หมายเลขคำสั่งซื้อแบบสุ่มจะยังคงอยู่ (สามารถใช้ประเภทข้อมูลที่กำหนดเองได้ แต่ไม่อยู่ในขอบเขตของ Codelab นี้)
มาดูฟังก์ชันที่ใช้ DLP API เพื่อยกเลิกการระบุตัวบุคคลด้วยมาสก์กัน
deid.js
async function deidentifyWithMask(
callingProjectId,
string,
maskingCharacter,
numberToMask
) {
...
}
อีกครั้งที่อาร์กิวเมนต์เหล่านี้ใช้เพื่อสร้างออบเจ็กต์คำขอ ครั้งนี้จะมีการระบุฟังก์ชัน deidentifyContent ดังนี้
deid.js
// Construct deidentification request
const item = {value: string};
const request = {
parent: dlp.projectPath(callingProjectId),
deidentifyConfig: {
infoTypeTransformations: {
transformations: [
{
primitiveTransformation: {
characterMaskConfig: {
maskingCharacter: maskingCharacter,
numberToMask: numberToMask,
},
},
},
],
},
},
item: item,
};
...
...
const [response] = await dlp.deidentifyContent(request);
ลบข้อมูลที่ระบุตัวบุคคลนั้นได้ด้วยการเข้ารหัสที่สงวนรูปแบบ
นอกจากนี้ DLP API ยังมีความสามารถในการเข้ารหัสค่าข้อมูลที่ละเอียดอ่อนโดยใช้คีย์การเข้ารหัสด้วย
เราจะเริ่มต้นด้วยการใช้ Cloud KMS เพื่อสร้างคีย์ริง
gcloud kms keyrings create dlp-keyring --location global
ตอนนี้เราสามารถสร้างคีย์ที่จะใช้เพื่อเข้ารหัสข้อมูลได้แล้ว
gcloud kms keys create dlp-key \ --purpose='encryption' \ --location=global \ --keyring=dlp-keyring
DLP API จะยอมรับคีย์ที่ปกปิดซึ่งเข้ารหัสด้วยคีย์ KMS ที่เราสร้างขึ้น เราสามารถสร้างสตริงแบบสุ่มที่จะมีการห่อได้ เราจะต้องใช้ข้อมูลนี้ในภายหลังเพื่อระบุตัวตนอีกครั้ง
export AES_KEY=`head -c16 < /dev/random | base64 -w 0`
ตอนนี้เราสามารถเข้ารหัสสตริงด้วยคีย์ KMS ได้แล้ว ซึ่งจะสร้างไฟล์ไบนารีที่มีสตริงที่เข้ารหัสเป็นข้อความที่เข้ารหัส
echo -n $AES_KEY | gcloud kms encrypt \ --location global \ --keyring dlp-keyring \ --key dlp-key \ --plaintext-file - \ --ciphertext-file ./ciphertext.bin
ตอนนี้เราสามารถยกเลิกการระบุตัวตนของหมายเลขโทรศัพท์ในสตริงตัวอย่างด้านล่างได้โดยใช้การเข้ารหัส deid.js
node deid.js deidFpe -c $GOOGLE_CLOUD_PROJECT \
"My client's cell is 9006492568" `base64 -w 0 ciphertext.bin` \
projects/${GOOGLE_CLOUD_PROJECT}/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key \
-s PHONE_NUMBER
เอาต์พุตจะแสดงสตริงที่มีประเภทข้อมูลที่ตรงกันซึ่งแทนที่ด้วยสตริงที่เข้ารหัสและนำหน้าด้วยประเภทข้อมูลที่ระบุโดยแฟล็ก -s ดังนี้
My client's cell is PHONE_NUMBER(10):vSt55z79nR
มาดูฟังก์ชันที่เราใช้เพื่อยกเลิกการระบุตัวตนของสตริงกัน
deid.js
async function deidentifyWithFpe(
callingProjectId,
string,
alphabet,
surrogateType,
keyName,
wrappedKey
) {
...
}
อาร์กิวเมนต์ใช้เพื่อสร้างออบเจ็กต์ cryptoReplaceFfxFpeConfig ดังนี้
deid.js
const cryptoReplaceFfxFpeConfig = {
cryptoKey: {
kmsWrapped: {
wrappedKey: wrappedKey,
cryptoKeyName: keyName,
},
},
commonAlphabet: alphabet,
};
if (surrogateType) {
cryptoReplaceFfxFpeConfig.surrogateInfoType = {
name: surrogateType,
};
}
จากนั้นจะใช้ออบเจ็กต์ cryptoReplaceFfxFpeConfig ในคำขอไปยัง API ผ่านฟังก์ชัน deidentifyContent
deid.js
// Construct deidentification request
const item = {value: string};
const request = {
parent: dlp.projectPath(callingProjectId),
deidentifyConfig: {
infoTypeTransformations: {
transformations: [
{
primitiveTransformation: {
cryptoReplaceFfxFpeConfig: cryptoReplaceFfxFpeConfig,
},
},
],
},
},
item: item,
};
try {
// Run deidentification request
const [response] = await dlp.deidentifyContent(request);
ระบุข้อมูลอีกครั้ง
DLP API จะใช้ข้อความที่เข้ารหัสซึ่งเราสร้างไว้ในขั้นตอนก่อนหน้าเพื่อระบุข้อมูลอีกครั้ง
node deid.js reidFpe -c $GOOGLE_CLOUD_PROJECT \
"<YOUR_DEID_OUTPUT>" \
PHONE_NUMBER `base64 -w 0 ciphertext.bin` \
projects/${GOOGLE_CLOUD_PROJECT}/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key
เอาต์พุตจะเป็นสตริงเดิมโดยไม่มีการปกปิดข้อมูลหรือระบุประเภทข้อมูลแทน
My client's cell is 9006492568
ฟังก์ชันที่ใช้ในการระบุข้อมูลอีกครั้งจะคล้ายกับฟังก์ชันที่ใช้ในการยกเลิกการระบุตัวบุคคล
deid.js
async function reidentifyWithFpe(
callingProjectId,
string,
alphabet,
surrogateType,
keyName,
wrappedKey
) {
...
}
และอีกครั้งที่อาร์กิวเมนต์จะใช้ในคำขอไปยัง API คราวนี้เป็นฟังก์ชัน reidentifyContent
deid.js
// Construct deidentification request
const item = {value: string};
const request = {
parent: dlp.projectPath(callingProjectId),
reidentifyConfig: {
infoTypeTransformations: {
transformations: [
{
primitiveTransformation: {
cryptoReplaceFfxFpeConfig: {
cryptoKey: {
kmsWrapped: {
wrappedKey: wrappedKey,
cryptoKeyName: keyName,
},
},
commonAlphabet: alphabet,
surrogateInfoType: {
name: surrogateType,
},
},
},
},
],
},
},
inspectConfig: {
customInfoTypes: [
{
infoType: {
name: surrogateType,
},
surrogateType: {},
},
],
},
item: item,
};
try {
// Run reidentification request
const [response] = await dlp.reidentifyContent(request);
ลบข้อมูลระบุตัวบุคคลจากวันที่ด้วยการเปลี่ยนวันที่
ในบางบริบท วันที่ถือเป็นข้อมูลที่ละเอียดอ่อนซึ่งเราอาจต้องการปกปิด การเลื่อนวันที่ช่วยให้เราเลื่อนวันที่ได้โดยการเพิ่มแบบสุ่มในขณะที่ยังคงลำดับและระยะเวลาของช่วงเวลาไว้ ระบบจะเลื่อนวันที่แต่ละวันในชุดตามระยะเวลาที่ไม่ซ้ำกันสำหรับรายการนั้น หากต้องการแสดงการลบข้อมูลระบุตัวบุคคลผ่านการเลื่อนวันที่ ให้ดูไฟล์ CSV ตัวอย่างที่มีข้อมูลวันที่ก่อน
resources/dates.csv
name,birth_date,register_date,credit_card
Ann,01/01/1980,07/21/1996,4532908762519852
James,03/06/1988,04/09/2001,4301261899725540
Dan,08/14/1945,11/15/2011,4620761856015295
Laura,11/03/1992,01/04/2017,4564981067258901
ข้อมูลมี 2 ฟิลด์ที่เราสามารถใช้การเลื่อนวันที่ได้ ได้แก่ birth_date และ register_date deid.js จะยอมรับค่าขอบเขตล่างและค่าขอบเขตบนเพื่อกำหนดช่วงในการเลือกจำนวนวันแบบสุ่มเพื่อเลื่อนวันที่
node deid.js deidDateShift -c $GOOGLE_CLOUD_PROJECT resources/dates.csv datesShifted.csv 30 90 birth_date
ระบบจะสร้างไฟล์ชื่อ datesShifted.csv โดยจะเลื่อนวันที่แบบสุ่มเป็นจำนวนวันระหว่าง 30 ถึง 90 วัน ตัวอย่างเอาต์พุตที่สร้างขึ้น
name,birth_date,register_date,credit_card
Ann,2/6/1980,7/21/1996,4532908762519852
James,5/18/1988,4/9/2001,4301261899725540
Dan,9/16/1945,11/15/2011,4620761856015295
Laura,12/16/1992,1/4/2017,4564981067258901
โปรดสังเกตว่าเรายังระบุคอลัมน์วันที่ในไฟล์ CSV ที่ต้องการเปลี่ยนได้ด้วย ฟิลด์ birth_date ฟิลด์ register_date จะไม่มีการเปลี่ยนแปลง
มาดูฟังก์ชันที่จัดการการลบข้อมูลระบุตัวบุคคลด้วยการเปลี่ยนวันที่กัน
deid.js
async function deidentifyWithDateShift(
callingProjectId,
inputCsvFile,
outputCsvFile,
dateFields,
lowerBoundDays,
upperBoundDays,
contextFieldId,
wrappedKey,
keyName
) {
...
}
โปรดทราบว่าฟังก์ชันนี้อาจยอมรับคีย์ที่ห่อหุ้มและชื่อคีย์ได้ ซึ่งคล้ายกับการยกเลิกการระบุตัวบุคคลด้วย FPE เพื่อให้เรามีตัวเลือกในการระบุคีย์การเข้ารหัสเพื่อระบุการเลื่อนวันที่อีกครั้ง อาร์กิวเมนต์ที่เราให้จะสร้างออบเจ็กต์ dateShiftConfig ดังนี้
deid.js
// Construct DateShiftConfig
const dateShiftConfig = {
lowerBoundDays: lowerBoundDays,
upperBoundDays: upperBoundDays,
};
if (contextFieldId && keyName && wrappedKey) {
dateShiftConfig.context = {name: contextFieldId};
dateShiftConfig.cryptoKey = {
kmsWrapped: {
wrappedKey: wrappedKey,
cryptoKeyName: keyName,
},
};
} else if (contextFieldId || keyName || wrappedKey) {
throw new Error(
'You must set either ALL or NONE of {contextFieldId, keyName, wrappedKey}!'
);
}
// Construct deidentification request
const request = {
parent: dlp.projectPath(callingProjectId),
deidentifyConfig: {
recordTransformations: {
fieldTransformations: [
{
fields: dateFields,
primitiveTransformation: {
dateShiftConfig: dateShiftConfig,
},
},
],
},
},
item: tableItem,
};
5. ปกปิดสตริงและรูปภาพ
อีกวิธีหนึ่งในการปกปิดข้อมูลที่ละเอียดอ่อนคือการปกปิด การปกปิดข้อมูลบางส่วนจะแทนที่ข้อมูลที่ตรงกันด้วยประเภทข้อมูลที่ระบบระบุว่าตรงกัน redact.js แสดงให้เห็นการปกปิดข้อมูลบางส่วน
node redact.js -c $GOOGLE_CLOUD_PROJECT \ string "Please refund the purchase to my credit card 4012888888881881" \ -t 'CREDIT_CARD_NUMBER'
เอาต์พุตจะแทนที่หมายเลขบัตรเครดิตตัวอย่างด้วยประเภทข้อมูล CREDIT_CARD_NUMBER
Please refund the purchase on my credit card [CREDIT_CARD_NUMBER]
ซึ่งจะมีประโยชน์ในกรณีที่คุณต้องการซ่อนข้อมูลที่ละเอียดอ่อนแต่ยังคงระบุประเภทของข้อมูลที่ถูกนำออก DLP API สามารถปกปิดข้อมูลจากรูปภาพที่มีข้อความได้ในลักษณะเดียวกัน มาดูตัวอย่างรูปภาพเพื่อสาธิตกัน
resources/test.png

วิธีปกปิดหมายเลขโทรศัพท์และอีเมลจากรูปภาพด้านบน
node redact.js -c $GOOGLE_CLOUD_PROJECT \ image resources/test.png ./redacted.png \ -t PHONE_NUMBER -t EMAIL_ADDRESS
ตามที่ระบุไว้ ระบบจะสร้างรูปภาพใหม่ชื่อ redacted.png โดยปิดทึบข้อมูลที่ขอ

ฟังก์ชันที่ใช้ในการปกปิดข้อมูลจากสตริงมีดังนี้
redact.js
async function redactText(
callingProjectId,
string,
minLikelihood,
infoTypes
) {
...}
และนี่คือคำขอที่จะส่งไปยังฟังก์ชัน deidentifyContent
redact.js
const request = {
parent: dlp.projectPath(callingProjectId),
item: {
value: string,
},
deidentifyConfig: {
infoTypeTransformations: {
transformations: [replaceWithInfoTypeTransformation],
},
},
inspectConfig: {
minLikelihood: minLikelihood,
infoTypes: infoTypes,
},
};
ในทำนองเดียวกัน นี่คือฟังก์ชันสำหรับการปกปิดข้อมูลในรูปภาพ
redact.js
async function redactImage(
callingProjectId,
filepath,
minLikelihood,
infoTypes,
outputPath
) {
...}
และนี่คือคำขอที่จะส่งไปยังฟังก์ชัน redactImage
redact.js
// Construct image redaction request
const request = {
parent: dlp.projectPath(callingProjectId),
byteItem: {
type: fileTypeConstant,
data: fileBytes,
},
inspectConfig: {
minLikelihood: minLikelihood,
infoTypes: infoTypes,
},
imageRedactionConfigs: imageRedactionConfigs,
};
6. ล้างข้อมูล
เราได้ศึกษาถึงวิธีใช้ DLP API เพื่อมาสก์ ยกเลิกการระบุตัวบุคคล และปกปิดข้อมูลที่ละเอียดอ่อนจากข้อมูลของเรา ตอนนี้ก็ถึงเวลาล้างข้อมูลโปรเจ็กต์ของเราจากทรัพยากรที่เราสร้างขึ้น
ลบโปรเจ็กต์
ในคอนโซล GCP ให้ไปที่หน้า Cloud Resource Manager
ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ที่เราใช้ทำงานอยู่ แล้วคลิกลบ ระบบจะแจ้งให้คุณพิมพ์รหัสโปรเจ็กต์ ป้อนรหัสแล้วคลิกปิด
หรือจะลบทั้งโปรเจ็กต์โดยตรงจาก Cloud Shell ด้วย gcloud ก็ได้
gcloud projects delete $GOOGLE_CLOUD_PROJECT
7. ยินดีด้วย
แจ่มแจ๋ว! สำเร็จแล้ว! Cloud DLP เป็นเครื่องมือที่มีประสิทธิภาพซึ่งให้สิทธิ์เข้าถึงแพลตฟอร์มการตรวจสอบ การจัดประเภท และการลบข้อมูลระบุตัวบุคคลออกจากข้อมูลที่มีความละเอียดอ่อนที่มีประสิทธิภาพ
สิ่งที่เราได้พูดถึงไปแล้ว
- เราได้เห็นวิธีใช้ Cloud DLP API เพื่อตรวจสอบสตริงและไฟล์สำหรับประเภทข้อมูลหลายรายการ
- เราได้เรียนรู้วิธีที่ DLP API สามารถยกเลิกการระบุตัวตนของสตริงด้วยมาสก์เพื่อซ่อนข้อมูลที่ตรงกับประเภทข้อมูล
- เราใช้ DLP API เพื่อใช้คีย์การเข้ารหัสในการยกเลิกการระบุตัวบุคคลและระบุตัวบุคคลอีกครั้ง
- เราใช้ DLP API เพื่อปกปิดข้อมูลจากสตริงและรูปภาพ