Halaman ini menjelaskan cara membuat pre-shared key (PSK) dan menggunakan PSK tersebut untuk membuat rahasia autentikasi.
PSK adalah sandi rahasia bersama yang digunakan untuk mengautentikasi dan mengenkripsi komunikasi antara dua perangkat. Ini adalah bentuk enkripsi simetris.
Sebelum memulai
Untuk membuat secret, Anda harus memiliki peran identitas dan akses yang diperlukan:
- Admin VPN: Memiliki izin baca dan tulis pada semua resource terkait VPN. Minta Admin IAM Organisasi Anda untuk memberi Anda peran VPN Admin (
vpn-admin
). - Pelihat VPN: Memiliki izin baca pada semua resource terkait VPN. Minta Admin IAM Organisasi Anda untuk memberi Anda peran VPN Viewer (
vpn-viewer
). - Untuk mengetahui informasi selengkapnya, lihat Definisi peran.
Membuat PSK
Gunakan metode berikut untuk membuat pre-shared key 32 karakter.
OpenSSL
Untuk mengetahui informasi selengkapnya tentang OpenSSL, lihat https://www.openssl.org/. Pada sistem Linux atau macOS, jalankan perintah OpenSSL berikut:
openssl rand -base64 24
/dev/urandom
Pada sistem Linux atau macOS, Anda juga dapat menggunakan /dev/urandom
sebagai sumber pseudorandom
untuk membuat pre-shared key:
Di Linux atau macOS, kirim input acak ke
base64
:head -c 24 /dev/urandom | base64
Teruskan input acak melalui fungsi hash, seperti
sha256
:Di Linux:
head -c 4096 /dev/urandom | sha256sum | cut -b1-32
Di macOS:
head -c 4096 /dev/urandom | openssl sha256 | cut -b1-32
JavaScript
Buat pre-shared key secara langsung dalam dokumen menggunakan JavaScript dengan W3C Web Cryptography API. Untuk mengetahui informasi selengkapnya, lihat https://www.w3.org/TR/WebCryptoAPI/#Crypto-method-getRandomValues
API ini menggunakan metode Crypto.getRandomValues()
yang dijelaskan di sini: https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues
yang memberikan cara kriptografi yang aman untuk membuat pre-shared key.
Kode berikut membuat array berisi 24 byte acak, kemudian base64 mengenkode byte tersebut untuk menghasilkan string 32 karakter acak:
var a = new Uint8Array(24);
window.crypto.getRandomValues(a);
console.log(btoa(String.fromCharCode.apply(null, a)));
Buat secret
Buat secret dengan kunci PSK di namespace platform:
kubectl --kubeconfig MANAGEMENT_API_SERVER create secret -n platform generic PSK_NAME --from-literal=psk=PSK
Ganti kode berikut:
MANAGEMENT_API_SERVER
: jalur kubeconfig server API zona. Jika Anda belum membuat file kubeconfig untuk server API di zona target, lihat Login untuk mengetahui detailnya.PSK_NAME
: Nama kunci PSK.PSK
: Nilai kunci PSK.