Tutorial: Implantação de HSMs numa rede virtual existente usando a CLI do Azure

Importante

O Azure Dedicated HSM está a ser retirado. A Microsoft oferecerá suporte total aos clientes HSM dedicados existentes até 31 de julho de 2028. Não se aceitam novos clientes. Para detalhes completos e ações obrigatórias, consulte a atualização oficial do Azure.

Se for utilizador de Azure Dedicated HSM, veja Migrar de Azure Dedicated HSM para Managed HSM ou Azure Cloud HSM. O Azure Cloud HSM agora está disponível em geral e é o sucessor do Azure Dedicated HSM.

Os novos clientes devem avaliar e integrar Azure Cloud HSM, Managed HSM ou Azure Key Vault consoante os requisitos da sua carga de trabalho. Para obter orientação, consulte Como escolher a solução de gerenciamento de chaves do Azure correta.

O Azure Dedicated HSM fornece um dispositivo físico para uso exclusivo do cliente, com controlo administrativo total e total responsabilidade de gestão. Como o serviço fornece hardware físico, a Microsoft controla como aloca esses dispositivos para garantir uma gestão eficaz da capacidade. Como resultado, dentro de uma subscrição do Azure, o serviço HSM dedicado normalmente não é visível para o provisionamento de recursos. Para aceder ao serviço HSM Dedicado, deve contactar o seu gestor de conta da Microsoft para solicitar o registo no serviço HSM Dedicado. Só pode aprovisionar o serviço depois de este processo ser concluído com sucesso.

Este tutorial mostra um processo típico de provisionamento onde:

  • Um cliente já tem uma rede virtual
  • Eles têm uma máquina virtual
  • Precisam de adicionar recursos de HSM nesse ambiente existente.

Uma arquitetura típica de implantação multi-região e de alta disponibilidade pode ser a seguinte:

Implementação multi-região

Este tutorial foca-se na integração de um par de HSMs e do gateway ExpressRoute necessário (ver Sub-rede 1 acima) numa rede virtual existente (ver VNET 1 acima). Todos os outros recursos são recursos padrão do Azure. O mesmo processo de integração pode ser usado para HSMs na sub-rede 4 na VNET 3 acima.

Prerequisites

O Azure Dedicated HSM não está atualmente disponível no portal Azure. Toda a interação com o serviço deve ser feita via linha de comandos ou usando PowerShell. Este tutorial utiliza a interface de linha de comandos (CLI) no Azure Cloud Shell. Se é novo na CLI do Azure, siga as instruções para começar aqui: Introdução ao CLI do Azure 2.0.

Pressupostos:

  • É necessário ter um Gestor de Conta Microsoft atribuído para ser elegível para a integração e utilização do Azure Dedicated HSM.
  • Passou pelo processo de registo do Azure Dedicated HSM e foi aprovado para utilizar o serviço. Se não, contacte o seu representante da conta Microsoft para mais detalhes.
  • Criaste um Grupo de Recursos para estes recursos e os novos implementados neste tutorial juntar-se-ão a esse grupo.
  • Já criou a rede virtual necessária, sub-rede e máquinas virtuais conforme o diagrama e agora quer integrar 2 HSMs nessa implementação.

Todas as instruções deste artigo assumem que está no portal do Azure e tem a Cloud Shell aberta (selecione ">_" no canto superior direito do portal).

Providenciar um HSM dedicado

O provisionamento dos HSMs e a sua integração numa rede virtual existente via gateway ExpressRoute é validado usando ssh. Esta validação ajuda a garantir a acessibilidade e a disponibilidade básica do dispositivo HSM para quaisquer atividades de configuração futuras.

Validar o registo da funcionalidade

Qualquer atividade de provisionamento exige que o serviço HSM dedicado esteja registado para a sua subscrição. Para validar isso, execute os seguintes comandos no portal Azure Cloud Shell.

az feature show \
   --namespace Microsoft.HardwareSecurityModules \
   --name AzureDedicatedHSM

Os comandos devem devolver o estado de "Registado". Se os comandos não devolverem "Registado", deve registar-se neste serviço contactando o seu representante da conta Microsoft.

Estado da subscrição

Criar recursos HSM

Antes de criares recursos HSM, há alguns recursos pré-requisitos de que precisas. Deve ter uma rede virtual com intervalos de sub-rede para computação, HSMs e gateway. Os seguintes comandos servem como exemplo do que poderia criar tal rede virtual.

az network vnet create \
  --name myHSM-vnet \
  --resource-group myRG \
  --address-prefix 10.2.0.0/16 \
  --subnet-name compute \
  --subnet-prefix 10.2.0.0/24
az network vnet subnet create \
  --vnet-name myHSM-vnet \
  --resource-group myRG \
  --name hsmsubnet \
  --address-prefixes 10.2.1.0/24 \
  --delegations Microsoft.HardwareSecurityModules/dedicatedHSMs
az network vnet subnet create \
  --vnet-name myHSM-vnet \
  --resource-group myRG \
  --name GatewaySubnet \
  --address-prefixes 10.2.255.0/26

Note

A configuração mais importante para a rede virtual é que a sub-rede do dispositivo HSM deve ter delegações definidas como "Microsoft. HardwareSecurityModules/dedicatedHSMs". O provisionamento HSM não funciona sem esta opção ativada.

A rede virtual também requer um gateway ExpressRoute. Sem um gateway, a operação de criação HSM falha devido a um erro na ligação do dispositivo à rede virtual. Crie o gateway com o comando az network vnet-gateway create e o ErGwScale SKU. O Azure atribui e gere automaticamente o endereço IP público do gateway, por isso não cries um recurso IP público nem passes o --public-ip-addresses parâmetro.

az network vnet-gateway create \
  --resource-group myRG \
  --name myergw \
  --vnet myHSM-vnet \
  --gateway-type ExpressRoute \
  --sku ErGwScale \
  --min-scale-unit 1 \
  --max-scale-unit 1

O gateway demora aproximadamente 17 minutos a ser implementado.

Depois de configurar a sua rede, use estes comandos CLI do Azure para provisionar os seus HSMs.

  1. Use o comando az dedicated-hsm create para provisionar o primeiro HSM. O HSM chama-se hsm1. Substitua a sua subscrição:

    az dedicated-hsm create --location westus --name hsm1 --resource-group myRG \
         --stamp-id stamp1 --sku "SafeNet Luna Network HSM A790" \
         --subnet id="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myRG/providers/Microsoft.Network/virtualNetworks/myHSM-vnet/subnets/hsmsubnet" \
         --network-interfaces private-ip-address=10.2.1.4
    

    A operação de criação HSM demora aproximadamente 7 minutos a ser concluída.

  2. Para ver um HSM atual, execute o comando az dedicated-hsm show :

    az dedicated-hsm show --resource-group myRG --name hsm1
    
  3. Configure o segundo HSM usando este comando:

    az dedicated-hsm create --location westus --name hsm2 --resource-group myRG \
         --stamp-id stamp2 --sku "SafeNet Luna Network HSM A790" \
         --subnet id="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myRG/providers/Microsoft.Network/virtualNetworks/myHSM-vnet/subnets/hsmsubnet" \
         --network-interfaces private-ip-address=10.2.1.5
    
  4. Execute o comando az dedicated-hsm list para ver detalhes sobre os seus HSMs atuais:

    az dedicated-hsm list --resource-group myRG
    

Há outros comandos que podem ser úteis. Utilize o comando az dedicated-hsm update para atualizar um HSM:

az dedicated-hsm update --resource-group myRG --name hsm1

Para eliminar um HSM, use o comando az dedicated-hsm delete :

az dedicated-hsm delete --resource-group myRG --name hsm1

Verificar a implantação

Para verificar se os dispositivos estão provisionados e para ver os atributos do dispositivo, execute o seguinte conjunto de comandos. Assegura-te de que o grupo de recursos está devidamente definido e que o nome do recurso é exatamente o que tens no ficheiro de parâmetros.

subid=$(az account show --query id --output tsv)
az resource show \
   --ids /subscriptions/$subid/resourceGroups/myRG/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/HSM1
az resource show \
   --ids /subscriptions/$subid/resourceGroups/myRG/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/HSM2

A saída é algo semelhante à seguinte:

{
    "id": n/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/HSM-RG/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/HSMl",
    "identity": null,
    "kind": null,
    "location": "westus",
    "managedBy": null,
    "name": "HSM1",
    "plan": null,
    "properties": {
        "networkProfile": {
            "networkInterfaces": [
            {
            "id": n/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/HSM-RG/providers/Microsoft.Network/networkInterfaces/HSMl_HSMnic", "privatelpAddress": "10.0.2.5",
            "resourceGroup": "HSM-RG"
            }
            L
            "subnet": {
                "id": n/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/HSM-RG/providers/Microsoft.Network/virtualNetworks/demo-vnet/subnets/hsmsubnet", "resourceGroup": "HSM-RG"
            }
        },
        "provisioningState": "Succeeded",
        "stampld": "stampl",
        "statusMessage": "The Dedicated HSM device is provisioned successfully and ready to use."
    },
    "resourceGroup": "HSM-RG",
    "sku": {
        "capacity": null,
        "family": null,
        "model": null,
        "name": "SafeNet Luna Network HSM A790",
        "size": null,
        "tier": null
    },
    "tags": {
        "Environment": "prod",
        "resourceType": "Hsm"
    },
    "type": "Microsoft.HardwareSecurityModules/dedicatedHSMs"
}

Agora também pode ver os recursos usando o explorador de recursos do Azure. Uma vez dentro do explorador, expanda "subscrições", expanda a sua subscrição específica para HSM dedicado, expanda "grupos de recursos", expanda o grupo de recursos que utilizou e, finalmente, selecione o item "recursos".

Testar a implementação

Testar a implementação consiste em ligar a uma máquina virtual que pode aceder a um ou mais HSMs e depois ligar-se diretamente ao dispositivo HSM. Estas ações confirmam que o HSM está acessível. A ferramenta ssh é usada para se ligar à máquina virtual. O comando é semelhante ao seguinte, mas com o nome do administrador e o nome DNS que especificaste no parâmetro.

ssh adminuser@hsmlinuxvm.westus.cloudapp.azure.com

O endereço IP da VM também podia ser usado em vez do nome DNS. Se o comando for bem-sucedido, irá pedir uma palavra-passe, e deve introduzi-la. Depois de iniciar sessão na máquina virtual, pode iniciar sessão no HSM usando o endereço IP privado encontrado no portal para o recurso de interface de rede associado ao HSM.

Lista de componentes

Note

Repare na caixa de seleção "Mostrar tipos ocultos", que, quando selecionada, mostrará os recursos HSM.

Na captura de ecrã, clicar no "HSM1_HSMnic" ou "HSM2_HSMnic" mostraria o Endereço IP Privado apropriado. Caso contrário, o az resource show comando serve para identificar o endereço IP correto.

Quando tiver o endereço IP correto, execute o seguinte comando substituindo esse endereço:

ssh tenantadmin@10.0.2.4

Se a operação for bem-sucedida, é-lhe solicitada uma palavra-passe. A palavra-passe padrão é PASSWORD e o HSM irá primeiro pedir-lhe para mudar a palavra-passe, por isso defina uma palavra-passe forte e use o mecanismo que a sua organização preferir para armazenar a palavra-passe e evitar perdas.

Importante

Se perderes esta palavra-passe, o HSM tem de ser reiniciado e isso significa perder as tuas chaves.

Quando estiver ligado ao HSM usando ssh, execute o seguinte comando para garantir que o HSM está operacional.

hsm show

A saída deve ter esta aparência:

A captura de ecrã mostra a saída na janela do PowerShell.

Neste ponto, já alocou todos os recursos para uma implementação altamente disponível, com dois HSMs, e validou o acesso e o estado operacional. Qualquer configuração ou teste adicional envolve mais trabalho com o próprio dispositivo HSM. Para isso, deve seguir as instruções do Guia de Administração do HSM de Thales Luna 7, capítulo 7, para inicializar o HSM e criar partições. Toda a documentação e software estão disponíveis diretamente na Thales para download assim que estiver registado no portal de apoio ao cliente da Thales e tiver um ID de Cliente. Descarregue a versão 7.2 do Software Cliente para obter todos os componentes necessários.

Apagar ou limpar recursos

Se já não precisares apenas do dispositivo HSM, ele pode ser eliminado como recurso e devolvido ao pool gratuito. A preocupação óbvia ao fazer isto são quaisquer dados sensíveis de clientes que estejam no dispositivo. A melhor forma de "apagar com segurança" um dispositivo é errar a palavra-passe de administrador do HSM três vezes. (Não o administrador do appliance, o verdadeiro administrador do HSM). Como medida de segurança para proteger o material de chave, o dispositivo não pode ser eliminado como recurso Azure até estar no estado zeroizado.

Note

Se tiver problemas com a configuração de algum dispositivo da Thales, contacte o apoio ao cliente da Thales.

Se já tiver terminado todos os recursos do grupo de recursos, pode removê-los com o seguinte comando:

az group delete \
   --resource-group myRG \
   --name HSMdeploy \
   --verbose

Passos seguintes

Após completar os passos do tutorial, os recursos dedicados do HSM são provisionados e tem uma rede virtual com os HSMs necessários, bem como componentes de rede adicionais para permitir a comunicação com o HSM. Agora está numa posição de complementar esta implementação com mais recursos conforme exigido pela sua arquitetura de implementação preferida. Para mais informações para o ajudar a planear a sua implementação, consulte os documentos Conceitos. Recomenda-se um design com dois HSMs numa região primária que aborde a disponibilidade ao nível do rack, e dois HSMs numa região secundária que aborde a disponibilidade regional.