Chiffrer les métriques de vos applications

Toutes les données de métriques doivent être chiffrées en transit pour garantir la sécurité. Le composant de surveillance de Google Distributed Cloud (GDC) avec air gap fournit un chiffrement et une authentification en transit via le protocole mTLS (mutual Transport Layer Security). La méthode mTLS vérifie l'identité des deux parties d'une connexion réseau, confirmant qu'elles sont bien celles qu'elles prétendent être.

Cette page explique comment configurer mTLS pour votre serveur de métriques.

Avant de commencer

Pour gérer les ressources personnalisées MonitoringTarget, vous devez disposer des autorisations nécessaires.

Demander des rôles IAM au niveau de l'organisation

Contactez l'administrateur de l'organisation IAM pour demander les rôles suivants :

  • Créateur de PA MonitoringTarget (monitoringtarget-pa-creator) : crée des ressources personnalisées MonitoringTarget.
  • Éditeur de PA MonitoringTarget (monitoringtarget-pa-editor) : modifier des ressources personnalisées MonitoringTarget.
  • Lecteur MonitoringTarget PA (monitoringtarget-pa-viewer) : permet d'afficher les ressources personnalisées MonitoringTarget.

Demander des rôles IAM au niveau du projet

Contactez l'administrateur de projet IAM pour demander les rôles suivants :

  • Éditeur MonitoringTarget (monitoringtarget-editor) : permet de modifier les ressources personnalisées MonitoringTarget dans l'espace de noms du projet.
  • Lecteur MonitoringTarget (monitoringtarget-viewer) : permet d'afficher les ressources personnalisées MonitoringTarget dans l'espace de noms du projet.

Après avoir obtenu les autorisations nécessaires, procédez comme suit avant d'activer le chiffrement des métriques :

  1. Déployez votre serveur de métriques.
  2. Collectez des métriques à partir de vos charges de travail.
  3. Assurez-vous que votre ressource personnalisée MonitoringTarget affiche l'état Ready, comme dans l'exemple suivant :

    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. Interrogez et affichez les métriques sur les tableaux de bord pour vérifier que votre serveur de métriques envoie les données attendues.

Installer le certificat

Votre charge de travail doit utiliser un certificat généré automatiquement lorsque vous activez mTLS sur la ressource personnalisée MonitoringTarget. Ajoutez un volume et un montage de volume pour ce certificat à l'aide du modèle suivant :

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"
  [...]

Remplacez les éléments suivants :

  • SERVICE_NAME : nom de votre objet Deployment ou StatefulSet.
  • CONTAINER_NAME : nom du conteneur auquel vous ajoutez l'installation du volume.
  • MONITORING_TARGET_NAME : nom de votre ressource personnalisée MonitoringTarget. Le nom du secret est basé sur ce nom. Par exemple, une ressource my-mon-target crée un nom de secret my-mon-target-cert.

Livrer des métriques

Votre serveur de métriques doit diffuser des métriques à partir d'un serveur HTTP compatible mTLS. Vous pouvez chiffrer les métriques dans l'un des deux scénarios suivants :

  • Pour les applications dont vous êtes propriétaire : modifiez le code source pour qu'il soit compatible avec mTLS et configurez le serveur de métriques avec le certificat mTLS.
  • Pour les applications dont vous n'êtes pas propriétaire : consultez la documentation de l'application pour activer un point de terminaison de métriques HTTPS. Appliquez la configuration nécessaire, par exemple en configurant des arguments de ligne de commande ou en déployant un fichier config.

Activer la collecte de métriques mTLS

Ajoutez l'étiquette suivante à la section metadata de votre ressource personnalisée MonitoringTarget pour activer la collecte des métriques chiffrées :

monitoring.gdc.goog/enable-mtls: "true"

La ressource personnalisée doit ressembler à l'exemple suivant :

  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:
    [...]

Pour vérifier que vous avez activé l'authentification mTLS, vérifiez que votre ressource personnalisée MonitoringTarget affiche l'état Ready pour le certificat et le secret du certificat, comme dans l'exemple suivant :

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