Todos los datos de métricas deben encriptarse en tránsito para garantizar la seguridad. El componente de supervisión de Google Distributed Cloud (GDC) aislado proporciona encriptación y autenticación en tránsito a través de la seguridad mutua de la capa de transporte (mTLS). El método de mTLS verifica la identidad de ambas partes en una conexión de red y confirma que son quienes dicen ser.
En esta página, se explica cómo configurar mTLS para tu servidor de métricas.
Antes de comenzar
Para obtener los permisos que necesitas para administrar recursos personalizados de MonitoringTarget
, pídele al administrador de IAM de la organización o al administrador de IAM del proyecto que te otorgue uno de los roles de MonitoringTarget
asociados.
Según el nivel de acceso y los permisos que necesites, es posible que obtengas roles de creador, editor o visualizador para este recurso en una organización o un proyecto. Para obtener más información, consulta Prepara los permisos de IAM.
Después de obtener los permisos necesarios, completa estos pasos antes de habilitar el cifrado de métricas:
- Implementa tu servidor de métricas.
- Recopila métricas de tus cargas de trabajo.
Asegúrate de que tu recurso personalizado de
MonitoringTarget
muestre el estadoReady
, como en el siguiente ejemplo:apiVersion: monitoring.gdc.goog/v1 kind: MonitoringTarget [...] status: conditions: - lastTransitionTime: "2023-10-27T15:27:51Z" message: "" observedGeneration: 1 reason: Ready status: True type: Ready
Consulta y visualiza las métricas en los paneles para confirmar que tu servidor de métricas envía los datos esperados.
Cómo activar el certificado
Tu carga de trabajo debe usar un certificado que se genere automáticamente cuando habilites mTLS en el recurso personalizado MonitoringTarget
. Agrega un volumen y un volumen de activación para este certificado con la siguiente plantilla:
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"
[...]
Reemplaza lo siguiente:
SERVICE_NAME
: Es el nombre de tu objetoDeployment
oStatefulSet
.CONTAINER_NAME
: Es el nombre del contenedor en el que agregarás el volumen de activación.MONITORING_TARGET_NAME
: Es el nombre de tu recurso personalizado deMonitoringTarget
. El nombre del secreto se basa en este nombre. Por ejemplo, un recursomy-mon-target
crea un nombre de secretomy-mon-target-cert
.
Métricas de publicación
Tu servidor de métricas debe entregar métricas desde un servidor HTTP habilitado para mTLS. Es posible que desees encriptar las métricas en una de las siguientes dos situaciones:
- Para las aplicaciones que te pertenecen: Modifica el código fuente para admitir mTLS y configura el servidor de métricas con el certificado mTLS.
- Para las aplicaciones que no son de tu propiedad: Consulta la documentación de la aplicación para habilitar un extremo de métricas HTTPS. Aplica la configuración necesaria, como configurar argumentos de línea de comandos o implementar un archivo
config
.
Habilita la recopilación de métricas de mTLS
Agrega la siguiente etiqueta a la sección metadata
de tu recurso personalizado MonitoringTarget
para habilitar la recopilación de métricas encriptadas:
monitoring.gdc.goog/enable-mtls: "true"
El recurso personalizado debe verse como el siguiente ejemplo:
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:
[...]
Para verificar que habilitaste la autenticación mTLS, comprueba que tu recurso personalizado MonitoringTarget
muestre un estado Ready
para el certificado y el secreto del certificado, como en el siguiente ejemplo:
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