Crea il secret con una chiave precondivisa

Questa pagina descrive come generare una chiave precondivisa (PSK) e utilizzarla per creare un segreto di autenticazione.

Una PSK è una password segreta condivisa che viene utilizzata per autenticare e criptare la comunicazione tra due dispositivi. È una forma di crittografia simmetrica.

Prima di iniziare

Per creare un secret, devi disporre dei ruoli di identità e accesso necessari:

  • Amministratore VPN: dispone delle autorizzazioni di lettura e scrittura su tutte le risorse correlate alla VPN. Chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Amministratore VPN (vpn-admin).
  • Visualizzatore VPN: dispone di autorizzazioni di lettura su tutte le risorse correlate alla VPN. Chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Visualizzatore VPN (vpn-viewer).
  • Per ulteriori informazioni, vedi Definizioni dei ruoli.

Generare una PSK

Utilizza i seguenti metodi per generare una chiave precondivisa efficace di 32 caratteri.

OpenSSL

Per saperne di più su OpenSSL, visita la pagina https://www.openssl.org/. Su un sistema Linux o macOS, esegui il seguente comando OpenSSL:

openssl rand -base64 24

/dev/urandom

Su un sistema Linux o macOS, puoi anche utilizzare /dev/urandom come origine pseudocasuale per generare una chiave precondivisa:

  • Su Linux o macOS, invia l'input casuale a base64:

    head -c 24 /dev/urandom | base64
    
  • Passa l'input casuale attraverso una funzione di hashing, ad esempio sha256:

    • Su Linux:

      head -c 4096 /dev/urandom | sha256sum | cut -b1-32
      
    • In macOS:

      head -c 4096 /dev/urandom | openssl sha256 | cut -b1-32
      

JavaScript

Genera la chiave precondivisa direttamente in un documento utilizzando JavaScript con l'API W3C Web Cryptography. Per ulteriori informazioni, visita la pagina https://www.w3.org/TR/WebCryptoAPI/#Crypto-method-getRandomValues.

Questa API utilizza il metodo Crypto.getRandomValues() descritto qui: https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues che fornisce un modo crittograficamente valido per generare una chiave precondivisa.

Il seguente codice crea un array di 24 byte casuali, quindi codifica in base64 questi byte per produrre una stringa casuale di 32 caratteri:

  var a = new Uint8Array(24);
  window.crypto.getRandomValues(a);

  console.log(btoa(String.fromCharCode.apply(null, a)));

Crea il secret

Crea un secret con una chiave PSK nello spazio dei nomi della piattaforma:

kubectl --kubeconfig MANAGEMENT_API_SERVER create secret -n platform generic PSK_NAME --from-literal=psk=PSK

Sostituisci quanto segue:

  • MANAGEMENT_API_SERVER: il percorso kubeconfig del server API zonale. Se non hai ancora generato un file kubeconfig per il server API nella zona di destinazione, consulta Accedi per i dettagli.
  • PSK_NAME: il nome della chiave PSK.
  • PSK: il valore della chiave PSK.

Passaggi successivi