כדי להבטיח אבטחה, כל נתוני המדדים צריכים להיות מוצפנים בזמן ההעברה. רכיב המעקב של מכשיר Google Distributed Cloud (GDC) עם פער אבטחה מספק הצפנה ואימות בזמן העברה באמצעות Transport Layer Security (mTLS) הדדית. שיטת mTLS מאמתת את הזהות של שני הצדדים בחיבור לרשת, ומוודאת שהם אכן מי שהם טוענים שהם.
בדף הזה מוסבר איך להגדיר mTLS לשרת המדדים.
לפני שמתחילים
כדי לנהל משאבים מותאמים אישית של MonitoringTarget, צריך לבקש מהאדמין את ההרשאות הנדרשות.
התפקידים שצריך ב-IAM
פנו לאדמין של IAM בפרויקט ובקשו ממנו להקצות לכם את התפקידים הבאים:
- MonitoringTarget Creator (
monitoringtarget-creator):createMonitoringTargetcustom resources in the project namespace. - MonitoringTarget Editor (
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: השם של הקונטיינר שבו מוסיפים את נקודת הגישה לנפח. -
MONITORING_TARGET_NAME: השם שלMonitoringTargetהמשאב המותאם אישית. שם הסוד מבוסס על השם הזה. לדוגמה, משאבmy-mon-targetיוצר שם סודmy-mon-target-cert.
מדדים של הצגת מודעות
שרת המדדים צריך להציג מדדים משרת HTTP עם mTLS. יכול להיות שתרצו להצפין מדדים באחד משני התרחישים הבאים:
- באפליקציות שבבעלותכם: משנים את קוד המקור כדי לתמוך ב-mTLS ומגדירים את שרת המדדים עם אישור mTLS.
- באפליקציות שלא בבעלותכם: כדי להפעיל נקודת קצה של מדדי 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, בודקים שסטטוס האישור וסוד האישור של המשאב המותאם אישית MonitoringTargetReady מוצג כמו בדוגמה הבאה:
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