Backup completo, restauração e restauração seletiva de chaves

Observação

Este recurso só está disponível para o tipo de recurso HSM Gerenciado.

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

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

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

  • Administrador de HSM Gerenciado
  • Backup do HSM Gerenciado

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

  1. Atribuindo uma UAMI (Identidade Gerenciada Atribuída pelo Usuário) ao serviço HSM Gerenciado. Você pode fazer backup e restaurar seu MHSM usando uma identidade gerenciada atribuída pelo usuário, independentemente de sua conta de armazenamento ter acesso à rede pública ou acesso à rede 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'. Fazer backup e restauração usando o token SAS do contêiner de armazenamento requer 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
  • Contêiner de armazenamento de blobs da conta de armazenamento
  • Identidade gerenciada atribuída pelo usuário OU token SAS do contêiner de armazenamento com permissões 'crdw'

Azure Cloud Shell

O Azure hospeda o Azure Cloud Shell, um ambiente de shell interativo que pode ser usado por meio do navegador. É possível usar o bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. É possível usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada no seu ambiente local.

Para iniciar o Azure Cloud Shell:

Opção Exemplo/Link
Selecione Experimentar no canto superior direito de um bloco de código ou de comando. Selecionar Experimentar não copia automaticamente o código nem o comando para o Cloud Shell. Captura de tela que mostra um exemplo de Experimente para o Azure Cloud Shell.
Acesse https://shell.azure.com ou selecione o botão Iniciar o Cloud Shell para abri-lo no navegador. Botão para iniciar o Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus no canto superior direito 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 o comando.

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

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

Pré-requisitos se estiver fazendo backup e restaurando 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. Execute az --version para encontrar a versão. Se você precisar instalar ou atualizar, confira Instalar a CLI do Azure.
  2. Criar uma identidade gerenciada atribuída pelo usuário.
  3. Crie uma conta de armazenamento (ou use uma conta de armazenamento existente).
  4. Se o acesso à rede pública estiver desabilitado em sua conta de armazenamento, habilite o bypass de serviço confiável na conta de armazenamento na guia "Rede", em "Exceções".
  5. Forneça acesso à função 'colaborador de dados de blob de armazenamento' à identidade gerenciada atribuída pelo usuário criada na etapa 2 acessando 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 nº 2 –> Examinar + 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" 

Backup completo

O backup é uma operação de execução longa, mas retorna imediatamente uma ID do trabalho. Você pode verificar o status do processo de backup usando essa ID de Trabalho. O processo de backup cria uma pasta dentro do contêiner designada com o seguinte padrão de nomenclatura: mhsm-{HSM_NAME}-{YYYY}{MM}{DD}{HH}{mm}{SS} , em que HSM_NAME é o nome do HSM Gerenciado cujo backup está sendo realizado e AAAA, MM, DD, HH, MM, mm, SS são o ano, o mês, o dia, a hora, os minutos e os segundos da data/hora em UTC quando o comando de backup foi recebido.

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

Fazer backup do HSM usando a identidade gerenciada atribuída pelo usuário

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

Fazer backup do 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})

# 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 base em um backup anterior, incluindo todas as chaves, versões, atributos, marcações e atribuições de função. Tudo o que estiver armazenado no momento no HSM será apagado e ele retornará ao mesmo estado em que se encontrava quando o backup de origem foi criado.

Importante

A restauração completa é uma operação bastante destrutiva e robusta. Portanto, é obrigatório ter concluído um backup completo pelo menos 30 minutos antes que uma operação restore seja 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 a ação de dados Microsoft.KeyVault/managedHsm/restore/start/action. O HSM de origem em que o backup foi criado e o HSM de destino em que a restauração será executada devem ter o mesmo Domínio de Segurança. Confira mais informações sobre o Domínio de Segurança do HSM Gerenciado.

Há duas 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 blobs da conta de armazenamento
  • Identidade gerenciada atribuída pelo usuário OU token SAS do contêiner de armazenamento com permissões rl
  • Nome da pasta do contêiner de armazenamento em que o backup de origem está armazenado

A restauração é uma operação de execução prolongada, mas que retorna imediatamente uma ID de Trabalho. Você pode verificar o status do processo de restauração usando essa ID de Trabalho. Quando o processo de restauração estiver em andamento, o HSM entrará em modo de restauração e todos os comandos do plano de dados (exceto verificar status da restauração) serão desabilitados.

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 o 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 chaves

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

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

Próximas etapas