Todos os dados de métricas precisam ser criptografados em trânsito para garantir a segurança. O componente de monitoramento do Google Distributed Cloud (GDC) com isolamento físico fornece criptografia e autenticação em trânsito por meio do Transport Layer Security (mTLS) mútuo. O método mTLS verifica a identidade de ambas as partes em uma conexão de rede, confirmando que elas são quem afirmam ser.
Nesta página, explicamos como configurar o mTLS para o servidor de métricas.
Antes de começar
Para gerenciar recursos personalizados do MonitoringTarget, é preciso ter as permissões necessárias.
Solicitar papéis da organização do IAM
Entre em contato com o admin. da organização do IAM para solicitar os seguintes papéis:
- Criador de PA do MonitoringTarget (
monitoringtarget-pa-creator): cria recursos personalizadosMonitoringTarget. - Editor de PA do MonitoringTarget (
monitoringtarget-pa-editor): edita ou modifica recursos personalizadosMonitoringTarget. - Leitor de PA do MonitoringTarget (
monitoringtarget-pa-viewer): confira os recursos personalizados doMonitoringTarget.
Solicitar papéis do IAM para o projeto
Entre em contato com o administrador do projeto do IAM para solicitar os seguintes papéis:
- Editor do MonitoringTarget (
monitoringtarget-editor): editar ou modificar recursos personalizadosMonitoringTargetno namespace do projeto. - Leitor do MonitoringTarget (
monitoringtarget-viewer): visualizar recursos personalizadosMonitoringTargetno namespace do projeto.
Depois de receber as permissões necessárias, conclua estas etapas antes de ativar a criptografia de métricas:
- Implante o servidor de métricas.
- Coletar métricas das cargas de trabalho.
Verifique se o recurso personalizado
MonitoringTargetmostra um statusReady, como no exemplo a seguir: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 visualize métricas em painéis para confirmar se o servidor de métricas está enviando os dados esperados.
Montar o certificado
Sua carga de trabalho precisa usar um certificado gerado automaticamente quando
você ativa o mTLS no recurso personalizado MonitoringTarget. Adicione um volume e uma montagem de volume para esse certificado usando 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:
SERVICE_NAME: o nome do objetoDeploymentouStatefulSet.CONTAINER_NAME: o nome do contêiner em que você está adicionando a montagem de volume.MONITORING_TARGET_NAME: o nome do recurso personalizadoMonitoringTarget. O nome do secret é baseado nesse nome. Por exemplo, um recursomy-mon-targetcria um nome de secretmy-mon-target-cert.
Exibir métricas
O servidor de métricas precisa exibir métricas de um servidor HTTP com mTLS ativado. Talvez você queira criptografar métricas em um dos dois cenários a seguir:
- Para aplicativos de sua propriedade: modifique o código-fonte para oferecer suporte ao mTLS e configure o servidor de métricas com o certificado mTLS.
- Para aplicativos que não são seus: consulte a documentação do aplicativo
para ativar um endpoint de métricas HTTPS. Aplique a configuração necessária, como
configurar argumentos de linha de comando ou implantar um arquivo
config.
Ativar a coleta de métricas de mTLS
Adicione o rótulo a seguir à seção metadata do recurso personalizado MonitoringTarget para ativar a coleta de métricas criptografadas:
monitoring.gdc.goog/enable-mtls: "true"
O recurso personalizado precisa ser semelhante ao exemplo a seguir:
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 se você ativou a autenticação mTLS, confira se o recurso personalizado MonitoringTarget mostra um status Ready para o certificado e o secret do certificado, como no exemplo a seguir:
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