טריגר Eventarc מצהיר על העניין שלכם באירוע מסוים או בקבוצת אירועים, ומאפשר לכם לתעד אירועים ספציפיים ולהגיב להם.
טריגרים של Eventarc עם type=google.cloud.audit.log.v1.written
שולחים בקשות ליעד כשנוצר יומן ביקורת שתואם לקריטריוני הסינון של הטריגר. ההתאמות מתבצעות לפי הערכים הבאים מתוך רשומת יומן הביקורת:
serviceName: השירות שכתב את יומן הביקורת-
methodName: הפעולה שנבדקת -
resourceName: המשאב שנבדק
רשימה של Google Cloud שירותים שמספקים יומני ביקורת זמינה במאמר Google Cloud שירותים עם יומני ביקורת. אפשר גם לאחזר את ערכי המסנן של האירוע שחלים על סוג האירוע google.cloud.audit.log.v1.written.
זיהוי מסנני אירועים
כדי לזהות את מסנני האירועים המדויקים שנדרשים ליצירת טריגר, צריך ליצור את האירוע שרוצים לתעד, ואז להציג את הרשומה המתאימה ביומני הביקורת של Cloud. חשוב לדעת שנתונים מרשומה ביומן יכולים להתפצל ולהתפרס על פני כמה רשומות.
מוודאים שהפעלתם את סוגי יומני הביקורת Data Access בשירות שלכם.
שימו לב: שירותים שבהם הביקורת מופעלת כברירת מחדל לא מופיעים ברשימה.
בטבלה הראשית בדף Audit Logs, בוחרים שירות Google Cloud.
בכרטיסייה סוגי יומנים, מסמנים את תיבות הסימון Admin Read, Data Read ו-Data Write ואז לוחצים על שמירה.
מבצעים את הפעולה שעבורה רוצים ליצור מסנן אירועים ומפיקים רשומה ביומן הביקורת. לדוגמה, אחסון קובץ בקטגוריה של Cloud Storage.
במסוף Google Cloud , עוברים אל Logs Explorer.
בחלונית Query builder, יוצרים ומריצים שאילתה כדי לסנן את רשומות היומן ולאחזר את התוצאות. לדוגמה:
resource.type="gcs_bucket" resource.labels.bucket_name="eventarc-bucket"מידע נוסף על יצירת שאילתות לאחזור ולסינון יומנים זמין במאמר יצירת שאילתות באמצעות שפת השאילתות של Logging.
כדי לראות את הפרטים המלאים של רשומה ביומן, לוחצים על חץ ההרחבה (▸) בתחילת הרשומה.
השדה
protoPayloadמבדיל בין רשומה ביומן הביקורת לבין רשומות אחרות ביומן. בדוגמה הבאה, חלקים מסוימים מהרשומה ביומן הושמטו, וחלק מהשדות מודגשים:{ protoPayload:{ @type:"type.googleapis.com/google.cloud.audit.AuditLog", status:{}, authenticationInfo:{}, requestMetadata:{}, serviceName:"storage.googleapis.com", methodName:"storage.objects.create", authorizationInfo:[], resourceName:"projects/_/buckets/eventarc-bucket/objects/random.txt", resourceLocation:{} }, insertId:"il9evleafpdk", resource:{ type:"gcs_bucket", labels:{ project_id:"cloud-run-test", location:"us-central1", bucket_name:"eventarc-bucket" } }, timestamp:"2021-03-05T15:55:20.754688805Z", severity:"INFO", logName:"projects/cloud-run-test/logs/cloudaudit.googleapis.com%2Fdata_access", receiveTimestamp:"2021-03-05T15:55:20.884984611Z" }
אפשר להשתמש במידע הבא כדי לאמת את התוכן של הרשומה הזו ביומן הביקורת:
השדה
protoPayload.@typeהואtype.googleapis.com/google.cloud.audit.AuditLog.השדה
logNameכולל את הדומייןcloudaudit.googleapis.com.
השדה
protoPayload.serviceNameהוא השירות שכתב את יומן הביקורת.השדה
protoPayload.methodNameהוא הפעולה שנבדקת.השדה
protoPayload.resourceNameהוא המשאב שנבדק.
לפרטים נוספים על איתור מידע ברשומה ביומן ביקורת, ראו הסבר על יומני ביקורת.
אחזור ערכי מסנני אירועים
אפשר להשתמש בפקודה
gcloud eventarc audit-logs-provider
כדי לבדוק ולרשום את הערכים של ספק serviceName ו-methodName עבור
סוג האירוע google.cloud.audit.log.v1.written.
כדי להציג רשימה של שמות שירותים, מריצים את הפקודה הבאה:
gcloud eventarc audit-logs-provider service-names list
הפונקציה מחזירה את כל ערכי המאפיינים serviceName עבור סוג האירוע google.cloud.audit.log.v1.written.
כדי לפרסם את שמות השיטות בשירות מסוים, מריצים את הפקודה הבאה:
gcloud eventarc audit-logs-provider method-names list \ --service-name=SERVICE_NAME
מחליפים את SERVICE_NAME בערך serviceName – לדוגמה, bigquery.googleapis.com.
דוגמאות לטריגרים של Eventarc
בדוגמה הבאה נוצר טריגר בשם cal-workflows-trigger ליעד Workflows. מסנני הטריגר ליומני ביקורת שנכתבים על ידי bigquery.googleapis.com ולפעולה שמזוהה כ-google.cloud.bigquery.v2.JobService.InsertJob:
gcloud eventarc triggers create cal-workflows-trigger \ --location=us-central1 \ --destination-workflow=my-workflow \ --destination-workflow-location=europe-west4 \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=bigquery.googleapis.com" \ --event-filters="methodName=google.cloud.bigquery.v2.JobService.InsertJob" \ --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com
בדוגמה הבאה נוצר טריגר בשם cal-run-trigger ליעד Cloud Run. מסנני הטריגר ליומני ביקורת שנכתבים על ידי workflows.googleapis.com ולפעולה שמזוהה כ-google.cloud.workflows.v1.Workflows.GetWorkflow:
gcloud eventarc triggers create cal-run-trigger \ --location=us-central1 \ --destination-run-service=helloworld-events \ --destination-run-region=us-central1 \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=workflows.googleapis.com" \ --event-filters="methodName=google.cloud.workflows.v1.Workflows.GetWorkflow" \ --event-filters="resourceName=projects/_/locations/us-central1/workflows/test-workflow" \ --service-account=${PROJECT_NUMBER}-compute@developer.gserviceaccount.com
רשומות גדולות מדי ביומן הביקורת
Cloud Logging מפצל רשומות ביומן הביקורת שגדולות ממגבלת השימוש ומפיץ את הנתונים שכלולים ברשומה המקורית ביומן הביקורת בין כמה רשומות מפוצלות. אם רשומה ביומן מכילה שדה split, הרשומה היא תוצאה של פיצול רשומה גדולה יותר ביומן המקורי. השדה split הוא אובייקט LogSplit שמכיל את המידע שנדרש כדי לזהות רשומות קשורות של פיצול.
לכל רשומה מפוצלת יש protoPayload שכולל את אותם ערכים של serviceName, methodName ו-resourceName כדי לעזור לסנן את האירועים ביומני הביקורת ב-Cloud. טריגרים של Eventarc מעבירים אירוע לכל רשומה מפוצלת.
אם יש לכם רשומה ביומן ביקורת שמפוצלת לכמה רשומות ביומן, אתם יכולים לסנן לפי כל אחד מהשדות ב-LogEntry. לדוגמה, אם אתם צריכים את הרשומה הראשונה בסדרה של רשומות יומן מפוצלות, אתם יכולים להריץ את הפקודה הבאה ב-CLI של gcloud, ולהשתמש ב-split.index=0 כדי לציין את המיקום של הרשומה הראשונה:
gcloud logging read "split.index=0"
למידע נוסף, כולל הסבר על זיהוי רשומות ודוגמאות לשאילתות, אפשר לעיין במאמר בנושא פיצול רשומות ביומן ביקורת.