Tutorial: Implementar HSMs numa rede virtual existente com a CLI do Azure

O Azure Dedicated HSM fornece um dispositivo físico para utilização exclusiva do cliente, com controlo administrativo completo e responsabilidade de gestão total. A utilização de dispositivos físicos cria a necessidade de a Microsoft controlar a alocação de dispositivos para garantir que a capacidade é gerida de forma eficaz. Como resultado, numa subscrição do Azure, o serviço HSM dedicado normalmente não estará visível para o aprovisionamento de recursos. Qualquer cliente do Azure que necessite de acesso ao serviço HSM dedicado tem primeiro de contactar o respetivo executivo de conta Microsoft para pedir o registo do serviço HSM dedicado. Só assim que este processo for concluído com êxito será possível aprovisionar.

Este tutorial mostra um processo de aprovisionamento típico em que:

  • Um cliente já tem uma rede virtual
  • Têm uma máquina virtual
  • Precisam de adicionar recursos HSM a esse ambiente existente.

Uma arquitetura de implementação de várias regiões típica e de elevada disponibilidade pode ter o seguinte aspeto:

implementação de várias regiões

Este tutorial centra-se num par de HSMs e no gateway do ExpressRoute necessário (veja Sub-rede 1 acima) que está a ser integrado numa rede virtual existente (veja a VNET 1 acima). Todos os outros recursos são recursos padrão do Azure. O mesmo processo de integração pode ser utilizado para HSMs na sub-rede 4 na VNET 3 acima.

Pré-requisitos

O Azure Dedicated HSM não está atualmente disponível no portal do Azure. Toda a interação com o serviço será feita através da linha de comandos ou do PowerShell. Este tutorial irá utilizar a interface da linha de comandos (CLI) no Cloud Shell do Azure. Se não estiver familiarizado com a CLI do Azure, siga as instruções de introdução aqui: Introdução à CLI 2.0 do Azure.

Pressupostos:

  • Tem um Gestor de Contas Microsoft atribuído e cumpre o requisito monetário de cinco milhões de USD ($5M) ou superior na receita total consolidada do Azure anualmente para se qualificar para integração e utilização do Azure Dedicated HSM.
  • Já passou pelo processo de registo do HSM dedicado do Azure e foi aprovado para utilização do serviço. Caso contrário, contacte o representante da sua conta Microsoft para obter detalhes.
  • Criou um Grupo de Recursos para estes recursos e os novos implementados neste tutorial irão aderir a esse grupo.
  • Já criou a rede virtual, a sub-rede e as máquinas virtuais necessárias de acordo com o diagrama acima e pretende agora integrar 2 HSMs nessa implementação.

Todas as instruções abaixo partem do princípio de que já navegou para a portal do Azure e que abriu o Cloud Shell (selecione ">_" no canto superior direito do portal).

Aprovisionar um HSM Dedicado

O aprovisionamento de HSMs e a sua integração numa rede virtual existente através do gateway do ExpressRoute será validado com ssh. Esta validação ajuda a garantir a acessibilidade e a disponibilidade básica do dispositivo HSM para quaisquer outras atividades de configuração.

Validar o Registo de Funcionalidades

Conforme mencionado acima, qualquer atividade de aprovisionamento requer que o serviço HSM dedicado esteja registado na sua subscrição. Para validar, execute os seguintes comandos no portal do Azure Cloud Shell.

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

Os comandos devem devolver o estado "Registado" (conforme mostrado abaixo). Se os comandos não devolverem "Registado", tem de se registar neste serviço contactando o representante da sua conta Microsoft.

estado da subscrição

Criar recursos do HSM

Antes de criar recursos do HSM, existem alguns recursos de pré-requisitos necessários. Tem de ter uma rede virtual com intervalos de sub-rede para computação, HSMs e gateway. Os seguintes comandos servem como um exemplo do que iria criar uma rede virtual deste tipo.

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

Nota

A configuração mais importante a ter em conta para a rede virtual é que a sub-rede para o dispositivo HSM tem de ter delegações definidas como "Microsoft.HardwareSecurityModules/dedicatedHSMs". O aprovisionamento do HSM não funcionará sem que esta opção seja definida.

Depois de configurar a rede, utilize estes comandos da CLI do Azure para aprovisionar os HSMs.

  1. Utilize o comando az dedicated-hsm create para aprovisionar o primeiro HSM. O HSM tem o nome hsm1. Substitua a sua subscrição:

    az dedicated-hsm create --location westus --name hsm1 --resource-group myRG --network-profile-network-interfaces \
         /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.Network/virtualNetworks/MyHSM-vnet/subnets/MyHSM-vnet
    

    Esta implementação deve demorar aproximadamente 25 a 30 minutos a concluir, sendo que a maior parte desse tempo são os dispositivos HSM.

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

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

    az dedicated-hsm create --location westus --name hsm2 --resource-group myRG --network-profile-network-interfaces \
         /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.Network/virtualNetworks/MyHSM-vnet/subnets/MyHSM-vnet
    
  4. Execute o comando az dedicated-hsm list para ver detalhes sobre os HSMs atuais:

    az dedicated-hsm list --resource-group myRG
    

Existem 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, utilize o comando az dedicated-hsm delete :

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

Verificar a Implementação

Para verificar se os dispositivos foram aprovisionados e ver os atributos do dispositivo, execute o seguinte conjunto de comandos. Certifique-se de que o grupo de recursos está definido adequadamente e que o nome do recurso é exatamente o que tem 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

O resultado tem um aspeto semelhante ao seguinte resultado:

{
    "id": n/subscriptions/00000000-0000-0000-0000-000000000000/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/00000000-0000-0000-0000-000000000000/resourceGroups/HSM-RG/providers/Microsoft.Network/networkInterfaces/HSMl_HSMnic", "privatelpAddress": "10.0.2.5",
            "resourceGroup": "HSM-RG"
            }
            L
            "subnet": {
                "id": n/subscriptions/00000000-0000-0000-0000-000000000000/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 poderá ver os recursos com o explorador de recursos do Azure. Uma vez no explorador, expanda "subscrições" à esquerda, expanda a subscrição específica do HSM dedicado, expanda "grupos de recursos", expanda o grupo de recursos que utilizou e, por fim, selecione o item "recursos".

Testar a Implementação

Testar a implementação é um caso de ligação a uma máquina virtual que pode aceder aos HSMs e, em seguida, ligar diretamente ao dispositivo HSM. Estas ações confirmarão que o HSM está acessível. A ferramenta ssh é utilizada para ligar à máquina virtual. O comando será semelhante ao seguinte, mas com o nome de administrador e o nome dns que especificou no parâmetro .

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

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

lista de componentes

Nota

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

Na captura de ecrã acima, clicar no "HSM1_HSMnic" ou "HSM2_HSMnic" mostraria o Endereço IP Privado adequado. Caso contrário, o az resource show comando utilizado acima é uma forma de 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 for bem-sucedido, ser-lhe-á pedida uma palavra-passe. A palavra-passe predefinida é PALAVRA-PASSE e o HSM irá primeiro pedir-lhe para alterar a sua palavra-passe, por isso, defina uma palavra-passe segura e utilize o mecanismo que a sua organização preferir para armazenar a palavra-passe e evitar perdas.

Importante

Se perder esta palavra-passe, o HSM terá de ser reposto, o que significa perder as chaves.

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

hsm show

O resultado deve ter o aspeto mostrado na imagem abaixo:

Captura de ecrã a mostrar a saída na janela do PowerShell.

Neste momento, alocou todos os recursos para uma implementação de elevada disponibilidade, duas HSMs e acesso validado e estado operacional. Qualquer configuração ou teste adicional envolve mais trabalho com o próprio dispositivo HSM. Para tal, deve seguir as instruções no Capítulo 7 do Guia de Administração do HSM da Thales Luna 7 para inicializar o HSM e criar partições. Toda a documentação e software estão disponíveis diretamente na Thales para transferência assim que estiver registado no portal de suporte ao cliente da Thales e tiver um ID de Cliente. Transfira o Software de Cliente versão 7.2 para obter todos os componentes necessários.

Eliminar ou limpar recursos

Se tiver terminado apenas com o dispositivo HSM, este pode ser eliminado como um recurso e devolvido ao conjunto gratuito. A preocupação óbvia ao fazê-lo são os dados confidenciais do cliente que se encontra no dispositivo. A melhor forma de "zeroar" um dispositivo é obter a palavra-passe de administrador do HSM errada três vezes (nota: este não é o administrador da aplicação, é o administrador do HSM real). Como medida de segurança para proteger material de chave, o dispositivo não pode ser eliminado como um recurso do Azure até estar no estado zero.

Nota

Se tiver algum problema com qualquer configuração de dispositivo da Thales, deve contactar o suporte ao cliente da Thales.

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

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

Passos seguintes

Depois de concluir os passos no tutorial, os Recursos HSM dedicados são aprovisionados e tem uma rede virtual com os HSMs necessários e outros componentes de rede para permitir a comunicação com o HSM. Está agora em posição de complementar esta implementação com mais recursos, conforme exigido pela sua arquitetura de implementação preferida. Para obter mais informações sobre como ajudar a planear a sua implementação, veja os Documentos de conceitos. Recomenda-se um design com dois HSMs numa região primária que aborda a disponibilidade ao nível do rack e dois HSMs numa região secundária que abordam a disponibilidade regional.