Crea el secreto con una PSK

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 cifrar la comunicación entre dos dispositivos. Es una forma de cifrado simétrico.

Antes de empezar

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 VPN. Pídele al administrador de gestión de identidades y accesos de tu organización que te conceda el rol de administrador de VPN (vpn-admin).
  • Lector de VPN: tiene permisos de lectura en todos los recursos relacionados con VPN. Pide al administrador de gestión de identidades y accesos de tu organización que te conceda el rol de lector de VPN (vpn-viewer).
  • Para obtener más información, consulta Definiciones de roles.

Generar una PSK

Utiliza 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 por una función de cifrado 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 mediante JavaScript con la API 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 describe en https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues, que proporciona una forma criptográficamente segura de generar una clave precompartida.

El siguiente código crea una matriz de 24 bytes aleatorios y, a continuación, codifica esos bytes en base64 para generar una cadena 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 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

Haz los cambios siguientes:

  • MANAGEMENT_API_SERVER: la ruta de kubeconfig del servidor de la API zonal. Si aún no has generado un archivo kubeconfig para el servidor de la API en tu zona de destino, consulta Iniciar sesión para obtener más información.
  • PSK_NAME: el nombre de la clave PSK.
  • PSK: valor de la clave PSK.

Siguientes pasos