מעקב אחרי מסדי נתונים באמצעות Cloud Monitoring

רלוונטי רק למהדורת Cloud Firestore Enterprise.

במאמר הזה מוסבר על רישום ביומני ביקורת ב-Cloud Firestore עם תאימות ל-MongoDB. שירותי Google Cloud יוצרים יומני ביקורת שבהם מתועדים אירועי גישה למשאבי Google Cloud ופעילויות אדמין שנעשות בהם.

מידע נוסף על יומני הביקורת של Cloud זמין במאמרים הבאים:

הערות

כשמגדירים יומני ביקורת, צריך להשתמש בשם השירות datastore.googleapis.com כדי להגדיר גם את datastore.googleapis.com וגם את firestore.googleapis.com. Once configured, logs for the Cloud Firestore with MongoDB compatibility API include the service namefirestore.googleapis.com`.

כדי לראות את הזמן שלקח לעבד בקשת DATA_READ או DATA_WRITE, מעיינים בשדה processing_duration באובייקט metadata של AuditLog. השדה processing_duration מתאר את הזמן שלקח למסד הנתונים לעבד בקשה. הערך הזה קטן יותר מזמן האחזור של משתמש הקצה. באופן ספציפי, הוא לא כולל תקורה של רשת.

שם השירות

יומני הביקורת של Cloud Firestore משתמשים בשם השירות firestore.googleapis.com. אפשר לסנן לפי השירות הזה:

protoPayload.serviceName="firestore.googleapis.com"

קודי Method לפי סוג ההרשאה

לכל הרשאה ב-IAM יש מאפיין type עם enum שיכול להיות אחד מארבעת הערכים הבאים: ADMIN_READ,‏ ADMIN_WRITE,‏ DATA_READ או DATA_WRITE. כשקוראים ל-method, ‏ Cloud Firestore יוצר יומן ביקורת שהקטגוריה שלו תלויה במאפיין type של ההרשאה שנדרשת לביצוע ה-method.

ה-methods שבשבילן צריך הרשאה ב-IAM עם הערכים DATA_READ‏, DATA_WRITE או ADMIN_READ במאפיין type יוצרות יומני ביקורת של Data Access.

ה-methods שבשבילן צריך הרשאה ב-IAM עם הערך ADMIN_WRITE במאפיין type יוצרות יומני ביקורת של Admin Activity.

סוג ההרשאה Methods
ADMIN_READ google.cloud.location.Locations.GetLocation
google.cloud.location.Locations.ListLocations
google.firestore.admin.v1.FirestoreAdmin.GetBackup
google.firestore.admin.v1.FirestoreAdmin.GetBackupSchedule
google.firestore.admin.v1.FirestoreAdmin.GetDatabase
google.firestore.admin.v1.FirestoreAdmin.GetField
google.firestore.admin.v1.FirestoreAdmin.GetIndex
google.firestore.admin.v1.FirestoreAdmin.ListBackupSchedules
google.firestore.admin.v1.FirestoreAdmin.ListBackups
google.firestore.admin.v1.FirestoreAdmin.ListDatabases
google.firestore.admin.v1.FirestoreAdmin.ListFields
google.firestore.admin.v1.FirestoreAdmin.ListIndexes
google.firestore.admin.v1beta1.FirestoreAdmin.GetIndex
google.firestore.admin.v1.MongoDBCompatible.ListIndexes
google.firestore.admin.v1.MongoDBCompatible.ListDatabases
ADMIN_WRITE google.firestore.admin.v1.FirestoreAdmin.CreateBackupSchedule
google.firestore.admin.v1.FirestoreAdmin.CreateDatabase
google.firestore.admin.v1.FirestoreAdmin.CreateIndex
google.firestore.admin.v1.FirestoreAdmin.DeleteBackup
google.firestore.admin.v1.FirestoreAdmin.DeleteBackupSchedule
google.firestore.admin.v1.FirestoreAdmin.DeleteDatabase
google.firestore.admin.v1.FirestoreAdmin.DeleteIndex
google.firestore.admin.v1.FirestoreAdmin.RestoreDatabase
google.firestore.admin.v1.FirestoreAdmin.UpdateBackupSchedule
google.firestore.admin.v1.FirestoreAdmin.UpdateDatabase
google.firestore.admin.v1.FirestoreAdmin.UpdateField
google.longrunning.Operations.CancelOperation
google.longrunning.Operations.DeleteOperation
DATA_READ google.firestore.v1.MongoDBCompatible.Find
google.firestore.v1.MongoDBCompatible.Aggregate
google.firestore.v1.MongoDBCompatible.GetMore
google.firestore.v1.MongoDBCompatible.ListCollections
google.firestore.v1.MongoDBCompatible.Count
google.firestore.v1.MongoDBCompatible.Distinct
google.firestore.v1.MongoDBCompatible.CommitTransaction
google.firestore.v1.MongoDBCompatible.AbortTransaction
google.firestore.v1.MongoDBCompatible.EndSessions
google.firestore.v1.MongoDBCompatible.KillCursors
DATA_WRITE google.firestore.v1.MongoDBCompatible.Insert
google.firestore.v1.MongoDBCompatible.Update
google.firestore.v1.MongoDBCompatible.Delete
google.firestore.v1.MongoDBCompatible.FindAndModify
google.firestore.v1.MongoDBCompatible.CreateCollection

זיהוי המתקשרים בבקשה

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

  • הזהות של המתקשר מופיעה בשדה AuthenticationInfo. המידע הזה יכול לכלול את principalEmail של המשתמש. המידע הזה מצונזר לפעמים.

  • השדה callerIp באובייקט requestMetadata של רשומה מסוג AuditLog כולל את כתובת ה-IP של מבצע השיחה.