רכיב המעקב של Google Distributed Cloud (GDC) עם air gap מאפשר להצפין ולאמת מדדי אפליקציות במעבר באמצעות Transport Layer Security הדדי (mTLS). הגדרת mTLS במשאב מותאם אישית של MonitoringTarget מאמתת את הזהות של שרת המדדים ושל צינור עיבוד הנתונים למעקב, כדי לאבטח את איסוף המדדים בעומסי העבודה של הפרויקט.
לפני שמתחילים
כדי לנהל MonitoringTarget משאבים בהתאמה אישית, צריך את ההרשאות הנדרשות.
בקשת תפקידים ב-IAM ברמת הארגון
כדי לבקש את התפקידים הבאים, פנו למנהל החשבון הארגוני ב-IAM:
- MonitoringTarget PA Creator (
monitoringtarget-pa-creator): יצירת משאבים בהתאמה אישית שלMonitoringTarget. - עריכת MonitoringTarget PA (
monitoringtarget-pa-editor): עריכה או שינוי של משאבים בהתאמה אישית שלMonitoringTarget. - צפייה ב-MonitoringTarget PA (
monitoringtarget-pa-viewer): צפייה במשאבים בהתאמה אישית שלMonitoringTarget.
בקשת תפקידי IAM בפרויקט
כדי לבקש את התפקידים הבאים, פנו לאדמין של הפרויקט ב-IAM:
- עריכת MonitoringTarget (
monitoringtarget-editor): עריכה או שינוי של משאבים בהתאמה אישית שלMonitoringTargetבמרחב השמות של הפרויקט. - MonitoringTarget Viewer (
monitoringtarget-viewer): צפייה במשאבים בהתאמה אישית שלMonitoringTargetבמרחב השמות של הפרויקט.
אחרי שמקבלים את ההרשאות הנדרשות, מבצעים את השלבים הבאים לפני שמפעילים את הצפנת המדדים:
- פורסים את שרת המדדים.
- איסוף מדדים מעומסי העבודה.
מוודאים שהמשאב המותאם אישית
MonitoringTargetמציג את הסטטוסReady, כמו בדוגמה הבאה:apiVersion: monitoring.gdc.goog/v1 kind: MonitoringTarget # [...] status: conditions: - lastTransitionTime: "2023-10-27T15:27:51Z" message: "" observedGeneration: 1 reason: Ready status: True type: Readyשאילתות והצגת מדדים בלוחות בקרה כדי לוודא ששרת המדדים שולח את הנתונים הצפויים.
טעינת האישור
עומס העבודה צריך להשתמש באישור שנוצר באופן אוטומטי כשמפעילים mTLS במשאב המותאם אישית MonitoringTarget. מוסיפים אמצעי אחסון ונקודת טעינה לאישור הזה באמצעות התבנית הבאה:
apiVersion: apps/v1
kind: Deployment # or StatefulSet
metadata:
name: "SERVICE_NAME"
spec:
template:
spec:
containers:
- name: "CONTAINER_NAME"
volumeMounts:
- mountPath: "/etc/ssl/MONITORING_TARGET_NAME-cert"
name: "MONITORING_TARGET_NAME-cert"
readOnly: true
volumes:
- name: "MONITORING_TARGET_NAME-cert"
secret:
secretName: "MONITORING_TARGET_NAME-cert"
# [...]
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE_NAME: השם של האובייקט מסוגDeploymentאוStatefulSet. -
CONTAINER_NAME: שם הקונטיינר שאליו מוסיפים את נקודת ה-mount של אמצעי האחסון. -
MONITORING_TARGET_NAME: השם של המשאב בהתאמה אישית ב-MonitoringTarget. שם הסוד מבוסס על השם הזה. לדוגמה, משאבmy-mon-targetיוצר שם סודmy-mon-target-cert.
מדדי הצגה
שרת המדדים צריך להציג מדדים משרת HTTP שתומך ב-mTLS. יכול להיות שתרצו להצפין מדדים באחד משני התרחישים הבאים:
- באפליקציות שבבעלותכם: משנים את קוד המקור כדי לתמוך ב-mTLS ומגדירים את שרת המדדים עם אישור mTLS.
- לאפליקציות שלא בבעלותכם: עיינו במסמכי התיעוד של האפליקציה כדי להפעיל נקודת קצה (endpoint) של מדדי HTTPS. מחילים את ההגדרות הנדרשות, כמו הגדרת ארגומנטים של שורת הפקודה או פריסת קובץ
config.
הפעלת איסוף מדדי mTLS
כדי לאפשר איסוף של מדדים מוצפנים, מוסיפים את התווית הבאה לקטע metadata במשאב המותאם אישית MonitoringTarget:
monitoring.gdc.goog/enable-mtls: "true"
המשאב המותאם אישית צריך להיראות כמו בדוגמה הבאה:
apiVersion: monitoring.gdc.goog/v1
kind: MonitoringTarget
metadata:
namespace: my-project-namespace
name: "SERVICE_NAME"
labels:
monitoring.gdc.goog/enable-mtls: "true" # Enable mTLS metrics collection
spec:
# [...]
כדי לוודא שהפעלתם אימות mTLS, ודאו שהמשאב המותאם אישית MonitoringTarget מציג סטטוס Ready לאישור ולסוד האישור, כמו בדוגמה הבאה:
apiVersion: monitoring.gdc.goog/v1
kind: MonitoringTarget
# [...]
status:
conditions:
- lastTransitionTime: "2023-11-09T11:15:10Z"
message: "admin,user-vm-1,user-vm-2,org-1-system"
observedGeneration: 2
reason: Ready
status: "True"
type: Ready
- lastTransitionTime: "2023-11-09T11:14:43Z"
message: "Certificate is ready"
observedGeneration: 2
reason: Ready
status: "True"
type: CertificateReady
- lastTransitionTime: "2023-11-09T11:15:10Z"
message: "Successfully created secret"
observedGeneration: 2
reason: Ready
status: "True"
type: CertificateSecretReady