이 페이지에서는 사전 공유 키 (PSK)를 생성하고 해당 PSK를 사용하여 인증 보안 비밀을 만드는 방법을 설명합니다.
PSK는 두 기기 간의 통신을 인증하고 암호화하는 데 사용되는 공유 비밀번호입니다. 대칭 암호화의 한 형태입니다.
시작하기 전에
보안 비밀을 만들려면 필요한 ID 및 액세스 역할이 있어야 합니다.
- VPN 관리자: 모든 VPN 관련 리소스에 대한 읽기 및 쓰기 권한이 있습니다. 조직 IAM 관리자에게 VPN 관리자 (
vpn-admin
) 역할을 부여해 달라고 요청하세요. - VPN 뷰어: 모든 VPN 관련 리소스에 대한 읽기 권한이 있습니다. 조직 IAM 관리자에게 VPN 뷰어 (
vpn-viewer
) 역할을 부여해 달라고 요청하세요. - 자세한 내용은 역할 정의를 참고하세요.
PSK 생성
다음 방법을 사용하여 강력한 32자 사전 공유 키를 생성합니다.
OpenSSL
OpenSSL에 관한 자세한 내용은 https://www.openssl.org/를 참고하세요. Linux 또는 macOS 시스템에서 다음 OpenSSL 명령어를 실행합니다.
openssl rand -base64 24
/dev/urandom
또한 Linux 또는 macOS 시스템에서 /dev/urandom
을 의사 무작위 소스로 사용하여 사전 공유 키를 생성할 수 있습니다.
Linux 또는 macOS에서 무작위 입력을
base64
로 전송합니다.head -c 24 /dev/urandom | base64
sha256
과 같은 해싱 함수를 통해 무작위 입력을 전달합니다.Linux의 경우:
head -c 4096 /dev/urandom | sha256sum | cut -b1-32
macOS의 경우:
head -c 4096 /dev/urandom | openssl sha256 | cut -b1-32
자바스크립트
W3C 웹 암호화 API와 함께 JavaScript를 사용하여 문서에서 사전 공유 키를 직접 생성합니다. 자세한 내용은 https://www.w3.org/TR/WebCryptoAPI/#Crypto-method-getRandomValues를 참고하세요.
이 API는 https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues에 자세히 설명된 Crypto.getRandomValues()
메서드를 사용하며, 이 메서드는 암호적으로 올바른 방법으로 사전 공유 키를 생성합니다.
다음 코드에서는 24개의 무작위 바이트 배열을 생성한 후 base64가 해당 바이트를 인코딩하여 무작위 32자 문자열을 생성합니다.
var a = new Uint8Array(24);
window.crypto.getRandomValues(a);
console.log(btoa(String.fromCharCode.apply(null, a)));
보안 비밀 만들기
플랫폼 네임스페이스에 PSK 키가 있는 보안 비밀을 만듭니다.
kubectl --kubeconfig MANAGEMENT_API_SERVER create secret -n platform generic PSK_NAME --from-literal=psk=PSK
다음을 바꿉니다.
MANAGEMENT_API_SERVER
: 영역 API 서버의 kubeconfig 경로입니다. 타겟 영역의 API 서버용 kubeconfig 파일을 아직 생성하지 않은 경우 로그인에서 자세한 내용을 확인하세요.PSK_NAME
: PSK 키의 이름입니다.PSK
: PSK 키의 값입니다.