افزونه «جلوگیری از ازدست رفتن داده‌ها» در Google Cloud

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

نسخه: 1.5.2

از این افزونه برای مبهم کردن داده‌های حساس در محتوا و تصاویر استفاده کنید. برای مثال، ممکن است شماره کارت اعتباری، نام، و شماره تأمین اجتماعی را محو کنید.

پیش‌نیازها

این محتوا مرجعی برای پیکربندی و استفاده از این افزونه ارائه می‌دهد. قبل‌از استفاده از افزونه از یک پراکسی API بااستفاده از خط‌مشی ExtensionCallout، باید:

  1. میانای برنامه‌سازی کاربردی Google Cloud DLP را برای پروژه‌تان فعال کنید.

  2. برای سطح دسترسی موردنیاز افزونه، اجازه دهید.

  3. از «کنسول GCP» برای تولید کلید حساب سرویس استفاده کنید.

  4. از محتوای فایل JSON کلید حاصل هنگام افزودن و پیکربندی افزونه بااستفاده از مرجع پیکربندی استفاده کنید.

درباره Cloud Data Loss Prevention (DLP)

Cloud Data Loss Prevention (DLP) یک API برای بازرسی نوشتار، تصاویر، و داده‌های دیگر به‌منظور شناسایی و مدیریت داده‌های حساس است.

برای اطلاعات بیشتر، نمای کلی 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>

خط‌مشی «افزونه‌تماس‌بها» زیر مقدار متغیر 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>

خط‌مشی «افزونه‌تماس‌بها» زیر مقدار متغیر 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 پوشش دهید. این کنش بخش‌هایی از text را که با دارایی infoTypes در پیکربندی افزونه مشخص شده است می‌پوشاند.

پوشاندن داده‌های حساس نویسه‌ها را با نمادی مانند ستاره (*) یا مربع (#) جایگزین می‌کند. انواع داده‌های حساس را می‌توان در پیکربندی افزونه پیکربندی کرد.

نحو

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

مثال

در مثال زیر، ورودی برای پوشاندن نشانی ایمیلی است که در متغیر جریان input.email.address ذخیره شده است. برای پشتیبانی از این مثال خاص، این افزونه باید پیکربندی شده باشد تا از infoType «نشانی ایمیل» پشتیبانی کند. برای فهرست infoType، به مرجع «آشکارساز InfoType» مراجعه کنید.

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

برونداد این مثال به‌صورت زیر خواهد بود:

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

پارامترهای درخواست

پارامتر شرح نوع پیش‌فرض الزامی
نوشتار نوشتار برای ناشناس‌سازی. رشته هیچ‌کدام. بله.
ماسک نویسه‌ای که برای پوشاندن داده‌های حساس استفاده می‌شود. رشته هیچ‌کدام. بله.

پاسخ

نوشتار ورودی با مقادیر infoTypes مشخص‌شده که با نویسه مشخص‌شده جایگزین شده است. برای مثال،

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

deidentifyWithTemplate

بااستفاده از قالبی که پیکربندی می‌کند کدام نوشتار ناشناس‌سازی شود و چگونه مدیریت شود، داده‌های حساس را در محتوای نوشتاری ناشناس‌سازی کنید.

الگوها برای جدا کردن پیکربندی (مثلاً آنچه را بازرسی می‌کنید و نحوه ناشناس‌سازی آن) از پیاده‌سازی فراخوانی‌های API مفید هستند. الگوها روشی برای استفاده مجدد از پیکربندی و فعال کردن یکپارچگی در بین کاربران و مجموعه‌های داده ارائه می‌دهند.

در قالبتان، infoTypes را که نشان‌دهنده محتوای ناشناس‌سازی است مشخص می‌کنید. برای فهرست infoTypes، به مرجع تشخیص‌دهنده 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. برای فهرست infoTypes، به مرجع تشخیص‌دهنده 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 «نشانی ایمیل» پشتیبانی کند. برای فهرست infoType، به مرجع «آشکارساز InfoType» مراجعه کنید.

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

برونداد این مثال به‌صورت زیر خواهد بود:

{"text":"EMAIL_ADDRESS"}

پارامترهای درخواست

پارامتر شرح نوع پیش‌فرض الزامی
نوشتار نوشتار برای ناشناس‌سازی. رشته هیچ‌کدام. بله.

پاسخ

نوشتار ورودی با مقادیر infoTypes مشخص‌شده که با نام‌های infoType جایگزین شده است. برای مثال،

{"text":"EMAIL_ADDRESS"}

redactImage

نوشتاری را که در یکی از دسته‌های infoType قرار می‌گیرد محو کنید. محتوای ویرایش‌شده شناسایی می‌شود و با مستطیلی مات پوشانده می‌شود. این کنش بخش‌هایی از image_data را که با دارایی infoTypes در پیکربندی افزونه مشخص شده است می‌پوشاند.

برای فهرست infoTypes، به مرجع تشخیص‌دهنده InfoType مراجعه کنید.

پارامترهای درخواست

<Action>redactImage</Action>
<Input><![CDATA[{
  "image_data" : "base64-encoded-image-to-analyze",
  "image_type" : "type-of-image"
}]]></Input>
پارامتر شرح نوع پیش‌فرض الزامی
image_data داده‌های تصویر کدبندی‌شده در پایه ۶۴. رشته هیچ‌کدام. بله.
image_type ثابت نوع تصویر. مقادیر دردسترس عبارت‌اند از IMAGE_JPEG،‏ IMAGE_BMP،‏ IMAGE_PNG،‏ IMAGE_SVG. رشته هیچ‌کدام. بله.

پاسخ

تصویر با نوشتار محو شده.

مرجع پیکربندی

هنگام پیکربندی و استقرار این افزونه برای استفاده در پراکسی‌های API، از موارد زیر استفاده کنید. برای مراحل پیکربندی افزونه بااستفاده از کنسول Apigee، به افزودن و پیکربندی افزونه مراجعه کنید.

دارایی‌های افزونه مشترک

ویژگی های زیر برای هر افزونه وجود دارد.

ویژگی شرح پیش فرض ضروری
name نامی که به این پیکربندی افزونه می‌دهید. هیچ یک آره
packageName نام بسته افزودنی همانطور که توسط Apigee Edge داده شده است. هیچ یک آره
version شماره نسخه بسته برنامه افزودنی که از آن یک برنامه افزودنی را پیکربندی می کنید. هیچ یک آره
configuration مقدار پیکربندی مخصوص افزونه ای که اضافه می کنید. به ویژگی های این بسته برنامه افزودنی مراجعه کنید هیچ یک آره

دارایی‌های این بسته افزونه

مقادیر مشخصه‌های پیکربندی زیر را که مختص این افزونه است مشخص کنید.

دارایی شرح پیش‌فرض الزامی
projectId شناسه پروژه GCP که Cloud Data Loss Prevention API برای آن فعال است. هیچ‌کدام. بله.
infoTypes انواع اطلاعات داده‌های حساس. اگر حذف شود، سرویس همه انواع داخلی را شناسایی می‌کند. برای فهرست انواع اطلاعات پشتیبانی‌شده توسط سرویس «جلوگیری از لو رفتن داده‌های Google Cloud»، به مرجع تشخیص‌دهنده InfoType مراجعه کنید. هیچ‌کدام. شماره.
اطلاعات اعتباری وقتی در کنسول Apigee Edge وارد می‌شود، این محتوای فایل کلید حساب خدمات شما است. وقتی ازطریق «میانای برنامه‌سازی کاربردی مدیریت» ارسال می‌شود، مقدار کدبندی‌شده با base64 است که از فایل کلید حساب سرویس تولید می‌شود. هیچ‌کدام. بله.