PSK로 보안 비밀 만들기

이 페이지에서는 사전 공유 키 (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 키의 값입니다.

다음 단계