En esta página, se describe cómo generar una clave precompartida (PSK) y usarla para crear un secreto de autenticación.
Una PSK es una contraseña secreta compartida que se usa para autenticar y encriptar la comunicación entre dos dispositivos. Es una forma de encriptación simétrica.
Antes de comenzar
Para crear un secreto, debes tener los roles de identidad y acceso necesarios:
- Administrador de VPN: Tiene permisos de lectura y escritura en todos los recursos relacionados con la VPN. Pídele al administrador de IAM de tu organización que te otorgue el rol de administrador de VPN (
vpn-admin
). - Visualizador de VPN: Tiene permisos de lectura para todos los recursos relacionados con la VPN. Pídele al administrador de IAM de la organización que te otorgue el rol de visualizador de VPN (
vpn-viewer
). - Para obtener más información, consulta Definiciones de roles.
Genera una PSK
Usa los siguientes métodos para generar una clave precompartida segura de 32 caracteres.
OpenSSL
Para obtener más información sobre OpenSSL, consulta https://www.openssl.org/. En un sistema Linux o macOS, ejecuta el siguiente comando de OpenSSL:
openssl rand -base64 24
/dev/urandom
En un sistema Linux o macOS, también puedes usar /dev/urandom
como fuente seudoaleatoria para generar una clave precompartida:
En Linux o macOS, envía la entrada aleatoria a
base64
:head -c 24 /dev/urandom | base64
Pasa la entrada aleatoria a través de una función de hash, como
sha256
:En Linux:
head -c 4096 /dev/urandom | sha256sum | cut -b1-32
En macOS:
head -c 4096 /dev/urandom | openssl sha256 | cut -b1-32
JavaScript
Genera la clave precompartida directamente en un documento con JavaScript y la API de Web Cryptography de W3C. Para obtener más información, consulta https://www.w3.org/TR/WebCryptoAPI/#Crypto-method-getRandomValues
Esta API usa el método Crypto.getRandomValues()
que se detalla aquí: https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues, que proporciona una forma criptográfica segura de generar una clave precompartida.
Con el siguiente código, se crea un array de 24 bytes aleatorios y, luego, se codifican en base64 para producir una string aleatoria de 32 caracteres:
var a = new Uint8Array(24);
window.crypto.getRandomValues(a);
console.log(btoa(String.fromCharCode.apply(null, a)));
Crea el secreto
Crea un secreto con una clave de PSK en el espacio de nombres de la plataforma:
kubectl --kubeconfig MANAGEMENT_API_SERVER create secret -n platform generic PSK_NAME --from-literal=psk=PSK
Reemplaza lo siguiente:
MANAGEMENT_API_SERVER
: Es la ruta de acceso de kubeconfig del servidor de la API zonal. Si aún no generaste un archivo kubeconfig para el servidor de la API en la zona de destino, consulta Accede para obtener más detalles.PSK_NAME
: Es el nombre de la clave de PSK.PSK
: Es el valor de la clave de PSK.