Todos os dados de métricas precisam ser criptografados em trânsito para garantir a segurança. O componente de monitoramento do appliance isolado do Google Distributed Cloud (GDC) oferece criptografia em trânsito e autenticação 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 são quem afirmam ser.
Nesta página, explicamos como configurar o mTLS para seu servidor de métricas.
Antes de começar
Para gerenciar recursos personalizados do MonitoringTarget, peça as permissões necessárias ao administrador.
Papéis necessários do IAM
Entre em contato com o administrador do IAM do projeto para solicitar os seguintes papéis:
- Criador de MonitoringTarget (
monitoringtarget-creator):cria recursos personalizadosMonitoringTargetno namespace do projeto. - Editor do MonitoringTarget (
monitoringtarget-editor): edite ou exclua recursos personalizadosMonitoringTargetno namespace do projeto. - Leitor do MonitoringTarget (
monitoringtarget-viewer): veja os recursos personalizadosMonitoringTargetno namespace do projeto.
Depois de receber as permissões necessárias, siga estas etapas antes de ativar a criptografia de métricas:
- Implante o servidor de métricas.
- Colete métricas das suas 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 veja 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 veicular métricas de um servidor HTTP habilitado para mTLS. Você pode 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 seguinte rótulo à 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