הסרת פרטים מזהים מנתונים ב-BigQuery בזמן השאילתה

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

במדריך הזה מוצגות דוגמאות להצפנה ולפענוח של נתונים בזמן ההעברה. למידע על שימוש ב-Sensitive Data Protection כדי להצפין נתונים במנוחה, ראו הסרת פרטים מזהים ממידע אישי רגיש באחסון.

המדריך הזה מיועד לקהלים שאחראים על אבטחת נתונים, עיבוד נתונים או ניתוח נתונים. המדריך הזה מיועד למי שמכיר את התחום של עיבוד נתונים ופרטיות נתונים, אבל לא צריך להיות מומחה. במדריך הזה אנחנו גם מניחים שאתם יודעים להריץ סקריפטים בסיסיים של Cloud Shell ו-SQL.

במדריך הזה נעשה שימוש בפונקציות מבוססות SQL, ב-BigQuery, בפונקציות מרוחקות, ב-Cloud Run וב-Sensitive Data Protection.

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

יכול להיות שלארגונים יש מדיניות או דרישות רגולטוריות לשמירה רק של נתונים שעברו דה-איдентификаציה במחסן הנתונים שלהם בענן. בנוסף, יכול להיות שהם יצטרכו לשחזר פרטי זיהוי של הנתונים שעברו הסרת פרטי הזיהוי כדי ליצור דוחות.

כדי לצמצם את הסיכון בטיפול בכמויות גדולות של מידע אישי רגיש, אפשר להשתמש בפייפליין אוטומטי להמרת נתונים כדי ליצור מערכי נתונים שעברו הסרת פרטי הזיהוי. אתם יכולים להשתמש במדריך הזה כדי להחליף את צינור עיבוד הנתונים בשאילתת SQL רק לצורך זיהוי מחדש, או לצורך הסרת פרטים מזהים וזיהוי מחדש. המדריך הזה יעזור לכם לבצע הסרת פרטים מזהים וזיהוי מחדש באמצעות שירות מרכזי שמתארח ב-Cloud Run. אתם יכולים להשתמש בשירות המרכזי הזה בכל הארגון בלי להגדיר או לתחזק אשכול Dataflow.

‫Sensitive Data Protection יכול לסווג מערכי נתונים על ידי בדיקת הנתונים כדי לאתר מידע רגיש. ל-Sensitive Data Protection יש יותר מ-200 מסווגים מובנים, שנקראים infoTypes. כדי להסיר את הפרטים המזהים של נתונים באמצעות Cloud Data Loss Prevention API, צריך צינורות נתונים ואפליקציות. המדריך הזה נועד לעזור לאנליסטים, למהנדסים או למדענים של נתונים להשיג את אותה התוצאה באמצעות פונקציות SQL.

בסוף המדריך הזה תוכלו לכתוב שאילתה דומה לזו שבהמשך. המידע האישי הרגיש יוסר מהזיהוי ויוחזר לזיהוי בתוצאת השאילתה.

SELECT
    pii_column,
    fns.dlp_freetext_encrypt(pii_column) AS dlp_encrypted,
    fns.dlp_freetext_decrypt(fns.dlp_freetext_encrypt(pii_column)) AS dlp_decrypted
FROM
    UNNEST(
    [
        'My name is John Doe. My email is john.doe@example.com']) AS pii_column

הפלט אמור להיראות כך:

Row pii_column dlp_encrypted dlp_decrypted
1 My name is John Doe. My email is john.doe@example.com My name is John Doe. My email is BQ_TRF_EMAIL(40):AQy6lGvwKR+AiiRqJpEr+nBzZUzOcjXkXamUugU= My name is John Doe. My email is john.doe@example.com

ארכיטקטורה

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

דיאגרמת ארכיטקטורה כללית של המדריך הזה

מטרות

  • פריסה של שירות Cloud Run שמספק פונקציונליות של הסרת פרטים מזהים מ-Sensitive Data Protection.
  • יצירת פונקציות מרוחקות ב-BigQuery שמשתמשות בתבניות לביטול הזיהוי של מידע אישי רגיש.
  • אפשר לאמת את הצפנת הנתונים ב-BigQuery באמצעות שאילתת SQL.

עלויות

במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:

כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.

משתמשים חדשים של Google Cloud ? יכול להיות שאתם זכאים לתקופת ניסיון בחינם.

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

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. התקינו את ה-CLI של Google Cloud.

  3. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  4. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  5. יוצרים או בוחרים Google Cloud פרויקט.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
    • יוצרים Google Cloud פרויקט:

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של פרויקט Google Cloud שיוצרים.

    • בוחרים את הפרויקט שיצרתם: Google Cloud

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  6. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  7. מפעילים את ממשקי ה-API הבאים: Artifact Registry,‏ BigQuery,‏ BigQuery Connection API,‏ Cloud Build,‏ Cloud Data Loss Prevention API,‏ Cloud Key Management Service,‏ Cloud Run,‏ Container Registry,‏ Identity and Access Management,‏ מנהל המשאבים,‏ Secret Manager ו-Service Usage.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    gcloud services enable artifactregistry.googleapis.com bigquery.googleapis.com bigqueryconnection.googleapis.com cloudbuild.googleapis.com cloudkms.googleapis.com cloudresourcemanager.googleapis.com containerregistry.googleapis.com dlp.googleapis.com iam.googleapis.com run.googleapis.com secretmanager.googleapis.com serviceusage.googleapis.com
  8. התקינו את ה-CLI של Google Cloud.

  9. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  10. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  11. יוצרים או בוחרים Google Cloud פרויקט.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
    • יוצרים Google Cloud פרויקט:

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של פרויקט Google Cloud שיוצרים.

    • בוחרים את הפרויקט שיצרתם: Google Cloud

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  12. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  13. מפעילים את ממשקי ה-API הבאים: Artifact Registry,‏ BigQuery,‏ BigQuery Connection API,‏ Cloud Build,‏ Cloud Data Loss Prevention API,‏ Cloud Key Management Service,‏ Cloud Run,‏ Container Registry,‏ Identity and Access Management,‏ מנהל המשאבים,‏ Secret Manager ו-Service Usage.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    gcloud services enable artifactregistry.googleapis.com bigquery.googleapis.com bigqueryconnection.googleapis.com cloudbuild.googleapis.com cloudkms.googleapis.com cloudresourcemanager.googleapis.com containerregistry.googleapis.com dlp.googleapis.com iam.googleapis.com run.googleapis.com secretmanager.googleapis.com serviceusage.googleapis.com

הכנת הסביבה

  1. ב-Cloud Shell, משכפלים את מאגר המקור:

    git clone https://github.com/GoogleCloudPlatform/bigquery-dlp-remote-function.git
    
  2. עוברים לספרייה של המדריך הזה:

    cd bigquery-dlp-remote-function/
    

פריסת המשאבים באמצעות סקריפט

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

  1. מגדירים את הערכים בשדות PROJECT_ID ו-REGION:

    # Project ID of the Google Cloud project
    PROJECT_ID="PROJECT_ID"
    
    # Google Cloud region to use for deployment of resources
    # Refer to https://cloud.google.com/about/locations
    REGION="REGION"
    

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

    • PROJECT_ID: מזהה הפרויקט שלכם במדריך הזה.
    • REGION: האזור שבו רוצים לאחסן ולעבד את הנתונים, לדוגמה us-west1. צריך לציין אזור, לא אזור זמן.
  2. אופציונלי: אם יש לכם תבנית בדיקה שבה אתם רוצים להשתמש, מגדירים את השדה DLP_INSPECT_TEMPLATE לשם המשאב המלא של תבנית הבדיקה הזו. תבנית הבדיקה צריכה להיות באותו אזור שהגדרתם בשדה REGION.

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

    אם מדלגים על השלב הזה, Sensitive Data Protection בודק את הנתונים באמצעות קבוצת ברירת מחדל של המערכת של גלאי infoType.

    DLP_INSPECT_TEMPLATE="DLP_INSPECT_TEMPLATE"
    

    מחליפים את DLP_INSPECT_TEMPLATE בשם המשאב המלא של תבנית הבדיקה, לדוגמה: projects/PROJECT_ID/locations/REGION/inspectTemplates/TEMPLATE_ID.

  3. אימות באמצעות Application Default Credentials:

    gcloud auth application-default login && \
    gcloud auth application-default set-quota-project "${PROJECT_ID}"
    
  4. מפעילים את סקריפט Terraform כדי ליצור את כל המשאבים:

    terraform init && \
    terraform apply \
    -var "project_id=${PROJECT_ID}" \
    -var "region=${REGION}" \
    -var "dlp_inspect_template_full_path=${DLP_INSPECT_TEMPLATE}"
    

    המערכת מציגה את כל הפעולות ש-Terraform תבצע. בודקים את הפעולות. כדי להמשיך, מזינים yes.

  5. מוודאים שאפשר להצפין ולפענח את הנתונים.

פריסת פתרון בהתאמה אישית באופן ידני

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

הגדרת משתני הסביבה

ב-Cloud Shell, מגדירים את משתני הסביבה הבאים:

PROJECT_ID="PROJECT_ID"
REGION="REGION"
CLOUD_RUN_SERVICE_NAME="CLOUD-RUN-SERVICE-NAME"
ARTIFACT_REGISTRY_NAME="ARTIFACT-DOCKER-REGISTRY-NAME"

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

  • PROJECT_ID: מזהה הפרויקט שלכם במדריך הזה.
  • REGION: האזור שבו רוצים לאחסן ולעבד את הנתונים, לדוגמה us-west1. צריך לציין אזור, לא אזור זמן.
  • CLOUD_RUN_SERVICE_NAME: שם לשירות החדש ב-Cloud Run. אפשר להזין עד 15 תווים.
  • ARTIFACT_REGISTRY_NAME: שם למאגר החדש של Artifact Registry לאחסון קובצי אימג' של קונטיינרים.

יצירת חשבון שירות בשביל שירות Cloud Run

  1. יוצרים חשבון שירות:

    RUNNER_SA_NAME="${CLOUD_RUN_SERVICE_NAME}-runner"
    RUNNER_SA_EMAIL="${RUNNER_SA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
    gcloud iam service-accounts create "${RUNNER_SA_NAME}" \
        --project="${PROJECT_ID}" \
        --description "Runner for BigQuery remote function execution" \
        --display-name "${RUNNER_SA_NAME}"
    
  2. מקצים את התפקידים הנדרשים ל-Sensitive Data Protection.

    נותנים את התפקיד DLP Reader:

    gcloud projects add-iam-policy-binding "${PROJECT_ID}" \
        --member="serviceAccount:${RUNNER_SA_EMAIL}" \
        --role='roles/dlp.reader'
    

    מקצים את התפקיד DLP User:

    gcloud projects add-iam-policy-binding "${PROJECT_ID}" \
        --member="serviceAccount:${RUNNER_SA_EMAIL}" \
        --role='roles/dlp.user'
    

פריסת שירות Cloud Run

כדי לפרוס את האפליקציה:

  1. אופציונלי: אפשר לשנות את ערכי ברירת המחדל על ידי שינוי משתני הסביבה או עדכון הקובץ src/main/resources/aes.properties.

  2. יוצרים מאגר ב-Artifact Registry כדי לאחסן את קובץ האימג' של הקונטיינר של הפונקציה:

    gcloud artifacts repositories create "${ARTIFACT_REGISTRY_NAME}" \
    --repository-format=docker \
    --location="${REGION}" \
    --description="Container images repository for BigQuery Functions" \
    --project="${PROJECT_ID}"
    
  3. קומפילציה של האפליקציה ופריסה שלה ב-Cloud Run באמצעות Cloud Build:

    gcloud builds submit \
    --project ${PROJECT_ID} \
    --substitutions=_CONTAINER_IMAGE_NAME="${REGION}-docker.pkg.dev/${PROJECT_ID}/${ARTIFACT_REGISTRY_NAME}/${CLOUD_RUN_SERVICE_NAME}:latest" \
    --machine-type=e2-highcpu-8 && \
    gcloud beta run deploy ${CLOUD_RUN_SERVICE_NAME} \
    --image="${REGION}-docker.pkg.dev/${PROJECT_ID}/${ARTIFACT_REGISTRY_NAME}/${CLOUD_RUN_SERVICE_NAME}:latest" \
    --execution-environment=gen2 \
    --platform=managed \
    --region="${REGION}" \
    --service-account="${RUNNER_SA_EMAIL}" \
    --cpu=4 \
    --memory=8Gi \
    --no-allow-unauthenticated \
    --project ${PROJECT_ID} \
    --update-env-vars=PROJECT_ID=${PROJECT_ID}
    

    הפלט אמור להיראות כך:

    ID: 403a276e-b0c6-41f3-aaed-f0ec9f9cedba
    CREATE_TIME: 2023-02-04T01:52:15+00:00
    DURATION: 1M59S
    SOURCE: gs://PROJECT_ID_cloudbuild/source/1675475534.124241-9c43787f64e04cfd9e4a1979d3324fe0.tgz
    IMAGES: gcr.io/PROJECT_ID/CLOUD_RUN_SERVICE_NAME (+1 more)
    STATUS: SUCCESS
    Deploying container to Cloud Run service [CLOUD_RUN_SERVICE_NAME] in project [PROJECT_ID] region [REGION]
    OK Deploying new service... Done.
     OK Creating Revision... Revision deployment finished. Checking container heal
     th.
     OK Routing traffic...
    Done.
    Service [CLOUD_RUN_SERVICE_NAME] revision [CLOUD_RUN_SERVICE_NAME-00001-tat] has been deployed and is serving 100 percent of traffic.
    Service URL: https://CLOUD_RUN_SERVICE_NAME-j2bpjx2xoq-uw.a.run.app
    
  4. מאחזרים את כתובת ה-URL של Cloud Run ושומרים אותה במשתני הסביבה:

    RUN_URL="$(gcloud run services describe ${CLOUD_RUN_SERVICE_NAME} --region \
        ${REGION} --project ${PROJECT_ID} --format="get(status.address.url)")"
    

יצירת תבנית ל-Sensitive Data Protection להסרת פרטי זיהוי

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

בשלב הזה משתמשים בקובץ sample_dlp_deid_config.json, שמכיל תבנית לדוגמה לביטול הזיהוי.

ב-Cloud Shell, יוצרים את התבנית:

DEID_TEMPLATE=$(curl -X POST \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: ${PROJECT_ID}" \
--data-binary "@sample_dlp_deid_config.json" \
"https://dlp.googleapis.com/v2/projects/${PROJECT_ID}/locations/${REGION}/deidentifyTemplates")

DEID_TEMPLATE_NAME="$(echo ${DEID_TEMPLATE} | jq -r '.name')"

‫Google ממליצה להשתמש במפתח עטוף כשמבצעים הצפנה של נתונים רגישים ב-Sensitive Data Protection בעומסי עבודה רגישים בפועל. לצורך הדגמה, במדריך הזה נעשה שימוש במפתח לא מוצפן. למידע נוסף על יצירת מפתח מוצפן ושימוש בו בבקשות להסרת פרטים מזהים ולזיהוי מחדש, אפשר לעיין במאמר בנושא הסרת פרטים מזהים וזיהוי מחדש של נתונים רגישים.

יצירת חיבור BigQuery ל-Cloud Run

  1. ב-Cloud Shell, יוצרים חיבור ל-BigQuery כדי לגשת ל-Cloud Run:

    bq mk --connection \
    --display_name='External transform function connection' \
    --connection_type=CLOUD_RESOURCE \
    --project_id="${PROJECT_ID}" \
    --location="${REGION}" \
    ext-${CLOUD_RUN_SERVICE_NAME}
    
  2. מאתרים ומגדירים את חשבון השירות של BigQuery שמשמש לחיבור:

    CONNECTION_SA="$(bq --project_id ${PROJECT_ID} --format json show \
        --connection ${PROJECT_ID}.${REGION}.ext-${CLOUD_RUN_SERVICE_NAME} \
        | jq -r '.cloudResource.serviceAccountId')"
    
  3. מקצים לחשבון השירות את התפקיד Cloud Run Invoker:

    gcloud projects add-iam-policy-binding ${PROJECT_ID} \
        --member="serviceAccount:${CONNECTION_SA}" \
        --role='roles/run.invoker'
    

יצירת מערך נתונים ב-BigQuery לפונקציות מרוחקות

  1. מגדירים את מערך הנתונים ב-BigQuery לפונקציות המרוחקות:

    BQ_FUNCTION_DATASET="fns"
    
  2. יוצרים את מערך הנתונים אם הוא עדיין לא קיים:

       bq mk --dataset \
           --project_id ${PROJECT_ID} \
           --location ${REGION} \
           ${BQ_FUNCTION_DATASET}
    

יצירת פונקציות מרוחקות של Sensitive Data Protection

  1. אופציונלי: אם יש לכם תבנית בדיקה שבה אתם רוצים להשתמש, צריך להגדיר את המשתנה DLP_INSPECT_TEMPLATE לשם המשאב המלא של תבנית הבדיקה הזו. תבנית הבדיקה צריכה להיות באותו אזור שהגדרתם במשתנה הסביבה REGION.

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

    אם מדלגים על השלב הזה, Sensitive Data Protection בודק את הנתונים באמצעות קבוצת ברירת מחדל של המערכת של גלאי infoType.

    DLP_INSPECT_TEMPLATE="DLP_INSPECT_TEMPLATE"
    

    מחליפים את DLP_INSPECT_TEMPLATE בשם המשאב המלא של תבנית הבדיקה, לדוגמה: projects/PROJECT_ID/locations/REGION/inspectTemplates/TEMPLATE_ID.

  2. יוצרים את פונקציית הסרת פרטי הזיהוי של Sensitive Data Protection:

    bq query --project_id ${PROJECT_ID} \
    --use_legacy_sql=false \
    "CREATE OR REPLACE FUNCTION ${BQ_FUNCTION_DATASET}.dlp_freetext_encrypt(v STRING)
    RETURNS STRING
    REMOTE WITH CONNECTION \`${PROJECT_ID}.${REGION}.ext-${CLOUD_RUN_SERVICE_NAME}\`
    OPTIONS (endpoint = '${RUN_URL}', user_defined_context = [('mode', 'deidentify'),('algo','dlp'),('dlp-deid-template','${DEID_TEMPLATE_NAME}'),('dlp-inspect-template', '${DLP_INSPECT_TEMPLATE}')]);"
    
  3. יוצרים את פונקציית הזיהוי מחדש של Sensitive Data Protection:

    bq query --project_id ${PROJECT_ID} \
    --use_legacy_sql=false \
    "CREATE OR REPLACE FUNCTION ${BQ_FUNCTION_DATASET}.dlp_freetext_decrypt(v STRING)
    RETURNS STRING
    REMOTE WITH CONNECTION \`${PROJECT_ID}.${REGION}.ext-${CLOUD_RUN_SERVICE_NAME}\`
    OPTIONS (endpoint = '${RUN_URL}', user_defined_context = [('mode', 'reidentify'),('algo','dlp'),('dlp-deid-template','${DEID_TEMPLATE_NAME}'),('dlp-inspect-template', '${DLP_INSPECT_TEMPLATE}')]);"
    

אימות של הסרת הפרטים המזהים וזיהוי מחדש

כדי לוודא שהפתרון מבטל את הזיהוי של הנתונים ומזהה אותם מחדש, צריך לבצע את הפעולות הבאות:

המסוף

  1. במסוף Google Cloud , עוברים אל BigQuery.

    כניסה ל-BigQuery

    מערכת BigQuery תיפתח בפרויקט שאליו ניגשתם לאחרונה.

  2. כדי לפתוח את עורך השאילתות, לוחצים על Compose a new query.

  3. מזינים את השאילתה הבאה:

    SELECT
        pii_column,
        fns.dlp_freetext_encrypt(pii_column) AS dlp_encrypted,
        fns.dlp_freetext_decrypt(fns.dlp_freetext_encrypt(pii_column)) AS dlp_decrypted
    FROM
        UNNEST(
        [
            'My name is John Doe. My email is john.doe@example.com',
            'Some non PII data',
            '650-253-0000',
            'some script with simple number 1234']) AS pii_column
    
  4. לוחצים על Run.

BQ

  1. מגדירים את משתנה הסביבה של מערך הנתונים:

    BQ_FUNCTION_DATASET="fns"
    
  2. מריצים את השאילתה:

    bq query --project_id ${PROJECT_ID} \
    --use_legacy_sql=false \
    "
    SELECT
      pii_column,
      ${BQ_FUNCTION_DATASET}.dlp_freetext_encrypt(pii_column) AS dlp_encrypted,
    ${BQ_FUNCTION_DATASET}.dlp_freetext_decrypt(${BQ_FUNCTION_DATASET}.dlp_freetext_encrypt(pii_column)) AS dlp_decrypted
    FROM
      UNNEST(
        [
          'My name is John Doe. My email is john.doe@example.com',
          'Some non PII data',
          '650-253-0000',
          'some script with simple number 1234']) AS pii_column"
    

הפלט אמור להיראות כך:

Row pii_column dlp_encrypted dlp_decrypted
1 My name is John Doe. My email is john.doe@example.com My name is John Doe. My email is BQ_TRF_EMAIL(40):AQy6lGvwKR+AiiRqJpEr+nBzZUzOcjXkXamUugU= My name is John Doe. My email is john.doe@example.com
2 Some non PII data Some non PII data Some non PII data
3 650-253-0000 BQ_TRF_PH(40):AeKpGU5KBXaTyecCun7dv1hHht5w5Q2PTpvkRC4= 650-253-0000
4 some script with simple number 1234 some script with simple number 1234 some script with simple number 1234

לתשומת ליבכם

כשמתאימים את המדריך הזה לצרכים שלכם, כדאי לקחת בחשבון את הנקודות הבאות:

  • הסרת הפרטים המזהים והוספת הפרטים המזהים מתבצעות באמצעות שירות Cloud Run. הקצאת משאבים של CPU וזיכרון ב-Cloud Run בהתאם לדרישות המחשוב. לפרטים נוספים, ראו מגבלות על CPU ומגבלות על זיכרון ב-Cloud Run.
  • כשמשתמשים ב-Sensitive Data Protection, כדאי לעיין במגבלות השימוש ובהמלצות לשליטה בעלויות.
  • כדי לשלוט בעלויות ובניצול הכולל של מכסת ההגנה על מידע רגיש, מומלץ להגביל את הפריטים שמועברים דרך הפונקציה המרוחקת של ההגנה על מידע רגיש ל-10,000 או פחות. הפתרון יכול לאגד אוטומטית את הבקשות כדי לטפל בצורה חלקה במגבלות הבאות של בקשות Sensitive Data Protection:

    • מספר הערכים המקסימלי בטבלה: 50,000
    • מגבלת גודל הבקשה שמוגדרת כברירת מחדל: 0.5MB

    את התוצאות הסופיות והמסוננות של השאילתה צריך להעביר לפונקציה Sensitive Data Protection במקום למקור.

    בפתרון הזה, כל ערך בעמודה pii_column הוא פריט – לדוגמה, My name is John Doe. My email is john.doe@example.com הוא פריט אחד.

  • מוודאים שמערך הנתונים ב-BigQuery, שירות Cloud Run ותבניות Sensitive Data Protection נמצאים באותו אזור ב-Cloud.

הסרת המשאבים

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

    כדי למחוק Google Cloud פרויקט:

    gcloud projects delete PROJECT_ID

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