Google Cloud डेटा लीक होने की रोकथाम का एक्सटेंशन

Apigee Edge का दस्तावेज़ देखा जा रहा है.
Apigee X के दस्तावेज़ पर जाएं.
जानकारी

वर्शन: 2.0.0

कॉन्टेंट और इमेज से संवेदनशील डेटा छिपाने के लिए, इस एक्सटेंशन का इस्तेमाल करें. उदाहरण के लिए, क्रेडिट कार्ड नंबर, नाम, और सोशल सिक्योरिटी नंबर छिपाए जा सकते हैं.

ज़रूरी शर्तें

इस कॉन्टेंट में, इस एक्सटेंशन को कॉन्फ़िगर करने और इस्तेमाल करने के बारे में जानकारी दी गई है. ExtensionCallout नीति का इस्तेमाल करके, एपीआई प्रॉक्सी से एक्सटेंशन का इस्तेमाल करने से पहले, आपको ये काम करने होंगे:

  1. अपने प्रोजेक्ट के लिए, Google Cloud DLP API चालू करें.

  2. एक्सटेंशन के लिए, आपको जिस लेवल का ऐक्सेस चाहिए उसके लिए अनुमति दें.

  3. सेवा खाते के लिए कुंजी जनरेट करने के लिए, GCP Console का इस्तेमाल करें.

  4. कॉन्फ़िगरेशन रेफ़रंस का इस्तेमाल करके एक्सटेंशन को जोड़ने और कॉन्फ़िगर करने के दौरान, जनरेट हुई कुंजी वाली JSON फ़ाइल के कॉन्टेंट का इस्तेमाल करें.

Cloud में डेटा लीक होने की रोकथाम (डीएलपी) के बारे में जानकारी

क्लाउड डेटा लीक होने की रोकथाम (डीएलपी) एक एपीआई है. इसका इस्तेमाल, टेक्स्ट, इमेज, और अन्य डेटा की जांच करने के लिए किया जाता है. इससे संवेदनशील डेटा की पहचान की जा सकती है और उसे मैनेज किया जा सकता है.

ज़्यादा जानकारी के लिए, डीएलपी की खास जानकारी देखें. इस एक्सटेंशन से जो एपीआई एक्सपोज़ होता है उसके बारे में जानने के लिए, Cloud Data Loss Prevention (DLP) API देखें.

सैंपल

यहां दिए गए उदाहरणों में, ExtensionCallout नीति का इस्तेमाल करके, 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>

यहां दी गई ExtensionCallout नीति, request.content वैरिएबल की वैल्यू को वापस लाती है और उसे Cloud DLP एक्सटेंशन (जिसे यहां example-dlp कहा गया है) को भेजती है. इस एक्सटेंशन को URL और EMAIL_ADDRESS infoTypes के आधार पर वैल्यू को मास्क करने के लिए कॉन्फ़िगर किया गया है.

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

यहां दी गई ExtensionCallout नीति, request.content वैरिएबल की वैल्यू को वापस लाती है और उसे Cloud DLP एक्सटेंशन (जिसे यहां example-dlp कहा गया है) को भेजती है. इस एक्सटेंशन को URL और EMAIL_ADDRESS infoTypes के आधार पर वैल्यू को मास्क करने के लिए कॉन्फ़िगर किया गया है.

<?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 वर्ण से मास्क करें. यह कार्रवाई, एक्सटेंशन कॉन्फ़िगरेशन में infoTypes प्रॉपर्टी से तय किए गए text के उन हिस्सों को मास्क कर देती है.

संवेदनशील डेटा को मास्क करने पर, वर्णों को किसी सिंबल से बदल दिया जाता है. जैसे, तारे का निशान (*) या हैश (#). एक्सटेंशन कॉन्फ़िगरेशन में, संवेदनशील डेटा के टाइप को कॉन्फ़िगर किया जा सकता है.

सिंटैक्स

<Action>deidentifyWithMask</Action>
<Input><![CDATA[{
  "text" : "text-to-deidentify",
  "mask" : "masking-character"
}]]></Input>

उदाहरण

नीचे दिए गए उदाहरण में, मास्क करने के लिए इनपुट एक ईमेल पता है, जो input.email.address फ़्लो वैरिएबल में सेव किया गया है. इस खास उदाहरण के साथ काम करने के लिए, यह ज़रूरी है कि इस एक्सटेंशन को EMAIL_ADDRESS infoType के साथ काम करने के लिए कॉन्फ़िगर किया गया हो. infoType की सूची के लिए, InfoType डिटेक्टर का रेफ़रंस देखें.

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

इस उदाहरण का आउटपुट यह होगा:

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

अनुरोध पैरामीटर

पैरामीटर ब्यौरा टाइप डिफ़ॉल्ट ज़रूरी है
टेक्स्ट वह टेक्स्ट जिसकी पहचान छिपानी है. स्ट्रिंग कोई नहीं. हां.
मास्क संवेदनशील डेटा को छिपाने के लिए इस्तेमाल किया जाने वाला वर्ण. स्ट्रिंग कोई नहीं. हां.

जवाब

तय किए गए infoTypes की वैल्यू वाले इनपुट टेक्स्ट को तय किए गए वर्ण से बदल दिया गया. उदाहरण के लिए,

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

deidentifyWithTemplate

टेक्स्ट कॉन्टेंट में मौजूद संवेदनशील डेटा की पहचान हटाने के लिए, टेंप्लेट का इस्तेमाल करें. यह टेंप्लेट यह कॉन्फ़िगर करता है कि किस टेक्स्ट की पहचान हटानी है और उसे कैसे मैनेज करना है.

टेंप्लेट, कॉन्फ़िगरेशन को अलग करने के लिए काम के होते हैं. जैसे, किस चीज़ की जांच की जाती है और एपीआई कॉल को लागू करने से, उसकी पहचान कैसे हटाई जाती है. टेंप्लेट की मदद से, कॉन्फ़िगरेशन का फिर से इस्तेमाल किया जा सकता है. साथ ही, सभी उपयोगकर्ताओं और डेटा सेट के लिए एक जैसी सुविधाएं चालू की जा सकती हैं.

अपने टेंप्लेट में, आपको 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 डिटेक्टर का रेफ़रंस देखें. यह कार्रवाई, एक्सटेंशन कॉन्फ़िगरेशन में infoTypes प्रॉपर्टी से तय किए गए text के उन हिस्सों को मास्क कर देती है.

यहां दिए गए उदाहरण में, सेवा फ़ोन नंबर की पहचान करती है. इसके बाद, उसे 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 फ़्लो वैरिएबल में सेव किया गया है. इस खास उदाहरण के साथ काम करने के लिए, यह ज़रूरी है कि इस एक्सटेंशन को EMAIL_ADDRESS infoType के साथ काम करने के लिए कॉन्फ़िगर किया गया हो. infoType की सूची के लिए, InfoType डिटेक्टर का रेफ़रंस देखें.

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

इस उदाहरण का आउटपुट यह होगा:

{"text":"EMAIL_ADDRESS"}

अनुरोध पैरामीटर

पैरामीटर ब्यौरा टाइप डिफ़ॉल्ट ज़रूरी है
टेक्स्ट वह टेक्स्ट जिसकी पहचान छिपानी है. स्ट्रिंग कोई नहीं. हां.

जवाब

बताए गए infoType की वैल्यू वाले इनपुट टेक्स्ट को infoType के नामों से बदल दिया गया है. उदाहरण के लिए,

{"text":"EMAIL_ADDRESS"}

redactImage

infoType की किसी कैटगरी में आने वाले टेक्स्ट को छिपाएं. हटाए गए कॉन्टेंट का पता चल जाता है और उसे धुंधले रंग के रेक्टैंगल से छिपा दिया जाता है. यह कार्रवाई, एक्सटेंशन कॉन्फ़िगरेशन में infoTypes प्रॉपर्टी से तय किए गए image_data के उन हिस्सों को मास्क कर देती है.

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 वैल्यू इस्तेमाल की जा सकती हैं. स्ट्रिंग कोई नहीं. हां.

जवाब

टेक्स्ट हटाने के बाद की इमेज.

कॉन्फ़िगरेशन का रेफ़रंस

एपीआई प्रॉक्सी में इस्तेमाल करने के लिए, इस एक्सटेंशन को कॉन्फ़िगर और डिप्लॉय करते समय इनका इस्तेमाल करें. Apigee console का इस्तेमाल करके एक्सटेंशन को कॉन्फ़िगर करने का तरीका जानने के लिए, एक्सटेंशन जोड़ना और कॉन्फ़िगर करना लेख पढ़ें.

सामान्य एक्सटेंशन प्रॉपर्टी

हर प्रॉपर्टी के लिए नीचे दी गई प्रॉपर्टी मौजूद हैं.

प्रॉपर्टी जानकारी डिफ़ॉल्ट ज़रूरी है
name वह नाम, जिसे आप एक्सटेंशन का यह कॉन्फ़िगरेशन दे रहे हैं. कभी नहीं हां
packageName एक्सटेंशन पैकेज का नाम, जो Apigee Edge से दिया गया है. कभी नहीं हां
version उस एक्सटेंशन पैकेज का वर्शन नंबर जिससे आपको एक्सटेंशन कॉन्फ़िगर करना है. कभी नहीं हां
configuration आप जिस एक्सटेंशन को जोड़ रहे हैं उसके लिए खास तौर पर कॉन्फ़िगरेशन वैल्यू. इस एक्सटेंशन पैकेज के लिए प्रॉपर्टी देखें कभी नहीं हां

इस एक्सटेंशन पैकेज के लिए प्रॉपर्टी

इस एक्सटेंशन के लिए, यहां दी गई कॉन्फ़िगरेशन प्रॉपर्टी की वैल्यू दें.

प्रॉपर्टी ब्यौरा डिफ़ॉल्ट ज़रूरी है
projectId वह GCP प्रोजेक्ट आईडी जिसके लिए Cloud का डेटा लीक होने की रोकथाम करने वाला एपीआई चालू है. कोई नहीं. हां.
infoTypes संवेदनशील डेटा के टाइप. अगर इस पैरामीटर को शामिल नहीं किया जाता है, तो सेवा पहले से मौजूद सभी टाइप का पता लगाएगी. Google Cloud की डीएलपी सेवा के साथ काम करने वाले infoType की सूची के लिए, InfoType डिटेक्टर का रेफ़रंस देखें. कोई नहीं. नहीं.
क्रेडेंशियल Apigee Edge कंसोल में डालने पर, यह आपके सेवा खाते की कुंजी फ़ाइल का कॉन्टेंट होता है. इसे मैनेजमेंट एपीआई के ज़रिए भेजने पर, यह सेवा खाते की पासकोड फ़ाइल से जनरेट की गई, Base64 में एन्कोड की गई वैल्यू होती है. कोई नहीं. हां.