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) air-gapped 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, en 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 obtenir les autorisations nécessaires pour gérer les ressources personnalisées MonitoringTarget
, demandez à votre administrateur IAM de l'organisation ou du projet de vous accorder l'un des rôles MonitoringTarget
associés.
Selon le niveau d'accès et les autorisations dont vous avez besoin, vous pouvez obtenir des rôles de créateur, d'éditeur ou de lecteur pour cette ressource dans une organisation ou un projet. Pour en savoir plus, consultez Préparer les autorisations IAM.
Après avoir obtenu les autorisations nécessaires, suivez ces étapes 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
MonitoringTarget
affiche 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: Ready
Interrogez et affichez les métriques dans les tableaux de bord pour confirmer 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 point de 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 objetDeployment
ouStatefulSet
.CONTAINER_NAME
: nom du conteneur auquel vous ajoutez le montage de volume.MONITORING_TARGET_NAME
: nom de votre ressource personnaliséeMonitoringTarget
. Le nom du secret est basé sur ce nom. Par exemple, une ressourcemy-mon-target
crée un nom secretmy-mon-target-cert
.
Livrer des métriques
Votre serveur de métriques doit diffuser des métriques à partir d'un serveur HTTP compatible avec 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 des métriques mTLS
Ajoutez le libellé suivant à la section metadata
de votre ressource personnalisée MonitoringTarget
pour activer la collecte de 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, assurez-vous 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