ภาพรวมการป้องกันข้อมูลรั่วไหลของระบบคลาวด์

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

bf3719cfeb5676ff.png

วิธีปกปิดหมายเลขโทรศัพท์และอีเมลจากรูปภาพด้านบน

node redact.js -c $GOOGLE_CLOUD_PROJECT \
image resources/test.png ./redacted.png \
-t PHONE_NUMBER -t EMAIL_ADDRESS

ตามที่ระบุไว้ ระบบจะสร้างรูปภาพใหม่ชื่อ redacted.png โดยปิดทึบข้อมูลที่ขอ

ce023dd95cccc40f.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 เพื่อปกปิดข้อมูลจากสตริงและรูปภาพ