إضافة منع فقدان البيانات من Google Cloud

أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

الإصدار: 2.0.2

استخدِم هذه الإضافة لإخفاء البيانات الحسّاسة من المحتوى والصور. على سبيل المثال، يمكنك إخفاء أرقام بطاقات الائتمان والأسماء وأرقام التأمين الاجتماعي.

المتطلبات الأساسية

يوفّر هذا المحتوى مرجعًا لإعداد هذه الإضافة واستخدامها. قبل استخدام الإضافة من خادم وكيل لواجهة برمجة التطبيقات باستخدام سياسة ExtensionCallout، يجب اتّباع ما يلي:

  1. فعِّل واجهة برمجة التطبيقات Google Cloud DLP API لمشروعك.

  2. امنح الإضافة الإذن بمستوى الوصول الذي تريده.

  3. استخدِم Google Cloud Console لإنشاء مفتاح لحساب الخدمة.

  4. استخدِم محتوى ملف مفتاح JSON الناتج عند إضافة الإضافة وإعدادها باستخدام مرجع الإعداد.

لمحة عن ميزة "منع فقدان البيانات من Cloud"

Cloud Data Loss Prevention (DLP) هي واجهة برمجة تطبيقات لفحص النصوص والصور والبيانات الأخرى من أجل تحديد البيانات الحسّاسة وإدارتها.

لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على "منع فقدان البيانات". للحصول على مرجع لواجهة برمجة التطبيقات التي يتيحها هذا الامتداد، يُرجى الاطّلاع على Cloud Data Loss Prevention (DLP) API.

نماذج

توضّح الأمثلة التالية كيفية ضبط إعدادات إتاحة إجراءات إضافة Cloud DLP باستخدام سياسة ExtensionCallout.

لتسهيل تجربة نموذج الرمز البرمجي هذا، تستخدم هذه الأمثلة سياسة 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). تم ضبط هذه الإضافة لإخفاء القيم استنادًا إلى infoTypes URL وEMAIL_ADDRESS.

<?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). تم ضبط هذه الإضافة لإخفاء القيم استنادًا إلى infoTypes URL وEMAIL_ADDRESS.

<?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 يخفي هذا الإجراء أجزاء text المحدّدة بواسطة السمة infoTypes في إعدادات الإضافة.

يؤدي إخفاء البيانات الحسّاسة إلى استبدال الأحرف برمز، مثل علامة النجمة (*) أو علامة المربع (#). ويمكن ضبط أنواع البيانات الحسّاسة في إعدادات الإضافة.

البنية

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

مثال

في المثال التالي، يكون الإدخال المطلوب إخفاءه هو عنوان بريد إلكتروني مخزَّن في متغيّر تدفّق input.email.address. لدعم هذا المثال المحدّد، يجب أن تكون هذه الإضافة قد تم إعدادها لدعم infoType EMAIL_ADDRESS. للحصول على قائمة بـ infoTypes، راجِع مرجع أداة رصد infoType.

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

ستكون نتيجة هذا المثال على النحو التالي:

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

مَعلمات الطلب

المَعلمة الوصف النوع تلقائي مطلوب
نص النص المطلوب إزالة تحديد الهوية منه سلسلة بلا عُري نعم.
كمامة الحرف الذي سيتم استخدامه لإخفاء البيانات الحسّاسة. سلسلة بلا عُري نعم.

الردّ

النص المُدخَل الذي تم فيه استبدال قيم infoType المحدّدة بالحرف المحدّد على سبيل المثال:

{"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. سلسلة بلا عُري نعم.

الردّ

النص المُدخَل الذي تم استبدال قيم infoTypes المحدّدة فيه بأسماء infoType

deidentifyWithType

إزالة تحديد الهوية من البيانات الحسّاسة في المحتوى النصي، واستبدال كل قيمة مطابقة باسم infoType للحصول على قائمة بأنواع 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. لدعم هذا المثال المحدّد، يجب أن تكون هذه الإضافة قد تم إعدادها لدعم infoType EMAIL_ADDRESS. للحصول على قائمة بـ infoTypes، راجِع مرجع أداة رصد infoType.

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

ستكون نتيجة هذا المثال على النحو التالي:

{"text":"EMAIL_ADDRESS"}

مَعلمات الطلب

المَعلمة الوصف النوع تلقائي مطلوب
نص النص المطلوب إزالة تحديد الهوية منه سلسلة بلا عُري نعم.

الردّ

النص المُدخَل الذي تم استبدال قيم infoTypes المحدّدة فيه بأسماء infoType على سبيل المثال:

{"text":"EMAIL_ADDRESS"}

redactImage

إخفاء محتوى النص الذي يندرج ضمن إحدى فئات infoType يتم رصد المحتوى الذي تم إخفاؤه وتغطيته بمستطيل غير شفاف. يخفي هذا الإجراء أجزاء image_data المحدّدة بواسطة السمة infoTypes في إعدادات الإضافة.

للحصول على قائمة بأنواع 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. سلسلة بلا عُري نعم.

الردّ

الصورة التي تم إخفاء محتواها

مرجع الإعدادات

استخدِم ما يلي عند ضبط هذه الإضافة ونشرها لاستخدامها في خوادم API الوكيلة. للاطّلاع على خطوات إعداد إضافة باستخدام وحدة تحكّم Apigee، يُرجى الرجوع إلى إضافة إضافة وإعدادها.

خصائص الإضافة الشائعة

السمات التالية متاحة لكل إضافة.

الموقع الوصف تلقائي عنصر مطلوب
name الاسم الذي تُعطِه هذه الإضافة من الإضافات. لا ينطبق متوافق
packageName اسم حزمة الإضافة كما هو مُوضَّح من Apigee Edge. لا ينطبق متوافق
version رقم إصدار حزمة الإضافة التي تجري عملية إعداد الإضافة منها. لا ينطبق متوافق
configuration قيمة الإعداد المتعلقة بالإضافة التي تدرجها الاطّلاع على خصائص حزمة الإضافات هذه لا ينطبق متوافق

سمات حزمة الإضافة هذه

حدِّد قيمًا لخصائص الإعداد التالية الخاصة بهذا الامتداد.

الموقع الوصف تلقائي مطلوب
projectId معرّف مشروع Google Cloud الذي تم تفعيل Cloud Data Loss Prevention API فيه. بلا عُري نعم.
infoTypes أنواع المعلومات الخاصة بالبيانات الحسّاسة في حال عدم تحديدها، سترصد الخدمة جميع الأنواع المضمّنة. للحصول على قائمة بأنواع المعلومات المتوافقة مع خدمة "منع فقدان البيانات" من Google Cloud، يُرجى الاطّلاع على مرجع أداة رصد أنواع المعلومات. بلا عُري لا.
بيانات الاعتماد عند إدخالها في وحدة تحكّم Apigee Edge، يكون هذا هو محتوى ملف مفتاح حساب الخدمة. عند إرسالها باستخدام واجهة برمجة التطبيقات الإدارية، تكون قيمة بترميز base64 تم إنشاؤها من ملف مفتاح حساب الخدمة. بلا عُري نعم.