Le composant de surveillance de l'appareil Google Distributed Cloud (GDC) avec air gap vous permet de chiffrer et d'authentifier les métriques d'application en transit à l'aide du protocole mTLS (mutual Transport Layer Security). La configuration de mTLS sur une ressource personnalisée MonitoringTarget permet de vérifier l'identité de votre serveur de métriques et de votre pipeline de surveillance afin de sécuriser la collecte de métriques sur les charges de travail du projet.
Avant de commencer
Pour gérer les ressources personnalisées MonitoringTarget, demandez les autorisations nécessaires à votre administrateur.
Rôles IAM requis
Contactez l'administrateur IAM de votre projet pour demander les rôles suivants :
- Créateur de MonitoringTarget (
monitoringtarget-creator) : crée des ressources personnaliséesMonitoringTargetdans l'espace de noms du projet. - Éditeur MonitoringTarget (
monitoringtarget-editor) : permet de modifier ou de supprimer des ressources personnaliséesMonitoringTargetdans l'espace de noms du projet. - Lecteur MonitoringTarget (
monitoringtarget-viewer) : permet d'afficher les ressources personnaliséesMonitoringTargetdans 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 :
- Déployez votre serveur de métriques.
- Collectez des métriques à partir de vos charges de travail.
Assurez-vous que votre ressource personnalisée
MonitoringTargetaffiche l'étatReady, 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: ReadyInterrogez 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 objetDeploymentouStatefulSet.CONTAINER_NAME: nom du conteneur auquel vous ajoutez l'installation du volume.MONITORING_TARGET_NAME: nom de votre ressource personnaliséeMonitoringTarget. Le nom du secret est basé sur ce nom. Par exemple, une ressourcemy-mon-targetcrée un nom de secretmy-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 qui ne vous appartiennent pas : 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