Backup e restauração completos e restauração seletiva de chaves

Nota

Esse recurso só está disponível para HSM gerenciado por tipo de recurso.

O HSM gerenciado oferece suporte à criação de um backup completo de todo o conteúdo do HSM, incluindo todas as chaves, versões, atributos, tags e atribuições de função. O backup é criptografado com chaves criptográficas associadas ao domínio de segurança do HSM.

A cópia de segurança é uma operação do plano de dados. O chamador que inicia a operação de backup deve ter permissão para executar dataAction Microsoft.KeyVault/managedHsm/backup/start/action.

Somente as seguintes funções internas têm permissão para executar o backup completo:

  • Administrador do HSM Gerido
  • Cópia de Segurança do HSM Gerido

Há duas maneiras de executar um backup/restauração completo:

  1. Atribuição de uma Identidade Gerenciada Atribuída pelo Usuário (UAMI) ao serviço HSM Gerenciado. Você pode fazer backup e restaurar seu MHSM usando uma identidade gerenciada atribuída ao usuário, independentemente de sua conta de armazenamento ter acesso à rede pública ou privada habilitado. Se a conta de armazenamento estiver atrás de um ponto de extremidade privado, o método UAMI funcionará com bypass de serviço confiável para permitir backup e restauração.
  2. Usando o token SAS do contêiner de armazenamento com permissões 'crdw'. O backup e a restauração usando o token SAS do contêiner de armazenamento exigem que sua conta de armazenamento tenha o acesso à rede pública habilitado.

Você deve fornecer as seguintes informações para executar um backup completo:

  • Nome ou URL do HSM
  • Nome da conta de armazenamento
  • Contentor de armazenamento de blobs da conta de armazenamento
  • Identidade gerenciada atribuída pelo usuário OU contêiner de armazenamento SAS token com permissões 'crdw'

Azure Cloud Shell

O Azure aloja o Azure Cloud Shell, um ambiente de shell interativo que pode utilizar através do seu browser. Pode utilizar o Bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. Você pode usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada em seu ambiente local.

Para iniciar o Azure Cloud Shell:

Opção Exemplo/Ligação
Selecione Experimentar no canto superior direito de um código ou bloco de comandos. Selecionar Experimentar não copia automaticamente o código ou comando para o Cloud Shell. Captura de tela que mostra um exemplo de Try It for Azure Cloud Shell.
Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser. Botão para iniciar o Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure. Captura de tela que mostra o botão Cloud Shell no portal do Azure

Para usar o Azure Cloud Shell:

  1. Inicie o Cloud Shell.

  2. Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou comando.

  3. Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e Linux ou selecionando Cmd+Shift+V no macOS.

  4. Selecione Enter para executar o código ou comando.

Pré-requisitos se fizer backup e restauração usando a identidade gerenciada atribuída pelo usuário:

  1. Verifique se você tem a CLI do Azure versão 2.56.0 ou posterior. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, veja Instalar a CLI do Azure.
  2. Crie uma identidade gerida atribuída pelo utilizador.
  3. Crie uma conta de armazenamento (ou use uma conta de armazenamento existente).
  4. Se o acesso à rede pública estiver desativado na sua conta de armazenamento, ative o bypass de serviço confiável na conta de armazenamento na guia "Rede", em "Exceções".
  5. Forneça acesso à função 'contribuidor de dados de blob de armazenamento' para a identidade gerenciada atribuída ao usuário criada na etapa #2 indo para a guia "Controle de Acesso" no portal -> Adicionar Atribuição de Função. Em seguida, selecione "identidade gerenciada" e selecione a identidade gerenciada criada na etapa #2 -> Revisão + Atribuir
  6. Crie o HSM gerenciado e associe a identidade gerenciada ao comando abaixo.
    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" 
    

Se você tiver um HSM gerenciado existente, associe a identidade gerenciada atualizando o MHSM com o comando abaixo.

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

Cópia de segurança completa

O backup é uma operação de longa execução, mas retorna imediatamente uma ID de trabalho. Você pode verificar o status do processo de backup usando este ID de trabalho. O processo de backup cria uma pasta dentro do contêiner designado com um padrão mhsm-{HSM_NAME}-{YYYY}{MM}{DD}{HH}{mm}{SS}de nomenclatura a seguir, onde HSM_NAME é o nome do HSM gerenciado que está sendo copiado e AAAA, MM, DD, HH, MM, mm, SS são o ano, mês, data, hora, minutos e segundos de data/hora em UTC quando o comando de backup foi recebido.

Enquanto o backup estiver em andamento, o HSM pode não operar com taxa de transferência total, pois algumas partições HSM estarão ocupadas executando a operação de backup.

Backup do HSM usando a identidade gerenciada atribuída ao usuário

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

Backup HSM usando token SAS

# 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}

Restauração completa

A restauração completa permite restaurar completamente o conteúdo do HSM com um backup anterior, incluindo todas as chaves, versões, atributos, tags e atribuições de função. Tudo o que está atualmente armazenado no HSM será apagado e voltará ao mesmo estado em que estava quando o backup de origem foi criado.

Importante

A restauração completa é uma operação muito destrutiva e perturbadora. Portanto, é obrigatório ter concluído um backup completo pelo menos 30 minutos antes de uma restore operação poder ser executada.

A restauração é uma operação do plano de dados. O chamador que inicia a operação de restauração deve ter permissão para executar dataAction Microsoft.KeyVault/managedHsm/restore/start/action. O HSM de origem onde o backup foi criado e o HSM de destino onde a restauração será executada devem ter o mesmo domínio de segurança. Veja mais sobre o Managed HSM Security Domain.

Existem 2 maneiras de executar uma restauração completa. Você deve fornecer as seguintes informações para executar uma restauração completa:

  • Nome ou URL do HSM
  • Nome da conta de armazenamento
  • Contêiner de blob da conta de armazenamento
  • Identidade gerenciada atribuída pelo usuário OU token SAS de contêiner de armazenamento com permissões rl
  • Nome da pasta do contêiner de armazenamento onde o backup de origem está armazenado

A restauração é uma operação de longa execução, mas retornará imediatamente uma ID de trabalho. Você pode verificar o status do processo de restauração usando este ID de trabalho. Quando o processo de restauração está em andamento, o HSM entra em um modo de restauração e todos os comandos do plano de dados (exceto verificar o status da restauração) são desativados.

Restaurar o HSM usando a identidade gerenciada atribuída pelo usuário

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

Restaurar HSM usando o token SAS

# 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

Restauração seletiva de chave

A restauração seletiva de chaves permite restaurar uma chave individual com todas as suas versões de chave de um backup anterior para um HSM.

Restauração seletiva de chave usando a identidade gerenciada atribuída pelo usuário

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

Restauração seletiva de chaves usando token 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

Passos Seguintes