Condividi tramite


Autorità di certificazione personalizzata (CA) nel servizio Azure Kubernetes

L'autorità di certificazione personalizzata consente di aggiungere fino a 10 certificati con codifica base64 all'archivio attendibilità del nodo. Questa funzionalità è spesso necessaria quando è necessario che le ca siano presenti nel nodo, ad esempio quando ci si connette a un registro privato.

Questo articolo mostra come creare CA personalizzate e applicarle ai cluster del servizio Azure Kubernetes.

Prerequisiti

  • Una sottoscrizione di Azure. Se non hai una sottoscrizione di Azure, crea un account gratuito.
  • È necessaria l'interfaccia della riga di comando di Azure versione 2.72.0 o successiva installata e configurata. Per trovare la versione dell'interfaccia della riga di comando, esegui az --version. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.
  • Una stringa di certificato base64 encoded o un file di testo con certificato.

Limiti

  • I pool di nodi di Windows non sono supportati.
  • L'installazione di ca diverse nello stesso cluster non è supportata.

Installare le CA nel negozio di fiducia del nodo

  1. Creare un file contenente le CAs.

    Creare un file di testo contenente fino a 10 certificati separati da righe vuote. Quando questo file viene passato al cluster, questi certificati vengono installati negli archivi attendibili del nodo.

    File di testo di esempio:

        -----BEGIN CERTIFICATE-----
        cert1
        -----END CERTIFICATE-----
    
        -----BEGIN CERTIFICATE-----
        cert2
        -----END CERTIFICATE-----
    

    Prima di procedere al passaggio successivo, assicurarsi che nel file di testo non siano presenti spazi vuoti. Questi spazi vuoti genereranno un errore nel passaggio successivo, se non viene rimosso.

  2. Usa il az aks create o il az aks update per passare i certificati al cluster. Al termine dell'operazione, i certificati vengono installati negli archivi attendibili del nodo.

    • Installare i CA durante la creazione del cluster utilizzando il comando az aks create e specificando il tuo file di testo per il parametro --custom-ca-trust-certificates.

      az aks create \
          --resource-group <resource-group-name> \
          --name <cluster-name> \
          --node-count 2 \
          --custom-ca-trust-certificates FileWithCAs \
          --generate-ssh-keys
      
    • Installare i CA durante l'aggiornamento del cluster usando il comando az aks update e specificando il file di testo per il parametro --custom-ca-trust-certificates.

      az aks update \
          --resource-group <resource-group-name> \
          --name <cluster-name> \
          --custom-ca-trust-certificates <path-to-ca-file>
      

    Nota

    Questa operazione attiva un aggiornamento del modello per garantire che tutti i nodi esistenti abbiano le stesse CA installate per garantire un provisioning corretto. AKS crea nuovi nodi, scarica i nodi esistenti, li elimina e li sostituisce con nodi in cui è installato il nuovo set di CAs.

  3. Verificare che le CA siano installate.

Usare il az aks show comando per verificare che le ca siano installate.

az aks show -g <resource-group-name> -n <cluster-name> | grep securityProfile -A 4

L'output securityProfile deve includere i certificati di fiducia di CA personalizzati.

  "securityProfile": {
    "azureKeyVaultKms": null,
    "customCaTrustCertificates": [
        "values"

Risoluzione dei problemi

Errore di formattazione

L'aggiunta di certificati a un cluster può generare un errore se il file con i certificati non è formattato correttamente.

failed to decode one of SecurityProfile.CustomCATrustCertificates to PEM after base64 decoding

Se si verifica questo errore, verificare che il file di input non contenga nuove righe, spazi vuoti o dati diversi da quelli formattati correttamente, come illustrato nel file di esempio.

La funzionalità è abilitata e viene aggiunto il segreto con la CA; tuttavia le operazioni restituiscono l’errore Certificato X.509 firmato da autorità sconosciuta

Certificati formattati in modo non corretto passati nel segreto

Il servizio Azure Kubernetes richiede che i certificati passati nel segreto creato dall'utente siano formattati correttamente e base64 encoded. Assicurarsi che le CA passate siano codificate correttamente in base64 e che i file con CA non abbiano interruzioni di riga CR LF.

I certificati passati a --custom-ca-trust-certificates non devono essere base64 encoded.

Containerd non preleva nuovi certificati

Dalla shell del nodo eseguire systemctl restart containerd. Dopo il riavvio di containerd, il runtime del contenitore preleva i nuovi certificati.

Passaggi successivi

Per altre informazioni sulle procedure consigliate per la sicurezza del servizio Azure Kubernetes, vedere Procedure consigliate per la sicurezza e gli aggiornamenti del cluster nel servizio Azure Kubernetes (AKS).