Messwerte aus Ihren Anwendungen verschlüsseln

Alle Messwertdaten müssen bei der Übertragung verschlüsselt werden, um die Sicherheit zu gewährleisten. Die Monitoring-Komponente der Air-Gap-Appliance von Google Distributed Cloud (GDC) bietet In-Transit-Verschlüsselung und Authentifizierung über Mutual Transport Layer Security (mTLS). Bei 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.

Hinweis

Wenn Sie benutzerdefinierte MonitoringTarget-Ressourcen verwalten möchten, bitten Sie Ihren Administrator um die erforderlichen Berechtigungen.

Erforderliche IAM-Rollen

Wenden Sie sich an Ihren Projekt-IAM-Administrator, um die folgenden Rollen anzufordern:

  • MonitoringTarget Creator (monitoringtarget-creator):Erstellt benutzerdefinierte MonitoringTarget-Ressourcen im Projekt-Namespace.
  • MonitoringTarget Editor (monitoringtarget-editor): Bearbeiten oder löschen Sie benutzerdefinierte MonitoringTarget-Ressourcen im Projekt-Namespace.
  • MonitoringTarget Viewer (monitoringtarget-viewer): MonitoringTarget-Benutzerressourcen im Projekt-Namespace ansehen.

Nachdem Sie die erforderlichen Berechtigungen erhalten haben, führen Sie die folgenden Schritte aus, bevor Sie die Verschlüsselung von Messwerten aktivieren:

  1. Stellen Sie Ihren Messwertserver bereit.
  2. Messwerte aus Ihren Arbeitslasten erfassen.
  3. Prüfen Sie, ob für Ihre benutzerdefinierte MonitoringTarget-Ressource der Status Ready 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
    
  4. 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 Ihres Deployment- oder StatefulSet-Objekts.
  • CONTAINER_NAME: Der Name des Containers, dem Sie die Volumebereitstellung hinzufügen.
  • MONITORING_TARGET_NAME: der Name Ihrer benutzerdefinierten Ressource MonitoringTarget. Der Secret-Name basiert auf diesem Namen. Beispiel: Eine my-mon-target-Ressource erstellt einen my-mon-target-cert-Secret-Namen.

Messwerte bereitstellen

Ihr Messwertserver muss Messwerte von einem mTLS-fähigen HTTP-Server bereitstellen. In den folgenden beiden Fällen kann es sinnvoll sein, Messwerte zu 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.

Erfassung von mTLS-Messwerten 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