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 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 VPN. Pídele al administrador de IAM de la organización que te otorgue el rol de administrador de VPN (vpn-admin).
  • Visualizador de VPN: Tiene permisos de lectura en todos los recursos relacionados con 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 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 con la API de criptografía web W3C. Para obtener más información, consulta https://www.w3.org/TR/WebCryptoAPI/#Crypto-method-getRandomValues.

Esta API usa el Crypto.getRandomValues() método 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 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 kubeconfig del servidor de la API zonal. Si aún no generaste un archivo kubeconfig para el servidor de la API en tu zona de destino, consulta Accede para obtener más detalles.
  • PSK_NAME: Es el nombre de la clave PSK.
  • PSK: Es el valor de la clave PSK.

¿Qué sigue?