Messwerte aus Ihren Anwendungen verschlüsseln

Mit der Monitoring-Komponente von Google Distributed Cloud (GDC) mit Air Gap können Sie Anwendungsmesswerte während der Übertragung mithilfe von mTLS (Mutual Transport Layer Security) verschlüsseln und authentifizieren. Wenn Sie mTLS für eine benutzerdefinierte MonitoringTarget-Ressource konfigurieren, wird die Identität Ihres Messwertservers und Ihrer Monitoring-Pipeline überprüft, um die Messwerterfassung für alle Projektarbeitslasten zu sichern.

Hinweis

Zum Verwalten von benutzerdefinierten MonitoringTarget-Ressourcen benötigen Sie die erforderlichen Berechtigungen.

IAM-Organisationsrollen anfordern

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

  • MonitoringTarget PA Creator (monitoringtarget-pa-creator): Erstellt benutzerdefinierte MonitoringTarget-Ressourcen.
  • MonitoringTarget PA Editor (monitoringtarget-pa-editor): Bearbeiten oder ändern Sie benutzerdefinierte MonitoringTarget-Ressourcen.
  • MonitoringTarget PA Viewer (monitoringtarget-pa-viewer): Zum Aufrufen von benutzerdefinierten MonitoringTarget-Ressourcen.

IAM-Projektrollen anfordern

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

  • MonitoringTarget-Bearbeiter (monitoringtarget-editor): Bearbeiten oder ändern Sie benutzerdefinierte MonitoringTarget-Ressourcen im Projekt-Namespace.
  • MonitoringTarget Viewer (monitoringtarget-viewer): Benutzerdefinierte MonitoringTarget-Ressourcen 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 den Messwertserver bereit.
  2. Messwerte aus Ihren Arbeitslasten erfassen
  3. Achten Sie darauf, dass die benutzerdefinierte Ressource MonitoringTarget den Status Ready hat, 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. Fragen Sie Messwerte ab und rufen Sie sie auf Dashboards auf, um zu prüfen, ob Ihr Messwertserver die erwarteten Daten sendet.

Zertifikat bereitstellen

Ihre Arbeitslast muss ein Zertifikat verwenden, das automatisch generiert wird, wenn Sie mTLS für die benutzerdefinierte Ressource MonitoringTarget 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 Volume-Bereitstellung hinzufügen.
  • MONITORING_TARGET_NAME: der Name Ihrer benutzerdefinierten MonitoringTarget-Ressource. Der Secret-Name basiert auf diesem Namen. Eine my-mon-target-Ressource erstellt beispielsweise einen Secret-Namen my-mon-target-cert.

Messwerte bereitstellen

Ihr Messwertserver muss Messwerte von einem mTLS-fähigen HTTP-Server bereitstellen. In den folgenden beiden Szenarien 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 Messwertserver mit dem mTLS-Zertifikat.
  • Für Anwendungen, die nicht Ihnen gehören: Lesen Sie die Dokumentation der Anwendung, um einen HTTPS-Messwertendpunkt zu aktivieren. 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 mTLS-Authentifizierung aktiviert ist. Dazu muss die benutzerdefinierte Ressource MonitoringTarget den Status Ready für das Zertifikat und das Zertifikats-Secret anzeigen, 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