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.