Alle Messwertdaten müssen während der Übertragung verschlüsselt werden, um die Sicherheit zu gewährleisten. Die Monitoring-Komponente von Google Distributed Cloud (GDC) Air-Gapped bietet In-Transit-Verschlüsselung und Authentifizierung über Mutual Transport Layer Security (mTLS). Mit der mTLS-Methode wird die Identität beider Parteien in einer Netzwerkverbindung überprüft, um zu bestätigen, dass sie die sind, für die sie sich ausgeben.
Auf dieser Seite wird beschrieben, wie Sie mTLS für Ihren Messwertserver einrichten.
Hinweise
Bitten Sie Ihren Organisations-IAM-Administrator oder Projekt-IAM-Administrator, Ihnen eine der zugehörigen MonitoringTarget
-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten von benutzerdefinierten MonitoringTarget
-Ressourcen benötigen.
Je nach Zugriffsebene und erforderlichen Berechtigungen können Sie für diese Ressource in einer Organisation oder einem Projekt die Rollen „Ersteller“, „Bearbeiter“ oder „Betrachter“ erhalten. Weitere Informationen finden Sie unter IAM-Berechtigungen vorbereiten.
Nachdem Sie die erforderlichen Berechtigungen erhalten haben, führen Sie die folgenden Schritte aus, bevor Sie die Verschlüsselung von Messwerten aktivieren:
- Stellen Sie den Messwertserver bereit.
- Messwerte aus Ihren Arbeitslasten erfassen.
Prüfen Sie, ob für Ihre benutzerdefinierte
MonitoringTarget
-Ressource der StatusReady
angezeigt wird, wie im folgenden Beispiel:apiVersion: monitoring.gdc.goog/v1 kind: MonitoringTarget [...] status: conditions: - lastTransitionTime: "2023-10-27T15:27:51Z" message: "" observedGeneration: 1 reason: Ready status: True type: Ready
Messwerte in Dashboards abfragen und ansehen, um zu bestätigen, dass der Messwertserver die erwarteten Daten sendet.
Zertifikat bereitstellen
Ihre Arbeitslast muss ein Zertifikat verwenden, das automatisch generiert wird, wenn Sie mTLS für die benutzerdefinierte MonitoringTarget
-Ressource aktivieren. Fügen Sie mit der folgenden Vorlage ein Volume und eine Volume-Bereitstellung für dieses Zertifikat hinzu:
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"
[...]
Ersetzen Sie Folgendes:
SERVICE_NAME
: der Name IhresDeployment
- oderStatefulSet
-Objekts.CONTAINER_NAME
: Der Name des Containers, dem Sie die Volumebereitstellung hinzufügen.MONITORING_TARGET_NAME
: der Name Ihrer benutzerdefinierten RessourceMonitoringTarget
. Der Secret-Name basiert auf diesem Namen. Beispiel: Einemy-mon-target
-Ressource erstellt einenmy-mon-target-cert
-Secret-Namen.
Messwerte bereitstellen
Ihr Messwertserver muss Messwerte von einem mTLS-fähigen HTTP-Server bereitstellen. Sie können Messwerte in einem der folgenden beiden Szenarien verschlüsseln:
- Für eigene Anwendungen: Ändern Sie den Quellcode, um mTLS zu unterstützen, und konfigurieren Sie den Metrikserver mit dem mTLS-Zertifikat.
- Für Anwendungen, die Ihnen nicht gehören: Informationen zum Aktivieren eines HTTPS-Messwertendpunkts finden Sie in der Dokumentation der Anwendung. Wenden Sie die erforderliche Konfiguration an, z. B. durch Konfigurieren von Befehlszeilenargumenten oder Bereitstellen einer
config
-Datei.
mTLS-Messwerterfassung aktivieren
Fügen Sie dem Abschnitt metadata
Ihrer benutzerdefinierten Ressource MonitoringTarget
das folgende Label hinzu, um die Erfassung verschlüsselter Messwerte zu aktivieren:
monitoring.gdc.goog/enable-mtls: "true"
Die benutzerdefinierte Ressource muss wie im folgenden Beispiel aussehen:
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:
[...]
Prüfen Sie, ob die benutzerdefinierte Ressource MonitoringTarget
den Status Ready
für das Zertifikat und das Zertifikatssecret anzeigt, wie im folgenden Beispiel:
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