Criptare le metriche delle tue applicazioni

Tutti i dati delle metriche devono essere criptati in transito per garantire la sicurezza. Il componente di monitoraggio dell'appliance con air gap di Google Distributed Cloud (GDC) fornisce la crittografia in transito e l'autenticazione tramite TLS (Transport Layer Security) reciproco (mTLS). Il metodo mTLS verifica l'identità di entrambe le parti in una connessione di rete, confermando che sono chi dichiarano di essere.

Questa pagina spiega come configurare mTLS per il server delle metriche.

Prima di iniziare

Per ottenere le autorizzazioni necessarie per gestire le risorse personalizzate MonitoringTarget, chiedi all'amministratore IAM dell'organizzazione o all'amministratore IAM del progetto di concederti uno dei ruoli MonitoringTarget associati.

A seconda del livello di accesso e delle autorizzazioni di cui hai bisogno, potresti ottenere i ruoli di creatore, editor o visualizzatore per questa risorsa in un'organizzazione o in un progetto. Per maggiori informazioni, vedi Preparare le autorizzazioni IAM.

Dopo aver ottenuto le autorizzazioni necessarie, completa questi passaggi prima di attivare la crittografia delle metriche:

  1. Esegui il deployment del server delle metriche.
  2. Raccogli le metriche dai tuoi workload.
  3. Assicurati che la risorsa personalizzata MonitoringTarget mostri lo stato Ready, come nell'esempio seguente:

    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. Esegui query e visualizza le metriche nelle dashboard per verificare che il server delle metriche invii i dati previsti.

Monta il certificato

Il tuo carico di lavoro deve utilizzare un certificato generato automaticamente quando abiliti mTLS sulla risorsa personalizzata MonitoringTarget. Aggiungi un volume e un montaggio del volume per questo certificato utilizzando il seguente modello:

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"
  [...]

Sostituisci quanto segue:

  • SERVICE_NAME: il nome dell'oggetto Deployment o StatefulSet.
  • CONTAINER_NAME: il nome del container in cui aggiungi il montaggio del volume.
  • MONITORING_TARGET_NAME: il nome della risorsa personalizzata MonitoringTarget. Il nome del secret si basa su questo nome. Ad esempio, una risorsa my-mon-target crea un nome secret my-mon-target-cert.

Metriche di pubblicazione

Il server delle metriche deve pubblicare le metriche da un server HTTP abilitato a mTLS. Potresti voler criptare le metriche in uno dei due scenari seguenti:

  • Per le applicazioni di tua proprietà: modifica il codice sorgente per supportare mTLS e configura il server delle metriche con il certificato mTLS.
  • Per le applicazioni di cui non sei proprietario: consulta la documentazione dell'applicazione per abilitare un endpoint delle metriche HTTPS. Applica la configurazione necessaria, ad esempio configurando gli argomenti della riga di comando o eseguendo il deployment di un file config.

Abilita la raccolta delle metriche mTLS

Aggiungi la seguente etichetta alla sezione metadata della risorsa personalizzata MonitoringTarget per attivare la raccolta delle metriche criptate:

monitoring.gdc.goog/enable-mtls: "true"

La risorsa personalizzata deve essere simile all'esempio seguente:

  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:
    [...]

Per verificare di aver attivato l'autenticazione mTLS, controlla che la risorsa personalizzata MonitoringTarget mostri lo stato Ready per il certificato e il secret del certificato, come nell'esempio seguente:

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