Todos os dados de métricas têm de ser encriptados em trânsito para garantir a segurança. O componente de monitorização do Google Distributed Cloud (GDC) air-gapped oferece encriptação e autenticação em trânsito através do Transport Layer Security (mTLS) mútuo. O método mTLS valida a identidade de ambas as partes numa ligação de rede, confirmando que são quem dizem ser.
Esta página explica como configurar o mTLS para o servidor de métricas.
Antes de começar
Para gerir os recursos personalizados MonitoringTarget, tem de ter as autorizações necessárias.
Peça as funções de IAM da organização
Contacte o administrador de IAM da organização para pedir as seguintes funções:
- MonitoringTarget PA Creator (
monitoringtarget-pa-creator): crie recursos personalizadosMonitoringTarget. - MonitoringTarget PA Editor (
monitoringtarget-pa-editor): edite ou modifique recursos personalizadosMonitoringTarget. - MonitoringTarget PA Viewer (
monitoringtarget-pa-viewer): veja recursos personalizadosMonitoringTarget.
Peça as funções de IAM do projeto
Contacte o administrador de IAM do projeto para pedir as seguintes funções:
- MonitoringTarget Editor (
monitoringtarget-editor): edite ou modifique recursos personalizadosMonitoringTargetno espaço de nomes do projeto. - MonitoringTarget Viewer (
monitoringtarget-viewer): veja recursos personalizadosMonitoringTargetno espaço de nomes do projeto.
Depois de receber as autorizações necessárias, conclua estes passos antes de ativar a encriptação de métricas:
- Implemente o servidor de métricas.
- Recolha métricas das cargas de trabalho.
Certifique-se de que o recurso personalizado
MonitoringTargetapresenta o estadoReady, como no exemplo seguinte:apiVersion: monitoring.gdc.goog/v1 kind: MonitoringTarget [...] status: conditions: - lastTransitionTime: "2023-10-27T15:27:51Z" message: "" observedGeneration: 1 reason: Ready status: True type: ReadyConsulte e veja métricas em painéis de controlo para confirmar que o servidor de métricas está a enviar os dados esperados.
Monte o certificado
A carga de trabalho tem de usar um certificado gerado automaticamente quando ativa o mTLS no recurso personalizado MonitoringTarget. Adicione um volume e uma montagem de volume para este certificado com o seguinte modelo:
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"
[...]
Substitua o seguinte:
SERVICE_NAME: o nome do objetoDeploymentouStatefulSet.CONTAINER_NAME: o nome do contentor onde está a adicionar a montagem de volume.MONITORING_TARGET_NAME: o nome do recurso personalizadoMonitoringTarget. O nome do secret baseia-se neste nome. Por exemplo, um recursomy-mon-targetcria um nome de secretmy-mon-target-cert.
Publique métricas
O servidor de métricas tem de publicar métricas a partir de um servidor HTTP com mTLS ativado. Pode querer encriptar métricas num dos dois cenários seguintes:
- Para aplicações que lhe pertencem: modifique o código fonte para suportar o mTLS e configure o servidor de métricas com o certificado mTLS.
- Para aplicações que não lhe pertencem: consulte a documentação da aplicação
para ativar um ponto final de métricas HTTPS. Aplique a configuração necessária, como configurar argumentos da linha de comandos ou implementar um ficheiro
config.
Ative a recolha de métricas mTLS
Adicione a seguinte etiqueta à secção metadata do recurso personalizado MonitoringTarget para ativar a recolha de métricas encriptadas:
monitoring.gdc.goog/enable-mtls: "true"
O recurso personalizado tem de ter o seguinte aspeto:
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 confirmar que ativou a autenticação mTLS, verifique se o recurso personalizado MonitoringTarget apresenta o estado Ready para o certificado e o secret do certificado, como no exemplo seguinte:
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