전체 백업 및 복원과 선택적 키 복원

참고 항목

이 기능은 리소스 유형 관리형 HSM에 대해서만 사용할 수 있습니다.

관리형 HSM은 모든 키, 버전, 특성, 태그 및 역할 할당을 포함하여 HSM의 전체 내용에 대한 전체 백업을 만드는 것을 지원합니다. 백업은 HSM의 보안 도메인과 연결된 암호화 키를 사용하여 암호화됩니다.

백업은 데이터 평면 작업입니다. 백업 작업을 시작하는 호출자에게 dataAction Microsoft.KeyVault/managedHsm/backup/start/action을 수행할 수 있는 권한이 있어야 합니다.

다음 기본 제공 역할만 전체 백업을 수행할 수 있는 권한이 있습니다.

  • 관리형 HSM 관리자
  • 관리형 HSM 백업

전체 백업/복원을 실행하는 방법에는 두 가지가 있습니다.

  1. 관리형 HSM 서비스에 UAMI(사용자 할당 관리 ID)를 할당합니다. 스토리지 계정에 공용 네트워크 액세스 또는 프라이빗 네트워크 액세스 중 어떤 방식이 활성화되어 있는지에 관계없이 사용자가 할당한 관리 ID를 사용하여 MHSM을 백업하고 복원할 수 있습니다. 스토리지 계정이 프라이빗 엔드포인트 뒤에 있는 경우 UAMI 메서드는 신뢰할 수 있는 서비스 바이패스와 함께 작동하여 백업 및 복원을 허용합니다.
  2. 'crdw' 권한이 있는 스토리지 컨테이너 SAS 토큰 사용 스토리지 컨테이너 SAS 토큰을 사용하여 백업 및 복원하려면 스토리지 계정에 공용 네트워크 액세스를 사용하도록 설정해야 합니다.

전체 복원을 실행하려면 다음 정보를 제공해야 합니다.

  • HSM 이름 또는 URL
  • 스토리지 계정 이름
  • 스토리지 계정 Blob 스토리지 컨테이너
  • 'crdw' 권한이 있는 사용자 할당 관리 ID 또는 스토리지 컨테이너 SAS 토큰

Azure Cloud Shell

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

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

옵션 예제/링크
코드 또는 명령 블록의 오른쪽 상단에서 시도를 선택합니다. 시도를 선택해도 코드 또는 명령이 Cloud Shell에 자동으로 복사되지 않습니다. Azure Cloud Shell에 대한 사용 예제를 보여 주는 스크린샷
https://shell.azure.com으로 이동하거나 Cloud Shell 시작 단추를 선택하여 브라우저에서 Cloud Shell을 엽니다. Azure Cloud Shell을 시작하는 단추입니다.
Azure Portal의 오른쪽 위에 있는 메뉴 모음에서 Cloud Shell 단추를 선택합니다. Azure Portal의 Cloud Shell 단추를 보여 주는 스크린샷

Azure Cloud Shell을 사용하려면:

  1. Cloud Shell을 시작합니다.

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

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

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

사용자 할당 관리 ID를 사용하여 백업 및 복원하는 경우 필수 구성 요소:

  1. Azure CLI 버전 2.56.0 이상이 있는지 확인합니다. az --version을 실행하여 버전을 찾습니다. 설치 또는 업그레이드가 필요한 경우, Azure CLI 설치를 참조하세요.
  2. 사용자 할당 관리형 ID를 만듭니다.
  3. 스토리지 계정을 만들거나 기존 스토리지 계정을 사용합니다.
  4. 스토리지 계정에서 공용 네트워크 액세스가 사용하지 않도록 설정된 경우 "예외" 아래의 "네트워킹" 탭에서 스토리지 계정에 대해 신뢰할 수 있는 서비스 무시를 사용하도록 설정합니다.
  5. 포털의 "Access Control" 탭 -> 역할 할당 추가로 이동하여 2단계에서 만들어진 사용자가 할당한 관리 ID에 "스토리지 Blob 데이터 기여자" 역할 액세스 권한을 제공합니다. 그런 다음, "관리 ID"를 선택하고 2단계 -> 검토 + 할당에서 만든 관리 ID를 선택합니다.
  6. 관리형 HSM을 만들고 아래 명령으로 관리 ID를 연결합니다.
    az keyvault create --hsm-name mhsmdemo2 –l mhsmlocation -- retention-days 7 --administrators "initialadmin" --mi-user-assigned "/subscriptions/subid/resourcegroups/mhsmrgname/providers/Microsoft.ManagedIdentity/userAssignedIdentities/userassignedidentitynamefromstep2" 
    

기존 관리형 HSM이 있는 경우 아래 명령으로 MHSM을 업데이트하여 관리 ID를 연결합니다.

 az keyvault update-hsm --hsm-name mhsmdemo2 --mi-user-assigned "/subscriptions/subid/resourcegroups/mhsmrgname/providers/Microsoft.ManagedIdentity/userAssignedIdentities/userassignedidentitynamefromstep2" 

전체 백업

백업은 장기 실행 작업이지만 작업 ID를 즉시 반환합니다. 이 작업 ID를 사용하여 백업 프로세스의 상태를 확인할 수 있습니다. 백업 프로세스는 mhsm-{HSM_NAME}-{YYYY}{MM}{DD}{HH}{mm}{SS} 명명 패턴을 사용하여 지정된 컨테이너 내에 폴더를 만듭니다. 여기서 HSM_NAME은 백업되는 관리형 HSM의 이름이고 YYYY, MM, DD, HH, MM, mm, SS는 백업 명령을 받은 UTC에서 날짜/시간의 연도, 월, 날짜, 시간, 분 및 초입니다.

백업이 진행되는 동안 일부 HSM 파티션은 백업 작업을 수행하므로 HSM은 전체 처리량에서 작동하지 않을 수 있습니다.

사용자가 할당한 관리 ID를 사용하여 HSM 백업

az keyvault backup start --use-managed-identity true --hsm-name mhsmdemo2 --storage-account-name mhsmdemobackup --blob-container-name mhsmdemobackupcontainer

SAS 토큰을 사용하여 HSM 백업

# time for 500 minutes later for SAS token expiry

end=$(date -u -d "500 minutes" '+%Y-%m-%dT%H:%MZ')

# Get storage account key

skey=$(az storage account keys list --query '[0].value' -o tsv --account-name mhsmdemobackup --subscription {subscription-id})

# Create a container

az storage container create --account-name  mhsmdemobackup --name mhsmdemobackupcontainer  --account-key $skey

# Generate a container sas token

sas=$(az storage container generate-sas -n mhsmdemobackupcontainer --account-name mhsmdemobackup --permissions crdw --expiry $end --account-key $skey -o tsv --subscription {subscription-id})

# Backup HSM

az keyvault backup start --hsm-name mhsmdemo2 --storage-account-name mhsmdemobackup --blob-container-name mhsmdemobackupcontainer --storage-container-SAS-token $sas --subscription {subscription-id}

전체 복원

전체 복원을 사용하면 모든 키, 버전, 특성, 태그 및 역할 할당을 포함하여 이전 백업으로 HSM의 내용을 완전히 복원할 수 있습니다. 현재 HSM에 저장된 모든 항목은 초기화되며 원본 백업을 만들 때와 동일한 상태로 돌아갑니다.

Important

전체 복원은 매우 파괴적인 작업입니다. 따라서 restore 작업을 수행하려면 최소 30분 전에 전체 백업을 완료해야 합니다.

복원은 데이터 평면 작업입니다. 복원 작업을 시작하는 호출자에게 dataAction Microsoft.KeyVault/managedHsm/restore/start/action을 수행할 수 있는 권한이 있어야 합니다. 백업이 생성된 원본 HSM과 복원이 수행될 대상 HSM에는 반드시 동일한 보안 도메인이 있어야 합니다. 관리형 HSM 보안 도메인 정보에 대해 자세히 알아보세요.

전체 복원을 실행하는 방법에는 2가지가 있습니다. 전체 복원을 실행하려면 다음 정보를 제공해야 합니다.

  • HSM 이름 또는 URL
  • 스토리지 계정 이름
  • 스토리지 계정 Blob 컨테이너
  • rl 권한이 있는 사용자 할당 관리 ID 또는 스토리지 컨테이너 SAS 토큰
  • 원본 백업이 저장되는 스토리지 컨테이너 폴더 이름

복원은 장기 실행 작업이지만 작업 ID를 즉시 반환합니다. 이 작업 ID를 사용하여 복원 프로세스의 상태를 확인할 수 있습니다. 복원 프로세스가 진행 중일 때 HSM은 복원 모드로 전환되고 복원 상태 확인을 제외하고 모든 데이터 평면 명령이 사용하지 않도록 설정됩니다.

사용자가 할당한 관리 ID를 사용하여 HSM 복원

az keyvault restore start --hsm-name mhsmdemo2 --storage-account-name mhsmdemobackup --blob-container-name mhsmdemobackupcontainer --backup-folder mhsm-backup-foldername --use-managed-identity true

SAS 토큰을 사용하여 HSM 복원

# time for 500 minutes later for SAS token expiry

end=$(date -u -d "500 minutes" '+%Y-%m-%dT%H:%MZ')

# Get storage account key

skey=$(az storage account keys list --query '[0].value' -o tsv --account-name mhsmdemobackup --subscription {subscription-id})

# Generate a container sas token

sas=$(az storage container generate-sas -n mhsmdemobackupcontainer --account-name mhsmdemobackup --permissions rl --expiry $end --account-key $skey -o tsv --subscription {subscription-id})

# Restore HSM

az keyvault restore start --hsm-name mhsmdemo2 --storage-account-name mhsmdemobackup --blob-container-name mhsmdemobackupcontainer --storage-container-SAS-token $sas --backup-folder mhsm-mhsmdemo-2020083120161860

선택적 키 복원

선택적 키 복원을 사용하면 모든 키 버전을 포함하는 하나의 개별 키를 이전 백업에서 HSM으로 복원할 수 있습니다.

사용자 할당 관리 ID를 사용하여 선택적 키 복원

az keyvault restore start --hsm-name mhsmdemo2 --storage-account-name mhsmdemobackup --blob-container-name mhsmdemobackupcontainer --backup-folder mhsm-backup-foldername --use-managed-identity true --key-name rsa-key2

SAS 토큰을 사용하여 선택적 키 복원

az keyvault restore start --hsm-name mhsmdemo2 --storage-account-name mhsmdemobackup --blob-container-name mhsmdemobackupcontainer --storage-container-SAS-token $sas --backup-folder mhsm-mhsmdemo-2020083120161860 -–key-name rsa-key2

다음 단계