Crie o segredo com uma PSK

Esta página descreve como gerar uma chave pré-partilhada (PSK) e usar essa PSK para criar um segredo de autenticação.

Uma PSK é uma palavra-passe secreta partilhada que é usada para autenticar e encriptar a comunicação entre dois dispositivos. É uma forma de encriptação simétrica.

Antes de começar

Para criar um segredo, tem de ter as funções de identidade e acesso necessárias:

  • Administrador de VPN: tem autorizações de leitura e escrita em todos os recursos relacionados com a VPN. Peça ao administrador de IAM da organização para lhe conceder a função de administrador de VPN (vpn-admin).
  • Visualizador de VPN: tem autorizações de leitura em todos os recursos relacionados com VPN. Peça ao administrador de IAM da organização para lhe conceder a função de leitor de VPN (vpn-viewer).
  • Para mais informações, consulte o artigo Definições de funções.

Gere uma PSK

Use os seguintes métodos para gerar uma chave pré-partilhada forte de 32 carateres.

OpenSSL

Para mais informações sobre o OpenSSL, consulte https://www.openssl.org/. Num sistema Linux ou macOS, execute o seguinte comando OpenSSL:

openssl rand -base64 24

/dev/urandom

Num sistema Linux ou macOS, também pode usar /dev/urandom como uma origem pseudoaleatória para gerar uma chave pré-partilhada:

  • No Linux ou macOS, envie a entrada aleatória para base64:

    head -c 24 /dev/urandom | base64
    
  • Transmita a entrada aleatória através de uma função de hash, como sha256:

    • Em Linux:

      head -c 4096 /dev/urandom | sha256sum | cut -b1-32
      
    • No macOS:

      head -c 4096 /dev/urandom | openssl sha256 | cut -b1-32
      

JavaScript

Gere a chave partilhada previamente diretamente num documento através de JavaScript com a API Web Cryptography do W3C. Para mais informações, consulte https://www.w3.org/TR/WebCryptoAPI/#Crypto-method-getRandomValues

Esta API usa o método detalhado aqui: https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues, que oferece uma forma criptograficamente segura de gerar uma chave pré-partilhada.Crypto.getRandomValues()

O código seguinte cria uma matriz de 24 bytes aleatórios e, em seguida, codifica esses bytes em base64 para produzir uma string aleatória de 32 carateres:

  var a = new Uint8Array(24);
  window.crypto.getRandomValues(a);

  console.log(btoa(String.fromCharCode.apply(null, a)));

Crie o segredo

Crie um segredo com uma chave PSK no espaço de nomes da plataforma:

kubectl --kubeconfig MANAGEMENT_API_SERVER create secret -n platform generic PSK_NAME --from-literal=psk=PSK

Substitua o seguinte:

  • MANAGEMENT_API_SERVER: o caminho do kubeconfig do servidor da API zonal. Se ainda não gerou um ficheiro kubeconfig para o servidor da API na sua zona segmentada, consulte Inicie sessão para ver detalhes.
  • PSK_NAME: o nome da chave PSK.
  • PSK: o valor da chave PSK.

O que se segue?