Criar o secret com uma PSK

Nesta página, descrevemos como gerar uma chave pré-compartilhada (PSK) e usá-la para criar um secret de autenticação.

Uma PSK é uma senha secreta compartilhada usada para autenticar e criptografar a comunicação entre dois dispositivos. É uma forma de criptografia simétrica.

Antes de começar

Para criar um secret, você precisa ter os papéis de identidade e acesso necessários:

  • Administrador da VPN: tem permissões de leitura e gravação em todos os recursos relacionados à VPN. Peça ao administrador do IAM da organização para conceder a você o papel de administrador de VPN (vpn-admin).
  • Leitor de VPN: tem permissões de leitura em todos os recursos relacionados à VPN. Peça ao administrador do IAM da organização para conceder a você o papel de leitor de VPN (vpn-viewer).
  • Para mais informações, consulte Definições de papéis.

Gerar um PSK

Use os métodos a seguir para gerar uma chave pré-compartilhada de 32 caracteres.

OpenSSL

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

openssl rand -base64 24

/dev/urandom

Em um sistema Linux ou macOS, é possível usar /dev/urandom como uma origem pseudoaleatória para gerar uma chave pré-compartilhada:

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

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

    • No 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 pré-compartilhada diretamente em um documento usando JavaScript com a API W3C Web Cryptography. Para mais informações, consulte https://www.w3.org/TR/WebCryptoAPI/#Crypto-method-getRandomValues

Essa API usa o método Crypto.getRandomValues() detalhado aqui: https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues, que fornece uma maneira segura quanto à criptografia de gerar uma chave pré-compartilhada.

O código a seguir cria uma matriz de 24 bytes aleatórios e, em seguida, o Base64 codifica esses bytes para produzir uma string aleatória de 32 caracteres:

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

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

Criar o secret

Crie um secret com uma chave PSK no namespace da plataforma:

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

Substitua:

  • MANAGEMENT_API_SERVER: o caminho do kubeconfig do servidor de API zonal. Se você ainda não gerou um arquivo kubeconfig para o servidor da API na zona de destino, consulte Fazer login para mais detalhes.
  • PSK_NAME: o nome da chave PSK.
  • PSK: o valor da chave PSK.

A seguir