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 les communications 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 d'identité et d'accès 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 d'administrateur VPN (
vpn-admin). - Lecteur VPN : dispose d'autorisations de lecture sur toutes les ressources associées au VPN. Demandez à votre administrateur d'organisation IAM de vous attribuer le rôle de 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 | base64Transmettez l'entrée aléatoire via une fonction de hachage, telle que
sha256:Sous Linux :
head -c 4096 /dev/urandom | sha256sum | cut -b1-32Sous 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 kubeconfig du serveur d'API zonal. Si vous n'avez pas encore généré de fichier kubeconfig pour le serveur d'API dans votre zone cible, consultez Se connecter pour en savoir plus.PSK_NAME: nom de la clé PSK.PSK: valeur de la clé PSK.