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

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

वर्शन: 2.0.2

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

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

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

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

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

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

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

Cloud Data Loss Prevention (DLP) के बारे में जानकारी

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

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

सैंपल

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

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

तारों से मास्क करना

इस उदाहरण में, 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 नीति, Trace टूल में दिखाने के लिए, एक्सटेंशन का आउटपुट वापस पाती है.

<?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 कार्रवाई का इस्तेमाल करके, तय किए गए टाइप के टेक्स्ट को, infoType के नाम से मास्क किया गया है. उदाहरण के लिए, यह ईमेल पते 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 नीति, Trace टूल में दिखाने के लिए, एक्सटेंशन का आउटपुट वापस पाती है.

<?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 के साथ काम करने के लिए कॉन्फ़िगर किया जाना चाहिए. infoTypes की सूची देखने के लिए, InfoType Detector Reference देखें.

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

इस उदाहरण के लिए, आउटपुट यह होगा:

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

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

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

जवाब

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

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

deidentifyWithTemplate

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

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

अपने टेंप्लेट में, आपको उन infoTypes के बारे में बताना होगा जिनकी पहचान हटानी है. infoTypes की सूची देखने के लिए, InfoType detector reference देखें. पहचान हटाने की प्रोसेस में, टेंप्लेट में 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>

इस उदाहरण के लिए, आउटपुट, पहचान हटाया गया अनुरोध का कॉन्टेंट होगा.

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

पैरामीटर ब्यौरा टाइप डिफ़ॉल्ट ज़रूरी है
text वह टेक्स्ट जिसकी पहचान हटानी है. पहचान हटाने की प्रोसेस इसी पर काम करती है. ऑब्जेक्ट कोई नहीं. हां.
templateName वह टेंप्लेट जिसका इस्तेमाल करना है. यह टेंप्लेट का पाथ होगा. यह इस फ़ॉर्मैट में होगा: projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID. Google API की मदद से टेंप्लेट बनाते समय, जवाब की name प्रॉपर्टी की वैल्यू को templateName के तौर पर इस्तेमाल करें. स्ट्रिंग कोई नहीं. हां.

जवाब

इनपुट टेक्स्ट में, तय किए गए infoTypes की वैल्यू की जगह, infoType के नाम आ जाते हैं.

deidentifyWithType

टेक्स्ट कॉन्टेंट में मौजूद संवेदनशील डेटा की पहचान हटाएं. साथ ही, मेल खाने वाली हर वैल्यू की जगह, infoType का नाम डालें. infoTypes की सूची देखने के लिए, InfoType detector reference देखें. यह कार्रवाई, एक्सटेंशन के कॉन्फ़िगरेशन में 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 के साथ काम करने के लिए कॉन्फ़िगर किया जाना चाहिए. infoTypes की सूची देखने के लिए, InfoType Detector Reference देखें.

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

इस उदाहरण के लिए, आउटपुट यह होगा:

{"text":"EMAIL_ADDRESS"}

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

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

जवाब

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

{"text":"EMAIL_ADDRESS"}

redactImage

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

infoTypes की सूची देखने के लिए, InfoType detector reference देखें.

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

<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 कंसोल का इस्तेमाल करके, एक्सटेंशन को कॉन्फ़िगर करने के चरणों के लिए, एक्सटेंशन जोड़ना और कॉन्फ़िगर करना देखें.

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

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

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

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

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

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