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

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

वर्शन: 1.3.0

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

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

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

  1. अपने प्रोजेक्ट के लिए, Google Cloud डीएलपी एपीआई चालू करें.

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

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

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

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

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

ज़्यादा जानने के लिए, डीएलपी की खास जानकारी देखें. यह एक्सटेंशन जो एपीआई उपलब्ध कराता है उसके बारे में जानने के लिए, Cloud डेटा लॉस प्रिवेंशन (डीएलपी) एपीआई देखें.

सैंपल

नीचे दिए गए उदाहरणों में, एक्सटेंशन कॉलआउट नीति का इस्तेमाल करके, Cloud डीएलपी एक्सटेंशन ऐक्शन के लिए सहायता कॉन्फ़िगर करने का तरीका बताया गया है.

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

सितारों वाला मास्क

इस उदाहरण में, 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>

नीचे दी गई एक्सटेंशन कॉलआउट नीति, request.content वैरिएबल की वैल्यू को फिर से हासिल करती है और उसे क्लाउड डीएलपी एक्सटेंशन (यहां 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>

नीचे दी गई AssignmentsMessage नीति, ट्रेस टूल में दिखाने के लिए एक्सटेंशन का आउटपुट वापस लेती है.

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

नीचे दी गई एक्सटेंशन कॉलआउट नीति, request.content वैरिएबल की वैल्यू को फिर से हासिल करती है और उसे क्लाउड डीएलपी एक्सटेंशन (यहां 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>

नीचे दी गई AssignmentsMessage नीति, ट्रेस टूल में दिखाने के लिए एक्सटेंशन का आउटपुट वापस लेती है.

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

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

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

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

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

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

जवाब

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

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

deidentifyWithTemplate

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

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

अपने टेंप्लेट में आपको infoTypes की जानकारी देनी होगी. यह जानकारी उस कॉन्टेंट के बारे में होनी चाहिए जिसकी पहचान से जुड़ी जानकारी हटानी है. जानकारी के टाइप की सूची के लिए, InfoType डिटेक्टर का रेफ़रंस देखें. पहचान से जुड़ी जानकारी हटाने से, टेक्स्ट के उन हिस्सों को मास्क कर दिया जाता है जिनके बारे में टेंप्लेट में infoTypes प्रॉपर्टी ने बताया है.

सिंटैक्स

<Action>deidentifyWithTemplate</Action>
<Input><![CDATA[{
  "text" : "text-to-deidentify"
  "templateName" : "path-to-template"
}]]></Input>

उदाहरण

नीचे दिए गए उदाहरण में, पहचान से जुड़ी जानकारी हटाने वाला इनपुट, अनुरोध का मुख्य हिस्सा request.content flow वैरिएबल है.

<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 के तौर पर इस्तेमाल करें. String कोई नहीं. हां.

जवाब

दिए गए InfoTypes के मानों वाले इनपुट टेक्स्ट को infoType नामों से बदल दिया गया है.

deidentifyWithType

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

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

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

{"text":"EMAIL_ADDRESS"}

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

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

जवाब

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

{"text":"EMAIL_ADDRESS"}

redactImage

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

जानकारी के टाइप की सूची के लिए, InfoType डिटेक्टर का रेफ़रंस देखें.

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

<Action>redactImage</Action>
<Input><![CDATA[{
  "image_data" : "base64-encoded-image-to-analyze",
  "image_type" : "type-of-image"
}]]></Input>
पैरामीटर ब्यौरा Type डिफ़ॉल्ट ज़रूरी है
image_data इमेज का डेटा, Base64 में कोड में बदला गया है. String कोई नहीं. हां.
image_type इमेज टाइप का कॉन्सटेंट. उपलब्ध वैल्यू IMAGE_JPEG, IMAGE_BMP, IMAGE_PNG, IMAGE_SVG हैं. String कोई नहीं. हां.

जवाब

टेक्स्ट वाली इमेज को छिपाने के लिए उसमें बदलाव किया गया है.

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

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

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

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

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

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

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

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