Questa pagina descrive i passaggi per creare un'autorità di certificazione (CA) radice in Google Distributed Cloud (GDC) air-gapped.
Una CA radice, che si trova in cima alla gerarchia dell'infrastruttura a chiave pubblica (PKI), stabilisce l'ancora di attendibilità 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à dell'infrastruttura PKI stessa.
Prima di iniziare
Prima di poter creare un'autorità di certificazione radice, assicurati di disporre delle autorizzazioni richieste e di un file kubeconfig.
Autorizzazioni obbligatorie
Per ottenere le autorizzazioni necessarie per creare un'autorità di certificazione radice, chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Amministratore del servizio di certificazione (certificate-authority-service-admin). Per ulteriori informazioni sui ruoli, consulta
Definizioni dei ruoli.
Recupera il file kubeconfig
Per eseguire comandi sul server dell'API Management, procedi nel seguente modo:
Accedi e genera il file kubeconfig per il server API Management se non ne hai uno.
Utilizza il percorso del file kubeconfig del server API di gestione per sostituire
MANAGEMENT_API_SERVER_KUBECONFIGin queste istruzioni.
Crea un'autorità di certificazione radice
Per creare una CA radice, applica una risorsa personalizzata all'istanza Distributed Cloud air-gapped.
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 radice. 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. SECRET_NAME Il nome del secret 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 L'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 Stati o province da utilizzare nel certificato. STREET_ADDRESSES Indirizzi da utilizzare sul certificato. POSTAL_CODES I 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 le dimensioni non vengono fornite, il valore predefinito è 256 perECDSAe 2048 perRSA. La dimensione della chiave viene ignorata perEd25519.KEY_SIZE Le dimensioni, in bit, della chiave privata per questo certificato dipendono dall'algoritmo. RSAconsente 2048, 3072, 4096 o 8192 (valore predefinito 2048).ECDSAconsente 256, 384 o 521 (256 per impostazione predefinita).Ed25519ignora le dimensioni.ACME_ENABLED Se impostato su true, 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 all'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 Management.Verifica la disponibilità della CA radice. In genere, sono necessari circa 40 minuti prima che l'autorità di certificazione 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 air-gapped, procedi nel seguente modo:
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