ক্লাউড ডেটা ক্ষতি প্রতিরোধ ওভারভিউ

1. ওভারভিউ

ক্লাউড ডেটা লস প্রিভেনশন (DLP) হল একটি সম্পূর্ণরূপে পরিচালিত পরিষেবা যা সংবেদনশীল তথ্য আবিষ্কার, শ্রেণীবিভাগ এবং সুরক্ষায় সহায়তা করার জন্য ডিজাইন করা হয়েছে। এই কোডল্যাবটি ক্লাউড ডিএলপি এপিআই-এর কিছু মৌলিক ক্ষমতার সাথে পরিচয় করিয়ে দেবে এবং ডেটা সুরক্ষিত রাখতে বিভিন্ন উপায়ে এটি ব্যবহার করা যেতে পারে তা প্রদর্শন করবে।

আপনি কি করবেন

  • তথ্য প্রকারের মিলের জন্য স্ট্রিং এবং ফাইলগুলি পরিদর্শন করতে DLP ব্যবহার করুন৷
  • শনাক্তকরণ কৌশল সম্পর্কে জানুন এবং ডেটা ডি-শনাক্ত করতে DLP ব্যবহার করুন
  • ফরম্যাট সংরক্ষণ এনক্রিপশন (FPE) ব্যবহার করে শনাক্ত করা হয়েছে এমন ডেটা কীভাবে পুনরায় শনাক্ত করতে হয় তা জানুন
  • স্ট্রিং এবং ইমেজ থেকে তথ্য প্রকার সংশোধন করতে DLP ব্যবহার করুন

আপনি কি প্রয়োজন হবে

  • বিলিং সেট আপ সহ একটি Google ক্লাউড প্রকল্প৷ আপনার যদি একটি না থাকে তবে আপনাকে একটি তৈরি করতে হবে।

2. সেট আপ করা হচ্ছে

এই কোডল্যাবটি সম্পূর্ণরূপে Google ক্লাউড প্ল্যাটফর্মে কোনো স্থানীয় ইনস্টলেশন বা কনফিগারেশন ছাড়াই চলতে পারে।

মেঘের শেল

এই কোডল্যাব জুড়ে, আমরা ক্লাউড শেল এর মাধ্যমে কমান্ড লাইন ব্যবহার করে বিভিন্ন ক্লাউড সংস্থান এবং পরিষেবাদির ব্যবস্থা করব এবং পরিচালনা করব।

সহচর প্রকল্প সংগ্রহস্থল ডাউনলোড করুন:

git clone https://github.com/googleapis/nodejs-dlp

প্রকল্প কোড ডাউনলোড হয়ে গেলে, নমুনা ডিরেক্টরিতে পরিবর্তন করুন এবং প্রয়োজনীয় Node.js প্যাকেজগুলি ইনস্টল করুন:

cd samples && npm install

নিম্নলিখিত gcloud কমান্ড দিয়ে সেট করে আপনি সঠিক প্রকল্পটি ব্যবহার করছেন তা নিশ্চিত করুন:

gcloud config set project [PROJECT_ID]

এপিআই সক্ষম করুন

আমাদের প্রকল্পে সক্ষম করার জন্য আমাদের যে API গুলি প্রয়োজন তা এখানে রয়েছে:

  • ক্লাউড ডেটা লস প্রিভেনশন এপিআই - টেক্সট, ছবি এবং Google ক্লাউড প্ল্যাটফর্ম স্টোরেজ রিপোজিটরিতে গোপনীয়তা-সংবেদনশীল অংশগুলি সনাক্তকরণ, ঝুঁকি বিশ্লেষণ এবং ডি-শনাক্তকরণের পদ্ধতি প্রদান করে
  • ক্লাউড কী ম্যানেজমেন্ট সার্ভিস (KMS) API - Google Cloud KMS গ্রাহকদের এনক্রিপশন কীগুলি পরিচালনা করতে এবং সেই কীগুলির সাহায্যে ক্রিপ্টোগ্রাফিক ক্রিয়াকলাপ সম্পাদন করতে দেয়৷

নিম্নলিখিত gcloud কমান্ড দিয়ে প্রয়োজনীয় API গুলি সক্ষম করুন:

gcloud services enable dlp.googleapis.com cloudkms.googleapis.com \
--project ${GOOGLE_CLOUD_PROJECT}

3. স্ট্রিং এবং ফাইল পরিদর্শন

পূর্ববর্তী ধাপে ডাউনলোড করা প্রকল্পের নমুনা ডিরেক্টরিতে বেশ কয়েকটি জাভাস্ক্রিপ্ট ফাইল রয়েছে যা ক্লাউড ডিএলপির বিভিন্ন কার্যকারিতা ব্যবহার করে। 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 ফাইলটি দেখুন:

संसाधन/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

যেকোন ধরনের প্রশ্নের জন্য, আমরা সম্ভাব্যতা বা তথ্যের ধরন দ্বারা ফলাফল সীমিত করতে পারি। যেমন:

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. শনাক্তকরণ

সংবেদনশীল ডেটা পরিদর্শন এবং সনাক্তকরণের বাইরে, ক্লাউড ডিএলপি শনাক্তকরণ সম্পাদন করতে পারে। শনাক্তকরণ হল ডেটা থেকে শনাক্তকরণ তথ্য মুছে ফেলার প্রক্রিয়া। API তথ্যের ধরন দ্বারা সংজ্ঞায়িত সংবেদনশীল ডেটা সনাক্ত করে এবং তারপরে ডেটাটিকে মুখোশ, মুছে ফেলতে বা অন্যথায় অস্পষ্ট করতে একটি ডি-আইডেন্টিফিকেশন রূপান্তর ব্যবহার করে।

deid.js বিভিন্ন উপায়ে শনাক্তকরণ প্রদর্শন করবে। শনাক্তকরণের সবচেয়ে সহজ পদ্ধতি হল মাস্ক দিয়ে:

node deid.js deidMask -c $GOOGLE_CLOUD_PROJECT \
"My order number is F12312399. Email me at anthony@somedomain.com"

একটি মুখোশের সাহায্যে এপিআই মানানসই তথ্য প্রকারের অক্ষরগুলিকে একটি ভিন্ন অক্ষর দিয়ে প্রতিস্থাপন করবে, * ডিফল্টরূপে। আউটপুট হবে:

My order number is F12312399. Email me at *****************************

লক্ষ্য করুন যে স্ট্রিং-এ ইমেল ঠিকানাটি অস্পষ্ট করা হয়েছে যখন ইচ্ছাকৃত অর্ডার নম্বরটি অক্ষত রয়েছে। (কাস্টম তথ্য প্রকারগুলি সম্ভব কিন্তু এই কোডল্যাবের সুযোগের বাইরে)।

চলুন দেখা যাক যে ফাংশনটি একটি মুখোশ দিয়ে সনাক্ত করতে 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 একটি ক্রিপ্টোগ্রাফিক কী ব্যবহার করে সংবেদনশীল ডেটা মান এনক্রিপ্ট করার ক্ষমতাও অফার করে।

আমরা একটি কী রিং তৈরি করতে ক্লাউড কেএমএস ব্যবহার করে শুরু করব:

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 অবজেক্টটি deidentifyContent ফাংশনের মাধ্যমে API-কে অনুরোধ করার সময় ব্যবহার করা হয়:

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 ফাইলটি দেখুন যাতে তারিখের ডেটা রয়েছে:

resource/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

ডেটাতে দুটি ক্ষেত্র রয়েছে যেখানে আমরা তারিখ পরিবর্তন করতে পারি: 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 একইভাবে টেক্সট ধারণকারী ছবি থেকে তথ্য সংশোধন করতে পারে। প্রদর্শনের জন্য, আসুন একটি নমুনা চিত্রটি দেখে নেওয়া যাক:

resource/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 কনসোলে, ক্লাউড রিসোর্স ম্যানেজার পৃষ্ঠায় যান:

প্রকল্প তালিকায়, আমরা যে প্রকল্পে কাজ করছি সেটি নির্বাচন করুন এবং মুছুন ক্লিক করুন। আপনাকে প্রজেক্ট আইডি টাইপ করতে বলা হবে। এটি লিখুন এবং শাট ডাউন ক্লিক করুন।

বিকল্পভাবে, আপনি gcloud দিয়ে সরাসরি ক্লাউড শেল থেকে সম্পূর্ণ প্রকল্প মুছে ফেলতে পারেন:

gcloud projects delete $GOOGLE_CLOUD_PROJECT

7. অভিনন্দন!

উহু! আপনি এটা করেছেন! ক্লাউড ডিএলপি একটি শক্তিশালী টুল যা একটি শক্তিশালী সংবেদনশীল ডেটা পরিদর্শন, শ্রেণিবিন্যাস এবং ডি-আইডেন্টিফিকেশন প্ল্যাটফর্মে অ্যাক্সেস প্রদান করে।

আমরা কভার করেছি কি

  • আমরা দেখেছি কিভাবে ক্লাউড ডিএলপি এপিআই একাধিক তথ্য প্রকারের জন্য স্ট্রিং এবং ফাইল পরিদর্শন করতে ব্যবহার করা যেতে পারে
  • আমরা শিখেছি কিভাবে DLP এপিআই একটি মাস্ক দিয়ে স্ট্রিং শনাক্ত করতে পারে তথ্য মেলানো তথ্য প্রকার লুকিয়ে রাখতে
  • আমরা DLP API ব্যবহার করেছি একটি এনক্রিপশন কী ব্যবহার করে শনাক্ত করতে এবং তারপরে ডেটা পুনরায় শনাক্ত করতে
  • আমরা একটি স্ট্রিং এবং একটি চিত্র থেকে ডেটা রিডাক্ট করতে DLP API ব্যবহার করেছি