שימוש ברישום ביומן הביקורת של Kubernetes

במאמר הזה מוסבר איך להשתמש ביומני הביקורת של Cloud ב-Google Distributed Cloud (תוכנה בלבד). ב-Google Distributed Cloud משתמשים ברישום ביומן של ביקורת Kubernetes, ששומר תיעוד כרונולוגי של קריאות שבוצעו לשרת Kubernetes API של אשכול. יומני ביקורת שימושיים לחקירת בקשות API חשודות ולאיסוף נתונים סטטיסטיים. למידע על רישום ביומן הביקורת של GKE On-Prem API, קראו את המאמר רישום ביומן הביקורת של Cloud API.

מידע על יומני ביקורת של Cloud

יומני הביקורת נכתבים ב-Cloud Audit Logs בפרויקט ב- Google Cloud . לכתיבה ביומני הביקורת של Cloud יש כמה יתרונות על פני כתיבה בדיסק או תיעוד יומנים במערכת רישום מקומית:

  • אפשר לרכז את יומני הביקורת של כל האשכולות.
  • רשומות ביומן שנכתבות ביומני הביקורת של Cloud לא ניתנות לשינוי.
  • הרשומות ביומני הביקורת של Cloud נשמרות למשך 400 ימים.
  • התכונה "יומני ביקורת של Cloud" כלולה במחיר של Google Distributed Cloud.
  • אתם יכולים להגדיר את Google Distributed Cloud כך שיכתוב יומנים בדיסק או ביומני הביקורת של Cloud.

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

אם יומני הביקורת של Cloud מושבתים באופן מפורש, יומני הביקורת נכתבים בדיסק קבוע כדי שהיומנים לא ייעלמו כשהאשכולות מופעלים מחדש או משודרגים. תוכנת Distributed Cloud שומרת רק עד 1 GiB של רשומות ביומן הביקורת.

כדי לגשת ליומני הביקורת שמבוססים על דיסק, צריך להתחבר לצומתי מישור הבקרה. היומנים נמצאים בספרייה /var/log/apiserver/.

יומני ביקורת של Cloud

רשומות של יומני ביקורת של פעילות אדמין מכל שרתי ה-API של Kubernetes נשלחות אלGoogle Cloud, באמצעות הפרויקט והמיקום שציינתם כשאתם יוצרים אשכול משתמשים. כדי לאחסן במאגר זמני ולכתוב רשומות ביומני הביקורת של Cloud, ‏Google Distributed Cloud פורס קבוצת דימון (daemon) של audit-proxy שפועלת בצמתים של מישור הבקרה.

מגבלות

אלה המגבלות של יומני הביקורת של Cloud:

  • אין תמיכה ברישום ביומן של גישה לנתונים (בקשות get,‏ list ו-watch).
  • אי אפשר לשנות את מדיניות הביקורת של Kubernetes.
  • יומני הביקורת של Cloud לא עמידים בפני הפסקות ממושכות ברשת. אם אי אפשר לייצא את רשומות היומן אל Google Cloud, הן נשמרות במטמון במאגר דיסק בנפח 10GB. אם המאגר הזה מתמלא, הרשומות הישנות ביותר נמחקות.
  • פרויקט אחד יכול לתמוך בעד כ-1,000 חשבונות שירות לשימוש עם Cloud Audit Logs. כמה אשכולות יכולים להשתמש באותו חשבון שירות.

יצירת חשבון שירות ליומני הביקורת של Cloud

כדי להשתמש ב-Cloud Logging וב-Cloud Monitoring עם Distributed Cloud software only, צריך קודם להגדיר את הדברים הבאים:

  1. אם עדיין אין לכם סביבת עבודה של Cloud Monitoring בפרויקט Google Cloud , אתם צריכים ליצור אחת.

    במסוף Google Cloud , לוחצים על הכפתור הבא ופועלים לפי תהליך העבודה.

    כניסה ל-Monitoring

  2. לוחצים על הכפתורים הבאים כדי להפעיל את ממשקי ה-API הנדרשים:

    הפעלת Anthos Audit API

    הפעלת Stackdriver API

    הפעלת Monitoring API

    הפעלת Logging API

  3. מקצים לחשבון השירות שמשמש את סוכני Stackdriver את תפקידי ה-IAM הבאים:

    • logging.logWriter
    • monitoring.metricWriter
    • stackdriver.resourceMetadata.writer
    • monitoring.dashboardEditor

גישה ליומני הביקורת של Cloud

המסוף

  1. במסוף Google Cloud , נכנסים לדף Logs Explorer בתפריט Logging.

    כניסה לדף Logs Explorer

    אם נפתח הדף מציג היומנים מדור קודם, בוחרים באפשרות Upgrade to the new Logs Explorer מהתפריט הנפתח Upgrade.

  2. לוחצים על השדה Query כדי להזין שאילתה.

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

    resource.type="k8s_cluster"
    logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity"
    protoPayload.serviceName="anthosgke.googleapis.com"
    

    מחליפים את PROJECT_ID במזהה הפרויקט.

  4. לוחצים על Run query כדי להציג את כל יומני הביקורת מאשכולות שהוגדרו להיכנס לפרויקט הזה.

gcloud

  1. מציגים את שתי הרשומות הראשונות ביומן הפעילות של האדמין בפרויקט שרלוונטיות לסוג המשאב k8s_cluster:
gcloud logging read \
    'logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity" \
    AND resource.type="k8s_cluster" \
    AND protoPayload.serviceName="anthosgke.googleapis.com" ' \
    --limit 2 \
    --freshness 300d
  1. מחליפים את PROJECT_ID במזהה הפרויקט.

בפלט מוצגות שתי רשומות ביומן. שימו לב שבכל רשומת יומן, השדה logName מכיל את הערך projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity והשדה protoPayload.serviceName שווה ל-anthosgke.googleapis.com.

מדיניות הביקורת

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