תוסף למניעת אובדן נתונים ב-Google Cloud

אתם קוראים את מאמרי העזרה של Apigee Edge.
אפשר לעבור אל מסמכי התיעוד של Apigee X.
מידע

גרסה: 1.5.1

אפשר להשתמש בתוסף הזה כדי להסתיר מידע אישי רגיש מתוכן ומתמונות. לדוגמה, אפשר לצנזר מספרי כרטיסי אשראי, שמות ומספרי תעודות זהות.

דרישות מוקדמות

התוכן הזה מספק הפניה להגדרת התוסף הזה ולשימוש בו. לפני שמשתמשים בתוסף משרת proxy ל-API באמצעות מדיניות ExtensionCallout, צריך:

  1. מפעילים את Google Cloud DLP API בפרויקט.

  2. נותנים הרשאה לרמת הגישה הרצויה לתוסף.

  3. שימוש במסוף GCP כדי ליצור מפתח לחשבון השירות.

  4. משתמשים בתוכן של קובץ ה-JSON של המפתח שנוצר כשמוסיפים ומגדירים את התוסף באמצעות הפניה להגדרות.

מידע על מניעת אובדן נתונים בענן (DLP)

מניעת אובדן נתונים בענן (DLP) הוא API לבדיקת טקסט, תמונות ונתונים אחרים כדי לזהות ולנהל מידע אישי רגיש.

מידע נוסף מופיע בסקירה הכללית על DLP. למידע על ה-API שהתוסף הזה חושף, אפשר לעיין במאמר מניעת אובדן נתונים בענן (DLP) API.

דוגמאות

בדוגמאות הבאות אפשר לראות איך מגדירים תמיכה בפעולות של התוסף Cloud DLP באמצעות מדיניות ExtensionCallout.

כדי להקל על ניסיון קוד הדוגמה הזה, בדוגמאות האלה נעשה שימוש במדיניות 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). התוסף הזה הוגדר להסתרת ערכים על סמך infoTypesURL ו-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 הבאה מאחזרת את הפלט של התוסף כדי להציג אותו בכלי 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 כדי להסתיר את סוגי הטקסט שצוינו באמצעות השם של סוג המידע עצמו. לדוגמה, כתובת האימייל 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). התוסף הזה הוגדר להסתרת ערכים על סמך infoTypesURL ו-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 הבאה מאחזרת את הפלט של התוסף כדי להציג אותו בכלי 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. הפעולה הזו מסתירה את החלקים של text שצוינו במאפיין infoTypes בהגדרות התוסף.

הסתרת מידע אישי רגיש מחליפה תווים בסמל, כמו כוכבית (*) או סולמית (#). אפשר להגדיר את סוגי המידע האישי הרגיש בהגדרות התוסף.

תחביר

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

דוגמה

בדוגמה הבאה, הקלט להסתרת המידע הוא כתובת אימייל שמאוחסנת במשתנה של זרימת input.email.address. כדי לתמוך בדוגמה הספציפית הזו, התוסף הזה צריך להיות מוגדר לתמיכה בסוג המידע EMAIL_ADDRESS. רשימה של סוגי מידע זמינה במאמר חומר עזר בנושא גילוי סוגי מידע.

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

הפלט של הדוגמה הזו יהיה:

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

פרמטרים של בקשה

פרמטר תיאור סוג ברירת מחדל חובה
text הטקסט שצריך להסיר ממנו את הפרטים המזהים. מחרוזת ללא. כן.
מסכה התו שמשמש להסתרת מידע אישי רגיש. מחרוזת ללא. כן.

תשובה

טקסט הקלט עם ערכים של סוגי המידע שצוינו, שהוחלפו בתו שצוין. לדוגמה,

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

deidentifyWithTemplate

הסרת פרטים מזהים ממידע אישי רגיש בתוכן טקסט באמצעות תבנית שמגדירה איזה טקסט להסיר ואיך לטפל בו.

תבניות שימושיות להפרדת ההגדרה, למשל מה בודקים ואיך מבטלים את הזיהוי, מההטמעה של קריאות ה-API. תבניות מאפשרות שימוש חוזר בהגדרות ושמירה על עקביות בין משתמשים ומערכי נתונים.

בתבנית, מציינים 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>

הפלט של הדוגמה הזו יהיה התוכן של הבקשה אחרי הסרת הפרטים המזהים.

פרמטרים של בקשה

פרמטר תיאור סוג ברירת מחדל חובה
text הטקסט שצריך להסיר ממנו את הפרטים המזהים. זהו הנתון שעליו מתבצע תהליך הסרת פרטי הזיהוי. אובייקט ללא. כן.
templateName התבנית שבה רוצים להשתמש. הערך הזה יהיה נתיב לתבנית בפורמט הבא: projects or organizations/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID. כשיוצרים את התבנית באמצעות Google API, משתמשים בערך המאפיין name של התגובה כ-templateName. מחרוזת ללא. כן.

תשובה

טקסט הקלט עם ערכים של סוגי המידע שצוינו, שהוחלפו בשמות של סוגי המידע.

deidentifyWithType

הסרת פרטים מזהים ממידע אישי רגיש בתוכן טקסטואלי, והחלפת כל ערך תואם בשם של סוג המידע. במאמר חומר עזר בנושא גילוי Infotype אפשר למצוא רשימה של סוגי מידע. הפעולה הזו מסתירה את החלקים של text שצוינו במאפיין infoTypes בהגדרות התוסף.

בדוגמה הבאה, השירות מזהה את מספר הטלפון ואז מחליף אותו בשם של סוג המידע עצמו.

  • טקסט קלט:

    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. רשימה של סוגי מידע זמינה במאמר חומר עזר בנושא גילוי סוגי מידע.

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

הפלט של הדוגמה הזו יהיה:

{"text":"EMAIL_ADDRESS"}

פרמטרים של בקשה

פרמטר תיאור סוג ברירת מחדל חובה
text הטקסט שצריך להסיר ממנו את הפרטים המזהים. מחרוזת ללא. כן.

תשובה

טקסט הקלט עם ערכים של סוגי המידע שצוינו, שהוחלפו בשמות של סוגי המידע. לדוגמה,

{"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>
פרמטר תיאור סוג ברירת מחדל חובה
image_data נתוני התמונה בקידוד base64. מחרוזת ללא. כן.
image_type קבוע של סוג התמונה. הערכים האפשריים הם IMAGE_JPEG, ‏ IMAGE_BMP, ‏ IMAGE_PNG, ‏ IMAGE_SVG. מחרוזת ללא. כן.

תשובה

תמונה עם טקסט מצונזר.

הסבר על ההגדרות

כשמגדירים ופורסים את התוסף הזה לשימוש בשרתי proxy ל-API, צריך להשתמש בהגדרות הבאות. הוראות להגדרת תוסף באמצעות מסוף Apigee מפורטות במאמר הוספה והגדרה של תוסף.

מאפיינים נפוצים של תוספים

המאפיינים הבאים קיימים בכל תוסף.

נכס תיאור ברירת המחדל נדרש
name השם שבחרת לתצורה הזו של התוסף. ללא כן
packageName השם של חבילת התוסף כפי שהוא סופק על ידי Apigee Edge. ללא כן
version מספר הגרסה של חבילת התוסף שממנה מגדירים את התוסף. ללא כן
configuration ערך הגדרה ספציפי לתוסף שרוצים להוסיף. מאפיינים לחבילת תוספים זו ללא כן

מאפיינים של חבילת התוסף הזו

מציינים ערכים למאפייני ההגדרה הבאים שספציפיים לתוסף הזה.

נכס תיאור ברירת מחדל חובה
projectId מזהה הפרויקט ב-GCP שבו מופעל Cloud Data Loss Prevention API. ללא. כן.
infoTypes סוגי המידע של המידע האישי הרגיש. אם לא מציינים את הפרמטר הזה, השירות יזהה את כל הסוגים המובנים. רשימה של סוגי המידע (infoType) שנתמכים בשירות Google Cloud DLP מופיעה במאמר חומר עזר בנושא גילוי infoType. ללא. לא.
פרטי כניסה כשמזינים את התוכן הזה במסוף Apigee Edge, זה התוכן של קובץ המפתח של חשבון השירות. כששולחים את הערך הזה דרך Management API, הוא מקודד ב-Base64 ונוצר מקובץ המפתח של חשבון השירות. ללא. כן.