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.