תבנית של מיסוך נתונים או טוקניזציה מ-Cloud Storage ל-BigQuery (באמצעות Cloud DLP)

התבנית Data Masking/Tokenization from Cloud Storage to BigQuery (הסוואת נתונים/טוקניזציה מ-Cloud Storage ל-BigQuery) משתמשת ב-Sensitive Data Protection ויוצרת צינור להזנת נתונים בזמן אמת שמבצע את השלבים הבאים:

  1. קריאת קובצי CSV מקטגוריה של Cloud Storage.
  2. מתבצעת קריאה ל-Cloud Data Loss Prevention API (חלק מ-Sensitive Data Protection) לצורך הסרת פרטים מזהים.
  3. כותב את הנתונים שעברו הסרת פרטי זיהוי לטבלה ב-BigQuery שצוינה.

התבנית תומכת בשימוש בתבנית בדיקה של Sensitive Data Protection ובתבנית להסרת פרטי הזיהוי של Sensitive Data Protection. כתוצאה מכך, התבנית תומכת בשתי המשימות הבאות:

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

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

הדרישות לגבי צינורות עיבוד נתונים

  • נתוני הקלט שרוצים ליצור להם טוקניזציה צריכים להתקיים.
  • תבניות Sensitive Data Protection צריכות להתקיים (לדוגמה, DeidentifyTemplate ו-InspectTemplate). מידע נוסף זמין במאמר בנושא תבניות של Sensitive Data Protection.
  • מערך הנתונים ב-BigQuery חייב להתקיים.

פרמטרים של תבניות

פרמטרים נדרשים

  • inputFilePattern: קובצי ה-CSV שמתוכם ייקראו רשומות של נתוני קלט. אפשר להשתמש גם בתווים כלליים לחיפוש. לדוגמה, gs://mybucket/my_csv_filename.csv or gs://mybucket/file-*.csv.
  • deidentifyTemplateName: תבנית הסרת פרטי הזיהוי של Sensitive Data Protection שבה רוצים להשתמש לבקשות API, שצוינה באמצעות התבנית projects/<PROJECT_ID>/deidentifyTemplates/<TEMPLATE_ID>. לדוגמה, projects/your-project-id/locations/global/deidentifyTemplates/generated_template_id.
  • datasetName: מערך הנתונים ב-BigQuery שבו יש להשתמש כששולחים תוצאות שעברו טוקניזציה. מערך הנתונים חייב להתקיים לפני ההרצה.
  • dlpProjectId: המזהה של פרויקט בענן של Google שבבעלותו משאב DLP API. הפרויקט הזה יכול להיות אותו פרויקט שבבעלותו התבניות של Sensitive Data Protection, או פרויקט נפרד.

פרמטרים אופציונליים

  • inspectTemplateName: תבנית הבדיקה של Sensitive Data Protection שבה רוצים להשתמש לבקשות API, שמוגדרת באמצעות התבנית projects/<PROJECT_ID>/identifyTemplates/<TEMPLATE_ID>. לדוגמה, projects/your-project-id/locations/global/inspectTemplates/generated_template_id.
  • batchSize: גודל החלוקה או האצווה שיש להשתמש בהם לשליחת נתונים לבדיקה ולביטול הטוקניזציה. בקובץ CSV, הערך של batchSize הוא מספר השורות בחבילה. קובעים את גודל האצווה על סמך גודל הרשומות וגודל הקובץ. ל-DLP API יש מגבלת גודל של מטען ייעודי (payload) של ‎524 KB לכל קריאה ל-API.

הפעלת התבנית

המסוף

  1. עוברים לדף Dataflow Create job from template (יצירת משימה מתבנית).
  2. כניסה לדף Create job from template
  3. בשדה שם המשימה, מזינים שם ייחודי למשימה.
  4. אופציונלי: בשדה Regional endpoint (נקודת קצה אזורית), בוחרים ערך מהתפריט הנפתח. אזור ברירת המחדל הוא us-central1.

    רשימת האזורים שבהם אפשר להריץ משימת Dataflow מופיעה במאמר מיקומי Dataflow.

  5. בתפריט הנפתח Dataflow template (תבנית של העברת נתונים), בוחרים באפשרות the Data Masking/Tokenization from Cloud Storage to BigQuery (using Cloud DLP) template.
  6. בשדות הפרמטרים שמופיעים, מזינים את ערכי הפרמטרים.
  7. לוחצים על הפעלת העבודה.

gcloud

במעטפת או בטרמינל, מריצים את התבנית:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/Stream_DLP_GCS_Text_to_BigQuery \
    --region REGION_NAME \
    --staging-location STAGING_LOCATION \
    --parameters \
inputFilePattern=INPUT_DATA,\
datasetName=DATASET_NAME,\
batchSize=BATCH_SIZE_VALUE,\
dlpProjectId=DLP_API_PROJECT_ID,\
deidentifyTemplateName=projects/TEMPLATE_PROJECT_ID/deidentifyTemplates/DEIDENTIFY_TEMPLATE,\
inspectTemplateName=projects/TEMPLATE_PROJECT_ID/identifyTemplates/INSPECT_TEMPLATE_NUMBER

מחליפים את מה שכתוב בשדות הבאים:

  • DLP_API_PROJECT_ID: מזהה הפרויקט של DLP API
  • JOB_NAME: שם ייחודי של המשימה לפי בחירתכם
  • REGION_NAME: האזור שבו רוצים לפרוס את עבודת Dataflow, לדוגמה: us-central1
  • VERSION: הגרסה של התבנית שבה רוצים להשתמש

    אפשר להשתמש בערכים הבאים:

    • latest כדי להשתמש בגרסה העדכנית של התבנית, שזמינה בתיקיית ההורה ללא תאריך בדלי – gs://dataflow-templates-REGION_NAME/latest/
    • שם הגרסה, כמו 2023-09-12-00_RC00, כדי להשתמש בגרסה ספציפית של התבנית, שאפשר למצוא אותה בתיקיית האב המתאימה עם התאריך בדלי – gs://dataflow-templates-REGION_NAME/
  • STAGING_LOCATION: המיקום של קבצים מקומיים להעברה (לדוגמה, gs://your-bucket/staging)
  • INPUT_DATA: הנתיב לקובץ הקלט
  • DEIDENTIFY_TEMPLATE: מספר התבנית לביטול הזיהוי של Sensitive Data Protection
  • DATASET_NAME: השם של מערך הנתונים ב-BigQuery
  • INSPECT_TEMPLATE_NUMBER: מספר תבנית הבדיקה של Sensitive Data Protection
  • BATCH_SIZE_VALUE: גודל האצווה (מספר השורות לכל API עבור קובצי CSV)

REST

כדי להריץ את התבנית באמצעות API בארכיטקטורת REST, שולחים בקשת HTTP POST. מידע נוסף על ה-API ועל היקפי ההרשאות שלו זמין במאמר projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates-LOCATION/VERSION/Stream_DLP_GCS_Text_to_BigQuery
{
   "jobName": "JOB_NAME",
   "environment": {
       "ipConfiguration": "WORKER_IP_UNSPECIFIED",
       "additionalExperiments": []
   },
   "parameters": {
      "inputFilePattern":INPUT_DATA,
      "datasetName": "DATASET_NAME",
      "batchSize": "BATCH_SIZE_VALUE",
      "dlpProjectId": "DLP_API_PROJECT_ID",
      "deidentifyTemplateName": "projects/TEMPLATE_PROJECT_ID/deidentifyTemplates/DEIDENTIFY_TEMPLATE",
      "inspectTemplateName": "projects/TEMPLATE_PROJECT_ID/identifyTemplates/INSPECT_TEMPLATE_NUMBER"
   }
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט שבו רוצים להריץ את משימת Dataflow Google Cloud
  • DLP_API_PROJECT_ID: מזהה הפרויקט של DLP API
  • JOB_NAME: שם ייחודי של המשימה לפי בחירתכם
  • LOCATION: האזור שבו רוצים לפרוס את עבודת Dataflow, לדוגמה: us-central1
  • VERSION: הגרסה של התבנית שבה רוצים להשתמש

    אפשר להשתמש בערכים הבאים:

    • latest כדי להשתמש בגרסה העדכנית של התבנית, שזמינה בתיקיית ההורה ללא תאריך בדלי – gs://dataflow-templates-REGION_NAME/latest/
    • שם הגרסה, כמו 2023-09-12-00_RC00, כדי להשתמש בגרסה ספציפית של התבנית, שאפשר למצוא אותה בתיקיית האב המתאימה עם התאריך בדלי – gs://dataflow-templates-REGION_NAME/
  • STAGING_LOCATION: המיקום של קבצים מקומיים להעברה (לדוגמה, gs://your-bucket/staging)
  • INPUT_DATA: הנתיב לקובץ הקלט
  • DEIDENTIFY_TEMPLATE: מספר התבנית לביטול הזיהוי של Sensitive Data Protection
  • DATASET_NAME: השם של מערך הנתונים ב-BigQuery
  • INSPECT_TEMPLATE_NUMBER: מספר תבנית הבדיקה של Sensitive Data Protection
  • BATCH_SIZE_VALUE: גודל האצווה (מספר השורות לכל API עבור קובצי CSV)

המאמרים הבאים