HSM 보호 키를 Managed HSM으로 가져오기(BYOK)

Azure Key Vault 관리되는 HSM은 온-프레미스 HSM(하드웨어 보안 모듈)에서 생성된 키 가져오기를 지원합니다. 키는 HSM 보호 경계를 벗어날 수 없습니다. 이 시나리오를 흔히 BYOK(Bring Your Own Key)라고 합니다. 관리되는 HSM은 Marvell LiquidSecurity HSM 어댑터(FIPS 140-2 수준 3 유효성 검사됨)를 사용하여 키를 보호합니다.

이 문서의 정보를 참조하여 관리되는 HSM에서 사용할 고유의 HSM 보호 키를 계획하고 생성하고 전송할 수 있습니다.

참고 항목

이 기능은 21Vianet에서 운영하는 Microsoft Azure에서 사용할 수 없습니다. 이 가져오기 방법은 지원되는 HSM에만 사용할 수 있습니다.

자세한 내용 및 관리되는 HSM 사용 시작에 대한 자습서는 관리되는 HSM이란?을 참조하세요.

개요

다음은 프로세스의 개요입니다. 구체적인 단계는 이 문서의 뒷부분에서 설명합니다.

  • 관리되는 HSM에서 키(KEK(‘키 교환 키’)라고 함)를 생성합니다. KEK는 import 키 작업만 포함하는 RSA-HSM 키여야 합니다.
  • KEK 공개 키를 .pem 파일로 다운로드합니다.
  • KEK 공개 키를 온-프레미스 HSM에 연결된 오프라인 컴퓨터로 전송합니다.
  • 오프라인 컴퓨터에서, HSM 공급업체에서 제공한 BYOK 도구를 사용하여 BYOK 파일을 만듭니다.
  • 대상 키는 KEK로 암호화되며, Managed HSM으로 전송될 때까지 암호화 상태로 유지됩니다. 암호화된 버전의 키만 온-프레미스 HSM을 벗어납니다.
  • Managed HSM 내에 생성되는 KEK는 내보낼 수 없습니다. HSM은 관리되는 HSM 외부에 KEK의 일반 버전이 없다는 규칙을 적용합니다.
  • KEK는 대상 키를 가져올 관리되는 HSM과 동일한 관리되는 HSM에 있어야 합니다.
  • BYOK 파일이 관리되는 HSM에 업로드되면 관리되는 HSM은 KEK 프라이빗 키를 사용하여 대상 키 자료를 암호 해독하고 HSM 키로 가져옵니다. 이 작업은 완전히 HSM 내에서 수행됩니다. 대상 키는 항상 HSM 보호 경계에 남아 있습니다.

필수 조건

이 문서에서 Azure CLI 명령을 사용하려면 다음 항목이 있어야 합니다.

Azure Cloud Shell

Azure는 브라우저를 통해 사용할 수 있는 대화형 셸 환경인 Azure Cloud Shell을 호스트합니다. Cloud Shell에서 Bash 또는 PowerShell을 사용하여 Azure 서비스 작업을 수행할 수 있습니다. 로컬 환경에 아무 것도 설치할 필요 없이 Azure Cloud Shell의 미리 설치된 명령을 사용하여 이 문서의 코드를 실행할 수 있습니다.

Azure Cloud Shell을 시작하려면 다음을 수행합니다.

옵션 예제/링크
코드 또는 명령 블록의 오른쪽 상단에서 시도를 선택합니다. 시도를 선택해도 코드 또는 명령이 Cloud Shell에 자동으로 복사되지 않습니다. Screenshot that shows an example of Try It for Azure Cloud Shell.
https://shell.azure.com으로 이동하거나 Cloud Shell 시작 단추를 선택하여 브라우저에서 Cloud Shell을 엽니다. Button to launch Azure Cloud Shell.
Azure Portal의 오른쪽 위에 있는 메뉴 모음에서 Cloud Shell 단추를 선택합니다. Screenshot that shows the Cloud Shell button in the Azure portal

Azure Cloud Shell을 사용하려면:

  1. Cloud Shell을 시작합니다.

  2. 코드 블록(또는 명령 블록)에서 복사 단추를 선택하여 코드 또는 명령을 복사합니다.

  3. Windows 및 Linux에서 Ctrl+Shift+V를 선택하거나 macOS에서 Cmd+Shift+V를 선택하여 코드 또는 명령을 Cloud Shell 세션에 붙여넣습니다.

  4. Enter를 선택하여 코드 또는 명령을 실행합니다.

CLI를 사용하여 Azure에 로그인하려면 다음을 입력합니다.

az login

CLI를 통한 로그인 옵션에 대한 자세한 내용은 Azure CLI로 로그인을 살펴보세요.

지원되는 HSM

공급업체 이름 공급업체 유형 지원되는 HSM 모델 자세한 정보
Cryptomathic ISV(엔터프라이즈 키 관리 시스템) 다음을 포함한 여러 HSM 브랜드 및 모델
  • nCipher
  • Thales
  • Utimaco
자세한 내용은 Cryptomathic 사이트 참조
Entrust 제조업체,
서비스로 제공되는 HSM
  • HSM의 nShield 제품군
  • 서비스로 제공되는 nShield
nCipher 새 BYOK 도구 및 설명서
Fortanix 제조업체,
서비스로 제공되는 HSM
  • SDKMS(자체 방어 키 관리 서비스)
  • Equinix SmartKey
BYOK용 클라우드 공급자에게 SDKMS 키 내보내기 - Azure Key Vault
IBM 제조업체 IBM 476x, CryptoExpress IBM Enterprise Key Management Foundation
Marvell 제조업체 다음을 사용하는 모든 LiquidSecurity HSM
  • 펌웨어 버전 2.0.4 이상
  • 펌웨어 버전 3.2 이상
Marvell BYOK 도구 및 설명서
Securosys SA 제조업체, 서비스로 제공되는 HSM Primus HSM 제품군, Securosys 클라우드 HSM Primus BYOK 도구 및 설명서
StorMagic ISV(엔터프라이즈 키 관리 시스템) 다음을 포함한 여러 HSM 브랜드 및 모델
  • Utimaco
  • Thales
  • nCipher
자세한 내용은 StorMagic 사이트를 참조하세요.
SvKMS 및 Azure Key Vault BYOK
Thales 제조업체
  • 펌웨어 버전 7.3 이상을 사용하는 Luna HSM 7 제품군
Luna BYOK 도구 및 설명서
Utimaco 제조업체,
서비스로 제공되는 HSM
u.trust Anchor, CryptoServer Utimaco BYOK 도구 및 통합 가이드

지원되는 키 유형

키 이름 키 유형 키 크기/곡선 기원 설명
KEK(키 교환 키) RSA-HSM 2048비트
3072비트
4096비트
관리형 HSM 관리되는 HSM에서 생성된 HSM 지원 RSA 키 쌍
대상 키
RSA-HSM 2048비트
3072비트
4096비트
공급업체 HSM 관리되는 HSM으로 전송할 키
EC-HSM P-256
P-384
P-521
공급업체 HSM 관리되는 HSM으로 전송할 키
대칭 키(oct-hsm) 128비트
192비트
256비트
공급업체 HSM 관리되는 HSM으로 전송할 키

키를 생성하여 관리되는 HSM으로 전송

키를 생성하여 관리되는 HSM으로 전송하려면 다음을 수행합니다.

1단계: KEK 생성

KEK는 관리되는 HSM에서 생성되는 RSA 키입니다. KEK는 가져오려는 키(대상 키)를 암호화하는 데 사용됩니다.

KEK는 다음과 같아야 합니다.

  • RSA HSM 키(2048비트, 3072비트 또는 4096비트)이어야 함
  • 대상 키를 가져오려는 관리되는 HSM과 동일한 관리되는 HSM에서 생성되어야 함
  • 허용되는 키 작업이 import로 설정된 상태에서 만들어야 함

참고 항목

KEK의 유일하게 허용되는 키 작업은 'import'여야 합니다. 'import'는 다른 모든 키 작업과 상호 배타적 관계입니다.

az keyvault key create 명령을 사용하여 키 작업이 import로 설정된 KEK를 만듭니다. 다음 명령에서 반환된 키 식별자(kid)를 기록해 둡니다. (3단계에서 kid 값을 사용합니다.)

az keyvault key create --kty RSA-HSM --size 4096 --name KEKforBYOK --ops import --hsm-name ContosoKeyVaultHSM

2단계: KEK 퍼블릭 키 다운로드

az keyvault key download 명령을 사용하여 KEK 공개 키를 .pem 파일로 다운로드합니다. 가져오는 대상 키는 KEK 공개 키를 사용하여 암호화됩니다.

az keyvault key download --name KEKforBYOK --hsm-name ContosoKeyVaultHSM --file KEKforBYOK.publickey.pem

KEKforBYOK.publickey.pem 파일을 오프라인 컴퓨터로 전송합니다. 다음 단계에서 이 파일이 필요합니다.

3단계: 전송할 키 생성 및 준비

HSM 공급업체의 설명서를 참조하여 BYOK 도구를 다운로드하고 설치합니다. HSM 공급업체의 지침에 따라 대상 키를 생성한 다음, 키 전송 패키지(BYOK 파일)를 만듭니다. BYOK 도구는 1단계kid2단계에서 다운로드한 KEKforBYOK.publickey.pem 파일을 사용하여 BYOK 파일에 암호화된 대상 키를 생성합니다.

BYOK 파일을 연결된 컴퓨터로 전송합니다.

참고 항목

RSA 1024비트 키를 가져오는 것은 지원되지 않습니다. EC-HSM P256K 키 가져오기가 지원됩니다.

알려진 문제: Luna HSM에서 RSA 4K 대상 키 가져오기는 펌웨어 7.4.0 이상에서만 지원됩니다.

4단계: 관리되는 HSM으로 키 전송

키 가져오기를 완료하려면 연결이 끊어진 컴퓨터의 키 전송 패키지(BYOK 파일)를 인터넷에 연결된 컴퓨터로 전송합니다. az keyvault key import 명령을 사용하여 BYOK 파일을 관리되는 HSM에 업로드합니다.

az keyvault key import --hsm-name ContosoKeyVaultHSM --name ContosoFirstHSMkey --byok-file KeyTransferPackage-ContosoFirstHSMkey.byok

업로드가 성공하면 가져온 키의 속성이 Azure CLI에 표시됩니다.

다음 단계

이제 관리되는 HSM에서 이 HSM 보호 키를 사용할 수 있습니다. 자세한 내용은 가격 및 기능 비교를 참조하세요.