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.