Questo documento descrive i passaggi per creare un'autorità di certificazione radice (CA) in Google Distributed Cloud (GDC) con air gap.
Una CA principale, che si trova in cima alla gerarchia dell'infrastruttura a chiave pubblica (PKI), stabilisce il trust anchor per la PKI. Per utilizzare i certificati all'interno di una PKI, i dispositivi, il software e i componenti devono considerare attendibile la CA radice. Questa configurazione garantisce l'attendibilità di tutti i certificati emessi dalla CA radice, consentendo così l'attendibilità della PKI stessa.
Questo documento è rivolto ai gruppi di operatori di applicazioni, come sviluppatori di applicazioni o data scientist, che gestiscono i cicli di vita dei certificati all'interno del loro progetto. Per saperne di più, consulta la documentazione sui segmenti di pubblico per GDC con air gap.
Prima di iniziare
Prima di poter creare un'autorità di certificazione radice, devi richiedere le autorizzazioni necessarie e preparare l'ambiente.
Richiedi ruoli IAM
Per creare, aggiornare ed eliminare un'autorità di certificazione radice, contatta l'amministratore dell'organizzazione IAM per richiedere il ruolo Certificate Authority Service Admin (certificate-authority-service-admin).
prepara l'ambiente
Scarica e installa l'interfaccia a riga di comando gdcloud, se non l'hai ancora fatto.
Genera un file kubeconfig per configurare l'accesso a
kubectl.
Crea un'autorità di certificazione radice
Per creare una CA radice, applica una risorsa personalizzata alla tua istanza Distributed Cloud con air gap.
Crea una risorsa
CertificateAuthoritye salvala come file YAML denominatoroot-ca.yaml:apiVersion: pki.security.gdc.goog/v1 kind: CertificateAuthority metadata: name: ROOT_CA_NAME namespace: USER_PROJECT_NAMESPACE spec: caProfile: commonName: COMMON_NAME duration: DURATION renewBefore: RENEW_BEFORE organizations: - ORGANIZATION organizationalUnits: - ORGANIZATIONAL_UNITS countries: - COUNTRIES localities: - LOCALTIES provinces: - PROVINCES streetAddresses: - STREET_ADDRESSES postalCodes: - POSTAL_CODES caCertificate: selfSignedCA: {} certificateProfile: keyUsage: - digitalSignature - keyCertSign - crlSign extendedKeyUsage: - EXTENDED_KEY_USAGE secretConfig: secretName: SECRET_NAME privateKeyConfig: algorithm: KEY_ALGORITHM size: KEY_SIZE acme: enabled: ACME_ENABLEDSostituisci le seguenti variabili:
Variabile Descrizione ROOT_CA_NAME Il nome della CA principale. USER_PROJECT_NAMESPACE Il nome dello spazio dei nomi in cui si trova il progetto utente. COMMON_NAME Il nome comune del certificato CA. DURATION La durata richiesta del certificato CA. Specifica una durata in ore (ad esempio, 1000h). Unità come giorni (d) o anni (y) non sono supportate.SECRET_NAME Il nome del secret di Kubernetes che contiene la chiave privata e il certificato CA firmato. Le seguenti variabili sono valori facoltativi:
Variabile Descrizione RENEW_BEFORE Il tempo di rotazione prima della scadenza del certificato CA. ORGANIZATION Organizzazione da utilizzare nel certificato. ORGANIZATIONAL_UNITS Unità organizzative da utilizzare nel certificato. COUNTRIES Paesi da utilizzare nel certificato. LOCALITIES Città da utilizzare nel certificato. PROVINCES Stato o provincia da utilizzare nel certificato. STREET_ADDRESSES Indirizzi da utilizzare nel certificato. POSTAL_CODES Codici postali da utilizzare nel certificato. EXTENDED_KEY_USAGE L'utilizzo esteso della chiave per il certificato. Se specificati, i valori consentiti sono serverAutheclientAuth.KEY_ALGORITHYM L'algoritmo della chiave privata utilizzato per questo certificato. I valori consentiti sono RSA,Ed25519oECDSA. Se la dimensione non viene fornita, il valore predefinito è 256 perECDSAe 2048 perRSA. La dimensione della chiave viene ignorata perEd25519.KEY_SIZE La dimensione, in bit, della chiave privata per questo certificato dipende dall'algoritmo. RSAconsente 2048, 3072, 4096 o 8192 (valore predefinito 2048).ECDSAconsente 256, 384 o 521 (valore predefinito 256).Ed25519ignora le dimensioni.ACME_ENABLED Se impostato su true, la CA viene eseguita in modalità ACME e restituisce l'URL del server ACME. Puoi quindi utilizzare il client e il protocollo ACME per gestire i certificati.Applica la risorsa personalizzata alla tua istanza Distributed Cloud:
kubectl apply -f root-ca.yaml –kubeconfig MANAGEMENT_API_SERVER_KUBECONFIGSostituisci
MANAGEMENT_API_SERVER_KUBECONFIGcon il percorso del file kubeconfig del server API di gestione.Verifica l'idoneità della CA radice. In genere, sono necessari circa 40 minuti affinché la CA sia pronta:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG -n USER_PROJECT_NAMESPACE get certificateauthority.pki.security.gdc.goog/ROOT_CA_NAME -ojson | jq -r ' .status.conditions[] | select( .type as $id | "Ready" | index($id))L'output è simile al seguente:
{ "lastTransitionTime": "2025-01-24T17:09:19Z", "message": "CA reconciled", "observedGeneration": 2, "reason": "Ready", "status": "True", "type": "Ready" }
Elenca le CA
Per elencare tutte le risorse di Certificate Authority Service nella tua istanza Distributed Cloud con air gap, segui questi passaggi:
Utilizza il parametro certificateauthorities per elencare tutte le risorse CertificateAuthority:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG -n USER_PROJECT_NAMESPACE get certificateauthorities
L'output è simile al seguente:
NAMESPACE NAME READY REASON AGE
foo root-ca True Ready 7h24m
foo sub-ca True Ready 7h24m