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 receber as permissões necessárias para gerenciar recursos personalizados do MonitoringTarget
, peça ao administrador do IAM da organização ou do projeto para conceder a você uma das funções associadas do MonitoringTarget
.
Dependendo do nível de acesso e das permissões necessárias, você pode receber papéis de criador, editor ou leitor para esse recurso em uma organização ou um projeto. Para mais informações, consulte Preparar permissões do IAM.
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
MonitoringTarget
mostra 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: Ready
Consulte e veja métricas nos 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 objetoDeployment
ouStatefulSet
.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-target
cria 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