Créer le secret avec une clé secrète partagée

Cette page explique comment générer une clé pré-partagée (PSK) et l'utiliser pour créer un secret d'authentification.

Une PSK est un mot de passe secret partagé qui permet d'authentifier et de chiffrer la communication entre deux appareils. Il s'agit d'une forme de chiffrement symétrique.

Avant de commencer

Pour créer un secret, vous devez disposer des rôles Identity and Access Management nécessaires :

  • Administrateur VPN : dispose d'autorisations de lecture et d'écriture sur toutes les ressources liées au VPN. Demandez à votre administrateur IAM de l'organisation de vous attribuer le rôle Administrateur VPN (vpn-admin).
  • Lecteur VPN : dispose d'autorisations de lecture sur toutes les ressources liées au VPN. Demandez à votre administrateur IAM de l'organisation de vous attribuer le rôle Lecteur VPN (vpn-viewer).
  • Pour en savoir plus, consultez Définitions des rôles.

Générer une clé secrète

Utilisez les méthodes suivantes pour générer une clé prépartagée sécurisée de 32 caractères.

OpenSSL

Pour en savoir plus sur OpenSSL, consultez https://www.openssl.org/. Sur un système Linux ou macOS, exécutez la commande OpenSSL suivante :

openssl rand -base64 24

/dev/urandom

Sur un système Linux ou macOS, vous pouvez également utiliser /dev/urandom comme source pseudo-aléatoire pour générer une clé prépartagée :

  • Sous Linux ou macOS, envoyez l'entrée aléatoire à l'adresse base64 :

    head -c 24 /dev/urandom | base64
    
  • Transmettez l'entrée aléatoire via une fonction de hachage, telle que sha256 :

    • Sous Linux :

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

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

JavaScript

Générez la clé prépartagée directement dans un document à l'aide de JavaScript avec l'API W3C Web Cryptography. Pour en savoir plus, consultez https://www.w3.org/TR/WebCryptoAPI/#Crypto-method-getRandomValues.

Cette API utilise la méthode Crypto.getRandomValues() détaillée ici : https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues, qui permet de générer une clé prépartagée de manière cryptographique.

Le code suivant crée un tableau de 24 octets aléatoires, puis les encode en base64 pour produire une chaîne aléatoire de 32 caractères :

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

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

Créer le secret

Créez un secret avec une clé PSK dans l'espace de noms de la plate-forme :

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

Remplacez les éléments suivants :

  • MANAGEMENT_API_SERVER : chemin d'accès au fichier kubeconfig du serveur d'API zonal. Si vous n'avez pas encore généré de fichier kubeconfig pour le serveur d'API dans la zone cible, consultez Se connecter pour en savoir plus.
  • PSK_NAME : nom de la clé PSK.
  • PSK : valeur de la clé PSK.

Étapes suivantes