ייצוא יומנים גולמיים לקטגוריה של Google Cloud Storage בניהול עצמי

נתמך ב:

‫Data Export API מאפשר לייצא כמויות גדולות של נתוני אבטחה מ-Google Security Operations לקטגוריה של Google Cloud Storage שבשליטתכם. היכולת הזו תומכת בשמירת נתונים קריטיים לטווח ארוך, בניתוח היסטורי של זיהוי פלילי ובדרישות תאימות מחמירות (כמו SOX ו-GDPR).

למידע מפורט על מאמרי העזרה של ה-API, קראו את המאמר Data Export API (משופר).

‫Data Export API מספק פתרון אמין וניתן להתאמה לייצוא נתונים בנקודת זמן מסוימת, ומטפל בבקשות של עד 100TB.

כצינור עיבוד נתונים מנוהל, הוא מציע תכונות חיוניות ברמה שמתאימה לארגונים, כולל:

  • ניסיונות חוזרים אוטומטיים במקרה של שגיאות זמניות
  • מעקב מקיף אחרי סטטוס המשימות
  • נתיב ביקורת מלא לכל משימת ייצוא

ה-API מחלק באופן לוגי את הנתונים המיוצאים לפי תאריך ושעה בתוך הקטגוריה של Google Cloud Storage.

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

יתרונות מרכזיים

‫Data Export API מספק פתרון גמיש וניתן לביקורת לניהול מחזור החיים של נתוני האבטחה, עם היתרונות העיקריים הבאים:

  • אמינות: השירות מטפל בהעברות נתונים בקנה מידה גדול. המערכת משתמשת באסטרטגיית השהיה מעריכית לפני ניסיון חוזר (exponential backoff) כדי לנסות שוב באופן אוטומטי משימות ייצוא שנתקלות בבעיות זמניות (לדוגמה, בעיות זמניות ברשת), מה שהופך אותה לעמידה. אם משימת הייצוא נכשלת בגלל שגיאה זמנית, המערכת מנסה שוב באופן אוטומטי כמה פעמים. אם המשימה נכשלת באופן סופי אחרי כל הניסיונות החוזרים, המערכת מעדכנת את הסטטוס שלה ל-FINISHED_FAILURE, והתגובה מה-API לאותה משימה מכילה הודעת שגיאה מפורטת שמסבירה את הסיבה.
  • יכולת ביקורת מקיפה: כדי לעמוד בתקני תאימות ואבטחה מחמירים, המערכת מתעדת כל פעולה שקשורה למשימת ייצוא בנתיב ביקורת שלא ניתן לשינוי. הנתיב הזה כולל את היצירה, ההתחלה, ההצלחה או הכישלון של כל משימה, וגם את המשתמש שהתחיל את הפעולה, חותמת זמן והפרמטרים של המשימה.

  • אופטימיזציה לביצועים ולגודל: ה-API משתמש במערכת ניהול משימות חזקה. המערכת הזו כוללת תור ותעדוף כדי לספק יציבות לפלטפורמה ולמנוע מצב שבו דייר אחד משתלט על המשאבים.

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

  • אבטחה: ה-API תוכנן כך שיהיה תואם באופן מלא למפתחות הצפנה בניהול הלקוח (CMEK) (אבטחה במודל של אפס אמון) ולבקרת גישה מבוססת-תפקידים (RBAC) של נתונים (גישה עם הרשאות מינימליות). כדי למנוע חילוץ נתונים לא מורשה, משימות הייצוא מקבלות בירושה את היקף הרשאות הגישה לנתונים של המשתמש שמפעיל את הבקשה. צינור עיבוד הנתונים של הייצוא משולב באופן מלא גם עם Cloud Key Management Service, והנתונים נשארים מוצפנים במצב מנוחה בקטגוריה של Google Cloud Storage באמצעות המפתחות שלכם.

מושגים ומונחים מרכזיים

  • משימת ייצוא: פעולה אסינכרונית אחת לייצוא נתוני יומן בטווח זמן ספציפי לקטגוריה של Google Cloud Storage. המערכת עוקבת אחרי כל משימה באמצעות dataExportId ייחודי.
  • ‫Job status: המצב הנוכחי של משימת הייצוא במחזור החיים שלה (לדוגמה, IN_QUEUE,‏ PROCESSING,‏ FINISHED_SUCCESS).
  • קטגוריה של Google Cloud Storage: קטגוריה של Google Cloud Storage בבעלות המשתמש, שמשמשת כיעד לייצוא הנתונים.
  • סוגי יומנים: הקטגוריות הספציפיות של יומנים שאפשר לייצא (לדוגמה, NIX_SYSTEM, ‏ WINDOWS_DNS, ‏ CB_EDR). לפרטים נוספים, ראו את רשימת כל סוגי היומנים הנתמכים.

הסבר על מבנה הנתונים שמייצאים

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

מבנה הנתיב של הספרייה: gs://GCS_BUCKET_NAME/ EXPORT_JOB_NAME/LOGTYPE/EVENT_TIME_BUCKET/EPOCH_EXECUTION_TIME/FILE_SHARD_NAME.csv

כאשר:

  • GCS_BUCKET_NAME: השם של הקטגוריה של Cloud Storage ב-Google Cloud Storage.
  • ‫EXPORT_JOB_NAME: השם הייחודי של משימת הייצוא.
  • ‫LOGTYPE: מתייחס לשם של סוג היומן של הנתונים שיוצאו.
  • ‫EVENT_TIME_BUCKET: מתייחס לטווח השעות של חותמות הזמן של האירועים ביומנים שיוצאו. הפורמט הוא חותמת זמן ב-UTC: ‏year/month/day/UTC-timestamp – כאשר UTC-timestamp הוא hour/minute/second. לדוגמה, 2025/08/25/01/00/00 מתייחס ל-UTC 01:00:00 AM, August 25, 2025.
  • ‫EPOCH_EXECUTION_TIME: מתייחס לערך של ראשית זמן יוניקס (Unix epoch), שמציין מתי התחילה משימת הייצוא.
  • ‫FILE_SHARD_NAME: מתייחס לשם של הקבצים המפוצלים שמכילים יומנים גולמיים. לכל קובץ חלקי יש מגבלת גודל עליונה של 100MB.

ביצועים ומגבלות

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

  • נפח נתונים מקסימלי לכל משימה: בכל משימת ייצוא אפשר לבקש עד 100TB של נתונים. אם יש לכם קבוצות נתונים גדולות, Google ממליצה לפצל את הייצוא לכמה משימות עם טווחי תאריכים קטנים יותר.
  • משימות בו-זמניות: כל דייר של לקוח יכול להריץ או להוסיף לתור עד שלוש משימות ייצוא בו-זמנית. המערכת דוחה כל בקשה ליצירת משימה חדשה שחורגת מהמגבלה הזו.
  • זמני השלמת המשימה: נפח הנתונים שמייצאים קובע את זמני השלמת המשימה. משימה אחת יכולה להימשך עד 18 שעות.
  • פורמט הייצוא והיקף הנתונים: ה-API תומך בייצוא בכמות גדולה של נתונים בנקודת זמן מסוימת, עם המגבלות והתכונות הבאות:
    • יומנים גולמיים בלבד: אפשר לייצא רק יומנים גולמיים (לא יומני UDM, אירועי UDM או זיהויים). כדי לייצא נתוני UDM, קראו את המאמר ייצוא לפרויקט בניהול עצמי ב-BigQuery.
    • דחיסת נתונים: ה-API מייצא נתונים כטקסט לא דחוס.

דרישות מוקדמות וארכיטקטורה

בקטע הזה מתוארת ארכיטקטורת המערכת והדרישות לשימוש ב-Data Export API. השתמשו במידע הזה כדי לוודא שהסביבה שלכם מוגדרת בצורה נכונה.

לפני שמשתמשים ב-Data Export API, צריך לבצע את השלבים הבאים כדי להגדיר את היעד ב-Google Cloud Storage ולתת את ההרשאות הנדרשות:

  1. נותנים הרשאות למשתמש. כדי להשתמש ב-Data Export API, אתם צריכים את ההרשאות הבאות בפרויקט BYOP Google Cloud שמקושר לדייר שלכם ב-Google SecOps:

    ההרשאות האלה הן חלק מתפקידי ה-IAM הבאים שמוגדרים מראש:

    • ‫Chronicle API Admin: הרשאות מלאות ליצור, לעדכן, לבטל ולראות משימות ייצוא באמצעות ה-API. התפקיד הזה מעניק גישה גלובלית.
    • צפייה ב-Chronicle API: הרשאת קריאה בלבד לצפייה בהגדרות ובהיסטוריה של המשימות באמצעות ה-API. בלי התפקיד restrictedDataAccess, משתמש עם התפקיד הזה יכול לראות את כל הנתונים (ראו את השלב ‎+ Add Another Role והוסיפו תנאי).
  2. החלת היקפי RBAC של נתונים על משתמש. כדי להגביל משתמש להיקפי גישה ספציפיים לנתונים:

    1. מוודאים שהיקפי ההרשאות של בקרת הגישה מבוססת התפקידים (RBAC) שרוצים להחיל כבר נוצרו בממשק המשתמש של Google SecOps בקטע Settings > SIEM Settings > Data Access > Scopes. שימו לב לשם המלא של כל היקף הרשאות שאתם מתכוונים להקצות למשתמש.
    2. ליצור תפקיד בהתאמה אישית בניהול זהויות והרשאות גישה (IAM) לניהול ייצוא הנתונים. תפקידים מוגדרים מראש יכולים לתת גישה רחבה מדי, או לא לכלול את השילוב הספציפי של ההרשאות שאתם צריכים. לכן, כדי ליצור תפקיד בהתאמה אישית שמיועד לניהול של ייצוא נתונים בהקשר מוגדר, אתם צריכים:

      1. במסוף Google Cloud , נכנסים לדף IAM & Admin > Roles.
      2. לוחצים על ‎+ Create Role.
      3. מזינים כותרת (לדוגמה, SecOps Scoped Data Export User).
      4. מזינים מזהה (לדוגמה, secopsScopedDataExportUser).
      5. לוחצים על + הוספת הרשאות.
      6. מסננים לפי הרשאות של Chronicle ומוסיפים את ההרשאות הרלוונטיות שמפורטות בשלב הראשון (מתן הרשאות למשתמש ה-API).
      7. לוחצים על יצירה.
  3. הענקת תפקידי IAM למשתמש. בדף IAM, מבצעים את הפעולות הבאות כדי להקצות את התפקידים הנדרשים למשתמש:

    1. נכנסים לדף IAM & Admin > IAM.
    2. לוחצים על + הענקת גישה.
    3. בשדה New principals, מזינים את כתובת האימייל של המשתמש.
    4. כדי להקצות תפקידים:

      1. מוסיפים את התפקיד בהתאמה אישית שיצרתם (לדוגמה, SecOps Scoped Data Export User).
      2. לוחצים על ‎+ Add Another Role ומוסיפים את התפקיד Chronicle API Restricted Data Access‏ (restrictedDataAccess). התפקיד הזה חיוני כדי לסמן את המשתמש ככפוף להיקפי נתונים.
  4. מוסיפים תנאי IAM לקישור התפקיד Chronicle API Restricted Data Access. כדי לקשר את המשתמש להיקפי נתונים ספציפיים:

    1. לוחצים על הוספת תנאי IAM.
    2. משתמשים בכלי להגדרת תנאים או בעורך התנאים כדי להגדיר את ההיקפים המותרים, ומשתמשים בשם ההיקף שנוצר בשלב הראשון בתור שם המשאב. לדוגמה, כדי להשתמש בהיקף בשם scope_test, מגדירים את התנאי resource.name.endsWith("/dataAccessScopes/scope_test").

    מידע נוסף על האופן שבו RBAC של נתונים מיושם ב-Data Export API זמין במאמר איך RBAC של נתונים חל על Data Export API.

  5. יוצרים קטגוריה של Google Cloud Storage. בפרויקט ב- Google Cloud, יוצרים קטגוריה של Cloud Storage חדשה ב-Google Cloud Storage (היעד של הנתונים שמייצאים) באותו אזור של הדייר ב-Google SecOps. להגדיר אותו כפרטי, כדי למנוע גישה לא מורשית. פרטים נוספים זמינים במאמר יצירת קטגוריה.

  6. מתן הרשאות לחשבון השירות. כדי להקצות לחשבון השירות של Google SecOps, שמקושר לדייר שלכם ב-Google SecOps, את תפקידי ה-IAM שנדרשים כדי לכתוב נתונים בקטגוריה:

    1. שולחים קריאה לנקודת הקצה ל-API‏ FetchServiceAccountForDataExport כדי לזהות את חשבון השירות הייחודי של המכונה של Google SecOps. ה-API מחזיר את כתובת האימייל של חשבון השירות.

      דוגמה לבקשה:

      {
        "parent": "projects/myproject/locations/us/instances/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
      }
      

      דוגמה לתגובה:

      {
        "service_account_email": "service-1234@gcp-sa-chronicle.iam.gserviceaccount.com"
      }
      
    2. כדי ששירות Google SecOps יוכל לכתוב קובצי נתונים שיוצאו לקטגוריה של Google Cloud Storage, צריך לתת לחשבון השירות של Google SecOps את תפקידי ה-IAM הבאים בקטגוריית היעד של Google Cloud Storage:

      • Storage object administrator (roles/storage.objectAdmin)
      • Legacy bucket reader (roles/storage.legacyBucketReader)

      פרטים נוספים זמינים במאמר מתן גישה לחשבון השירות של Google SecOps.

  7. משלימים את תהליך האימות. ‫Data Export API מאמת את הקריאות שלכם. כדי להגדיר את האימות הזה, פועלים לפי ההוראות בקטעים הבאים:

    1. שיטות אימות לשירותי Google Cloud
    2. Application Default Credentials

תרחישי שימוש עיקריים ותהליך עבודה בסיסי

‫Data Export API מספק חבילה של נקודות קצה (endpoints) ליצירת משימות של ייצוא נתונים ולניהול כל מחזור החיים של ייצוא נתונים בכמות גדולה. כל האינטראקציות מתבצעות באמצעות קריאות ל-API.

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

יצירת משימה חדשה של ייצוא נתונים

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

  • במאמר FetchServiceAccountForDataExports מוסבר איך לזהות את חשבון השירות הייחודי של המכונה של Google SecOps.

  • כדי להתחיל ייצוא חדש, שולחים בקשת POST לנקודת הקצה (endpoint) של dataExports.create. פרטים נוספים זמינים במאמר נקודת הקצה CreateDataExport.

מעקב אחרי הסטטוס של משימת ייצוא הנתונים

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

  • GetDataExport

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

ביטול משימות בתור

אפשר לבטל משימה כשהסטטוס שלה הוא IN_QUEUE.

כדי ללמוד איך לבטל משימה בתור, ראו CancelDataExport.

איך בקרת גישה מבוססת-תפקידים (RBAC) חלה על Data Export API

משימות הייצוא מקבלות בירושה את היקף ה-RBAC של הנתונים של המשתמשים שיוצרים משימת ייצוא, וכך נמנע חילוץ נתונים לא מורשה.

אם תנסו לייצא נתונים שלא נכללים בהיקף הגישה לנתונים, ה-API יחריג אותם באופן אוטומטי בזמן ביצוע משימת הייצוא. הערך של השדה dataRbacFiltered במטא-נתונים של משימות שהושלמו (כלומר, משימות בסטטוס FINISHED_SUCCESS) מציין אם נתונים הוחרגו. אם הערך של dataRbacFiltered הוא true, חלק מהנתונים שנבחרו למשימת הייצוא או כולם הוחרגו כי הם לא נכללו בהיקפי ה-RBAC של הנתונים שרלוונטיים ליוצר המשימה. אם הערך של dataRbacFiltered הוא false, משימת הייצוא לא הושפעה מהגבלות ההיקף של בקרת הגישה מבוססת התפקידים (RBAC) של הנתונים, וכל הנתונים שנכללו במשימה יוצאו בהצלחה.

ה-API מחיל את היקפי ה-RBAC של הנתונים שרלוונטיים ליוצר בזמן יצירת המשימה. שינויים בהיקפי ה-RBAC של הנתונים לא חלים רטרואקטיבית על משימות שכבר נוצרו.

מידע נוסף על RBAC של נתונים זמין במאמר סקירה כללית של RBAC של נתונים.

פתרון בעיות נפוצות

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

קוד קנוני הודעת השגיאה
INVALID_ARGUMENT INVALID_REQUEST: Invalid request parameter PARAMETER_1, PARAMETER_2, ... PARAMETER_N. Please fix the request parameters and try again.
PERMISSION_DENIED INSUFFICIENT_PERMISSIONS: Unable to validate request with the current CMEK key. Please fix the CMEK key and try again
NOT_FOUND BUCKET_NOT_FOUND: The destination Google Cloud Storage bucket BUCKET_NAME does not exist. Please create the destination Google Cloud Storage bucket and try again.
NOT_FOUND REQUEST_NOT_FOUND: The dataExportId:DATA_EXPORT_ID does not exist. Please add a valid dataExportId and try again.
FAILED_PRECONDITION BUCKET_INVALID_REGION: The Google Cloud Storage bucket BUCKET_ID's region:REGION_1 is not the same region as the SecOps tenant region:REGION_2. Please create the Google Cloud Storage bucket in the same region as SecOps tenant and try again.
FAILED_PRECONDITION INSUFFICIENT_PERMISSIONS: The Service Account P4SA does not have storage.objects.create, storage.objects.get and storage.buckets.get permissions on the destination Google Cloud Storage bucket BUCKET_NAME. Please provide the required access to the Service Account and try again.
FAILED_PRECONDITION INVALID_CANCELLATION: The request status is in the STATUS stage and can't be cancelled. You can only cancel the request if the status is in the IN_QUEUE stage.
RESOURCE_EXHAUSTED CONCURRENT_REQUEST_LIMIT_EXCEEDED: Maximum concurrent requests limit LIMIT reached for the request size SIZE_LIMIT. Please wait for the existing requests to complete and try again.
RESOURCE_EXHAUSTED REQUEST_SIZE_LIMIT_EXCEEDED: The estimated export volume: ESTIMATED_VOLUME for the request is greater than maximum allowed export volume: ALLOWED_VOLUME per request. Please try again with a request within the allowed export volume limit.
INTERNAL INTERNAL_ERROR: An Internal error occurred. Please try again.

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.