Tutti i dati delle metriche devono essere criptati in transito per garantire la sicurezza. Il componente di monitoraggio di Google Distributed Cloud (GDC) air-gapped fornisce la crittografia in transito e l'autenticazione tramite mTLS (mutual Transport Layer Security). 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:
- Esegui il deployment del server delle metriche.
- Raccogli le metriche dai tuoi workload.
Assicurati che la risorsa personalizzata
MonitoringTarget
mostri lo statoReady
, 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
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'oggettoDeployment
oStatefulSet
.CONTAINER_NAME
: il nome del container in cui aggiungi il montaggio del volume.MONITORING_TARGET_NAME
: il nome della risorsa personalizzataMonitoringTarget
. Il nome del secret si basa su questo nome. Ad esempio, una risorsamy-mon-target
crea un nome secretmy-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