Questa pagina descrive i passaggi per creare un'autorità di certificazione (CA) principale in Google Distributed Cloud (GDC) air-gapped.
Un'autorità di certificazione 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 quindi l'attendibilità dell'infrastruttura PKI stessa.
Prima di iniziare
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 API Management, assicurati di disporre delle seguenti risorse:
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_KUBECONFIG
in 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
CertificateAuthority
e 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_ENABLED
Sostituisci 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 specificato, i valori consentiti sono serverAuth
eclientAuth
.KEY_ALGORITHYM L'algoritmo della chiave privata utilizzato per questo certificato. I valori consentiti sono RSA
,Ed25519
oECDSA
. Se le dimensioni non vengono fornite, il valore predefinito è 256 perECDSA
e 2048 perRSA
. La dimensione della chiave viene ignorata perEd25519
.KEY_SIZE Le dimensioni, in bit, della chiave privata per questo certificato dipendono dall'algoritmo. RSA
consente 2048, 3072, 4096 o 8192 (valore predefinito 2048).ECDSA
consente 256, 384 o 521 (256 per impostazione predefinita).Ed25519
ignora le dimensioni.ACME_ENABLED Se impostato su true
, CA viene eseguito 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_KUBECONFIG
Sostituisci
MANAGEMENT_API_SERVER_KUBECONFIG
con 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" }
Elenco delle 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