Encripte as métricas das suas aplicações

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 personalizados MonitoringTarget.
  • MonitoringTarget PA Editor (monitoringtarget-pa-editor): edite ou modifique recursos personalizados MonitoringTarget.
  • MonitoringTarget PA Viewer (monitoringtarget-pa-viewer): veja recursos personalizados MonitoringTarget.

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 personalizados MonitoringTarget no espaço de nomes do projeto.
  • MonitoringTarget Viewer (monitoringtarget-viewer): veja recursos personalizados MonitoringTarget no 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:

  1. Implemente o servidor de métricas.
  2. Recolha métricas das cargas de trabalho.
  3. Certifique-se de que o recurso personalizado MonitoringTarget apresenta o estado Ready, 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: Ready
    
  4. Consulte 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 objeto Deployment ou StatefulSet.
  • CONTAINER_NAME: o nome do contentor onde está a adicionar a montagem de volume.
  • MONITORING_TARGET_NAME: o nome do recurso personalizado MonitoringTarget. O nome do secret baseia-se neste nome. Por exemplo, um recurso my-mon-target cria um nome de secret my-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