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 in Google Distributed Cloud (GDC) air-gapped. Un bundle di attendibilità è 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 la tua organizzazione considera attendibili, 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 bundle di attendibilità 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 gruppi di amministratori della piattaforma (ad esempio gli amministratori IT) che devono gestire e proteggere le risorse della propria organizzazione in GDC. Per saperne di più, consulta la sezione Pubblico della documentazione di GDC con air gap.

Prima di iniziare

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

Richiedere i ruoli IAM

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

Preparare l'ambiente

Generare un file kubeconfig

Completa i seguenti passaggi per generare il file kubeconfig per il cluster di 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 risorsa personalizzata.

  2. Imposta la variabile di ambiente ZONE sulla zona che ospita il cluster di 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 di 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.

Aggiungere 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 di 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 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 di 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.

Verificare che le CA siano disponibili

Verifica che le tue 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 Recuperare 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; 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-----