Aggiungere CA personalizzate al bundle di attendibilità del sistema

Questa pagina spiega come aggiungere certificati di autorità di certificazione (CA) personalizzati al bundle di attendibilità del sistema all'interno di Google Distributed Cloud (GDC) con air gap. Un trust bundle è una raccolta di CA attendibili che i servizi della tua organizzazione utilizzano per verificare l'identità di altri servizi. Aggiungendo le tue CA personalizzate, puoi controllare quali certificati sono considerati attendibili dalla tua organizzazione, consentendo connessioni sicure alle tue risorse interne e ad altri endpoint attendibili.

Questa pagina spiega come aggiungere CA personalizzate al bundle di attendibilità del sistema trust-store-root-ext. Quando modifichi il trust bundle trust-store-root-ext, le modifiche vengono propagate automaticamente al bundle trust-store-global-root-ext, rendendo le tue CA personalizzate disponibili in tutte le zone.

Questa pagina è rivolta ai membri del gruppo di amministratori della piattaforma (ad esempio gli amministratori IT) che devono gestire e proteggere le risorse della propria organizzazione all'interno di GDC. Per saperne di più, consulta la documentazione relativa ai segmenti di pubblico per GDC con air gap.

Prima di iniziare

Per aggiungere certificati CA personalizzati al trust bundle di sistema, devi richiedere le autorizzazioni necessarie e preparare l'ambiente.

Richiedi ruoli IAM

Per creare, leggere, aggiornare ed eliminare i secret, contatta l'amministratore dell'organizzazione IAM per richiedere il ruolo Trust Store Admin (trust-store-admin).

prepara l'ambiente

Genera un file kubeconfig

Completa i passaggi seguenti per generare il file kubeconfig per il cluster dell'infrastruttura dell'organizzazione e impostarlo come variabile KUBECONFIG da utilizzare in un secondo momento.

  1. Visualizza tutte le zone disponibili:

    gdcloud zones list
    

    Prendi nota del nome della zona che ospita la tua risorsa personalizzata.

  2. Imposta la variabile di ambiente ZONE sulla zona che ospita il cluster dell'infrastruttura dell'organizzazione:

    export ZONE="ZONE"
    

    Sostituisci ZONE con il nome della zona.

  3. Imposta la variabile di ambiente ORG_INFRA_CLUSTER:

    export ORG_INFRA_CLUSTER="ORG_NAME-infra"
    

    Sostituisci ORG_NAME con il nome della tua organizzazione, ad esempio org-1.

  4. Genera il file kubeconfig del cluster dell'infrastruttura dell'organizzazione per la zona di destinazione e convalida le credenziali:

    export KUBECONFIG=${HOME}/${ORG_INFRA_CLUSTER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${ORG_INFRA_CLUSTER:?} --zone ${ZONE:?}
    [[ $(kubectl config current-context) == *${ORG_INFRA_CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    Il comando rm ${KUBECONFIG:?} rimuove il file kubeconfig esistente nella home directory. Quando generi un nuovo file kubeconfig, questo sovrascrive quello esistente. Se non vuoi sovrascrivere o rimuovere il file esistente, esegui il backup in un'altra posizione sicura.

Aggiungi CA personalizzate al bundle di attendibilità del sistema

Per aggiungere CA personalizzate al bundle di attendibilità del sistema trust-store-root-ext, devi preparare la risorsa CA personalizzata e poi applicarla al cluster dell'infrastruttura dell'organizzazione.

  1. Imposta la variabile di ambiente per il file PEM della CA personalizzata:

    export CUSTOM_CA_PEM_FILE=CUSTOM_CA_PEM_FILE
    

    Sostituisci CUSTOM_CA_PEM_FILE con il percorso del file contenente i certificati CA personalizzati, codificati in formato PEM.

  2. Codifica i certificati CA utilizzando base64:

    export ENCODED_CA=$(cat "${CUSTOM_CA_PEM_FILE:?}" | base64 -w 0)
    
  3. Crea il file YAML del secret (custom-ca.yaml) che ha come target il bundle di attendibilità del sistema trust-store-root-ext:

    cat > custom-ca.yaml <<EOF
    apiVersion: v1
    kind: Secret
    metadata:
      annotations:
        security.private.gdc.goog/bundles: trust-store-root-ext
      name: custom-ca
      namespace: cert-manager
    data:
      ca.crt: ${ENCODED_CA:?}
    EOF
    

    Di seguito è riportato un esempio di file custom-ca.yaml:

    apiVersion: v1
    kind: Secret
    metadata:
      annotations:
        security.private.gdc.goog/bundles: trust-store-root-ext
      name: custom-ca
      namespace: cert-manager
    data:
       ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSU...LQWZRSUE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
    
  4. Applica il secret al cluster dell'infrastruttura dell'organizzazione utilizzando il comando kubectl:

     kubectl apply -f custom-ca.yaml --kubeconfig ${KUBECONFIG:?}
    

    Questo passaggio rende le tue CA personalizzate disponibili per i servizi GDC aggiornando automaticamente i bundle di attendibilità trust-store-root-ext e trust-store-global-root-ext.

Verifica che le CA siano disponibili

Verifica che le CA personalizzate siano state aggiunte al bundle di attendibilità:

  1. Scarica l'ultima versione del bundle di attendibilità trust-store-root-ext seguendo i passaggi descritti in Recupera i bundle di attendibilità GDC.

    Se vuoi recuperare le CA personalizzate da una zona diversa, utilizza il bundle di attendibilità trust-store-global-root-ext.

  2. Apri il file del bundle di attendibilità scaricato e verifica che sia presente ogni certificato CA personalizzato specificato da CUSTOM_CA_PEM_FILE.

    Cerca ogni certificato CA personalizzato singolarmente. L'ordine in cui vengono visualizzati può variare e non è garantito che vengano visualizzati alla fine dell'elenco.

    Di seguito è riportato un esempio di trust-store-root-ext:

    -----BEGIN CERTIFICATE-----
    MIIC8DCCAdigAwIBAgIQPLOPa...
    -----END CERTIFICATE-----
    ... other CAs ...
    -----BEGIN CERTIFICATE-----
       < Imported CA data>
    -----END CERTIFICATE-----
    ... other CAs ...
    -----BEGIN CERTIFICATE-----
    MIIDAzCCAeugAwIBAgIRAIV2...
    -----END CERTIFICATE-----