העברה באצווה של רשומות ביומן ביקורת באופן רטרואקטיבי

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

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

מגבלות

המגבלות הבאות חלות על העתקה של רשומות ביומן:

  • אפשר להעתיק רשומות ביומן רק לקטגוריות של Cloud Storage. אי אפשר להעתיק אותן ליעדים אחרים.

  • אי אפשר להעתיק רשומות ביומן ממאגרי יומנים שמוגדרים בהם מפתחות הצפנה בניהול הלקוח (CMEK).

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

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

  • כדי לקבל את ההרשאות שדרושות להעתקת רשומות ביומן, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט שמכיל את קטגוריית היומן שממנה אתם מעתיקים:

  • כדי לקבל את ההרשאות שנדרשות לכתיבת רשומות ביומן ל-Cloud Storage, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Storage Object Creator (roles/storage.objectCreator) בפרויקט שמכיל את הקטגוריה של Cloud Storage.

העתקת רשומות ביומן

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

כדי להעתיק רשומות ביומן ל-Cloud Storage, צריך לדעת את הפרטים הבאים:

  • המזהה והמיקום של קטגוריה ביומן שממנו מעתיקים. כדי לאחזר את מזהה קטגוריית היומן והמיקום שלה, משתמשים בפקודה gcloud logging buckets list ב-CLI של gcloud.
  • השם של קטגוריה של Cloud Storage שאליה מעתיקים. מידע על אחזור שם הקטגוריה ב-Cloud Storage זמין במאמר קבלת מידע על קטגוריות ב-Cloud Storage.
  • מסנן לרשומות ביומן שרוצים להעתיק.

כדי להעתיק רשומות ביומן, מריצים את הפקודה gcloud logging copy:

gcloud logging copy LOG_BUCKET_ID storage.googleapis.com/CLOUD_STORAGE_BUCKET_NAME \
--location=LOCATION --log-filter='FILTER' --project=PROJECT_ID

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

  • מחליפים את LOG_BUCKET_ID בשם של קטגוריית היומנים.
  • מחליפים את CLOUD_STORAGE_BUCKET_NAME בשם של קטגוריית Cloud Storage.
  • מחליפים את LOCATION במיקום של קטגוריה ביומן.
  • (אופציונלי): מחליפים את FILTER במסנן שמגדיר אילו רשומות ביומן יועתקו.

    אם לא מציינים את הדגל --log-filter, כל רשומות היומן בקטגוריית היומן מועתקות לקטגוריה של Cloud Storage.

  • מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud . אפשר להשמיט את הדגל הזה אם הפרויקט הנכון מוגדר במערך הפעיל של ההגדרות האישיות של ה-CLI של gcloud. Google Cloud

פקודה לדוגמה:

gcloud logging copy my-log-bucket storage.googleapis.com/my-gcs-bucket \
--location=global --log-filter='timestamp > "2024-07-18T10:00:00.0Z"' \
--project=my-project

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

name: projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

המיקום של פעולת ההעתקה זהה למיקום של קטגוריית היומנים שממנה מעתיקים.

הצגה וניהול של פעולות העתקה

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

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

הצגת רשימה של פעולות העתקה

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

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

gcloud logging operations list --location=LOCATION \
--operation-filter=request_type=CopyLogEntries \
--project=PROJECT_ID

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

  • מחליפים את LOCATION במיקום של קטגוריית היומנים שממנה מעתיקים.
  • מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud .

הפקודה מחזירה מידע על הפעולה הממושכת, כולל מזהה הפעולה:

projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

צפייה בסטטוס של פעולת העתקה

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

  • startTime: חותמת הזמן שמציינת את מועד היצירה של הפעולה.
  • endTime: חותמת הזמן שמציינת את סיום הפעולה.
  • state: הסטטוס של הפעולה (מתוזמנת, פועלת, בוטלה, נכשלה או הושלמה).
  • cancellation: מציין אם המשתמש ביקש לבטל את הפעולה.
  • progress: ההתקדמות המשוערת של הפעולה (0-100%).
  • destination: השם של קטגוריית Cloud Storage שאליה הפעולה מעתיקה רשומות ביומן.
  • filter: המסנן שמציין אילו רשומות ביומן להעתיק.
  • name: השם של קטגוריה ביומן שממנו הפעולה מעתיקה רשומות ביומן.
  • logEntriesCopiedCount: מספר הרשומות ביומן שהועתקו בהצלחה לקטגוריה של Cloud Storage על ידי הפעולה.

חשוב לזכור שלא כל שדות המטא-נתונים שמופיעים ברשימה רלוונטיים לכל פעולת העתקה. לדוגמה, אם פעולת העתקה עדיין פועלת, המטא-נתונים endTime לא חלים על הפעולה. דוגמה נוספת: אם לא נעשה שימוש בדגל --log-filter=FILTER כשמריצים את הפקודה gcloud logging copy, מטא-הנתונים filter לא חלים על הפעולה.

כדי לאחזר מידע על פעולת העתקה, מריצים את הפקודה הבאה:

gcloud logging operations describe OPERATION_ID \
--location=LOCATION --project=PROJECT_ID

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

  • מחליפים את OPERATION_ID במזהה הפעולה.
  • מחליפים את LOCATION במיקום של קטגוריית היומנים שממנה מעתיקים.
  • מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud .

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

done: false
metadata:
  `@type`: type.googleapis.com/google.logging.v2.CopyLogEntriesMetadata
  progress: 75
  destination: storage.googleapis.com/CLOUD_STORAGE_BUCKET_NAME
  source: projects/PROJECT_ID/locations/LOCATION/buckets/LOG_BUCKET_ID
  verb: copy
  startTime: `2024-05-23T10:52:40.039751Z`
  state: OPERATION_STATE_RUNNING
name: projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

ביטול פעולת העתקה

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

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

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

gcloud logging operations cancel OPERATION_ID \
--location=LOCATION --project=PROJECT_ID

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

  • מחליפים את OPERATION_ID במזהה הפעולה.
  • מחליפים את LOCATION במיקום של קטגוריית היומנים שממנה מעתיקים.
  • מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud .

צפייה ברשומות ביומן ב-Cloud Storage

מידע על הצגה והבנה של רשומות ביומן שהעתקתם ל-Cloud Storage זמין במאמר הצגת רשומות ביומן שהועברו ל-Cloud Storage.

מכסות ומגבלות

כל פעולות ההעתקה נמשכות לפחות שעה, לא משנה כמות הנתונים שמועתקת.

כדי להעתיק נפח גדול – למשל פטה-בייט – צריך לפצל את ההעתקה לכמה פעולות העתקה באמצעות השדה timestamp בדגל --log-filter.

אי אפשר להשתמש בפקודת ההעתקה כדי להעתיק רשומות ביומן שתקופת השמירה שלהן הסתיימה.

פתרון בעיות

בקטע הזה מוסבר איך לפתור בעיות בהעתקת רשומות ביומן.

כתיבת נתונים לייצוא נכשלה

כשמציגים את הסטטוס של פעולת העתקה באמצעות gcloud logging operations describe, יכול להיות שתוצג השגיאה הבאה:

done: true
error:
  code: 7
  message: Failed to write export data to the destination Cloud Storage bucket.

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

  • גבולות גזרה לשירות ב-VPC Service Controls חוסמים בקשות לקטגוריה של Cloud Storage.
  • ההרשאות ב-IAM של החשבון שממנו התבצעה פעולת ההעתקה שונו או בוטלו בזמן שהפעולה הייתה פעילה.
  • פעולת ההעתקה נמשכה מספיק זמן כדי שפרטי ההרשאה יפוגו.
  • קטגוריית היעד ב-Cloud Storage משתמשת ב-CMEK, ומפתח Cloud Key Management Service מושבת או לסוכן השירות של Cloud Storage אין הרשאות הצפנה.
  • ניסיון חוזר לכתיבה מנסה להחליף קובץ קיים שלא ניתן להחליף. לדוגמה, אם מתבצע ניסיון חוזר לייצוא של קבוצת קבצים אחרי השהיה זמנית, או אם מפעילים מחדש פעולת העתקה, יכול להיות שהניסיון החוזר ינסה להחליף קובץ שכבר נוצר. אם הקובץ הזה מוגן על ידי דגל object hold פעיל או על ידי מדיניות שמירת נתונים נעולה, Cloud Storage דוחה את פעולת ההחלפה.
  • דלי היעד נמחק, נכנס למצב נעול או שהפרויקט חרג ממכסת המשאבים שלו.

כדי לפתור את הבעיה:

  1. בדיקת VPC Service Controls: אם הארגון שלכם משתמש ב-VPC Service Controls, צריך לבדוק ביומני הביקורת של Cloud אם יש דחיות של גבולות הגזרה (cloudaudit.googleapis.com/data_access). גבולות הגזרה של קטגוריית היעד ב-Cloud Storage צריכים לאפשר גישה מהפרויקט שבו מופעלת פעולת ההעתקה, או שצריך להגדיר כלל לתעבורת נתונים נכנסת (ingress) ויוצאת (egress).

  2. מוודאים את תפקידי ה-IAM של קטגוריית היעד: לחשבון שיזם את פעולת ההעתקה צריך להיות התפקיד Storage Object Creator ‏(roles/storage.objectCreator) בקטגוריית היעד.

  3. אימות מפתחות הצפנה בניהול הלקוח (CMEK): אם קטגוריית היעד משתמשת ב-CMEK להצפנה כברירת מחדל, צריך לוודא שמפתח Cloud KMS מופעל ושסוכן השירות של Cloud Storage קיבל את התפקיד Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) במפתח.

  4. חלוקת פעולות העתקה גדולות למרווחי זמן קצרים יותר: כדי למנוע מצבים של פסק זמן או תפוגה של פרטי הכניסה כשמעתיקים כמויות גדולות של רשומות ביומן, צריך לחלק את הפעולה למנות קטנות יותר. כדי לפצל את הרשומות ביומן לקבוצות, משתמשים בשדה timestamp בדגל --log-filter.

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

תמחור

למידע על מחירים, אפשר לעיין בדף תמחור של Google Cloud Observability. אם אתם מעבירים נתוני יומן לשירותים אחרים Google Cloud , כדאי לעיין במסמכים הבאים: