Todos los datos de las 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 administrar los recursos personalizados de MonitoringTarget, debes tener los permisos necesarios.
Solicita roles de IAM de la organización
Comunícate con el administrador de la organización de IAM para solicitar los siguientes roles:
- Creador de PA de MonitoringTarget (
monitoringtarget-pa-creator): Crea recursos personalizados deMonitoringTarget. - Editor de PA de MonitoringTarget (
monitoringtarget-pa-editor): edita o modifica recursos personalizados deMonitoringTarget. - Visualizador de PA de MonitoringTarget (
monitoringtarget-pa-viewer): Permite ver recursos personalizados deMonitoringTarget.
Solicita roles de IAM para el proyecto
Comunícate con el administrador de proyectos de IAM para solicitar los siguientes roles:
- Editor de MonitoringTarget (
monitoringtarget-editor): Edita o modifica recursos personalizados deMonitoringTargeten el espacio de nombres del proyecto. - Visualizador de MonitoringTarget (
monitoringtarget-viewer): Visualiza los recursos personalizados deMonitoringTargeten el espacio de nombres del proyecto.
Después de obtener los permisos necesarios, completa estos pasos antes de habilitar la encriptación de métricas:
- Implementa tu servidor de métricas.
- Recopila métricas de tus cargas de trabajo.
Asegúrate de que tu recurso personalizado
MonitoringTargetmuestre un 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: ReadyConsulta y visualiza métricas en los paneles para confirmar que tu servidor de métricas envía los datos esperados.
Activa el certificado
Tu carga de trabajo debe usar un certificado que se genera automáticamente cuando
habilitas mTLS en el recurso personalizado MonitoringTarget. Agrega un volumen y
una activación de volumen 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 objetoDeploymentoStatefulSet.CONTAINER_NAME: Es el nombre del contenedor en el que agregarás la activación del volumen.MONITORING_TARGET_NAME: Es el nombre de tu recurso personalizadoMonitoringTarget. El nombre del Secret se basa en este nombre. Por ejemplo, un recursomy-mon-targetcrea un nombre de Secretmy-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 quieras encriptar las métricas en una de las siguientes dos situaciones:
- Para las aplicaciones de tu propiedad: Modifica el código fuente para que admita mTLS y configura el servidor de métricas con el certificado de 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 de 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