Tutorial: Implantar HSMs numa rede virtual existente usando PowerShell

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 Serviç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 pretende mostrar 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 implementação multi-região e de alta disponibilidade é a seguinte:

Um diagrama que ilustra uma implementação multi-região.

Este tutorial foca-se num par de HSMs e no gateway ExpressRoute necessário (ver Sub-rede 1 acima), que serão integrados 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.

Note

Recomendamos que utilize o módulo Azure Az PowerShell para interagir com o Azure. Para começar, veja Install Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, veja Migrate Azure PowerShell from AzureRM to Az.

Prerequisites

O Azure Dedicated HSM não está atualmente disponível no portal Azure, pelo que todas as interações com o serviço são feitas via linha de comandos ou através do PowerShell. Este tutorial utiliza o PowerShell no Azure Cloud Shell. Se é novo no PowerShell, siga as instruções para começar aqui: Azure PowerShell Get Started.

Pressupostos:

  • Deve ter um Gestor de Conta Microsoft atribuído para poder qualificar-se para a integração e utilização do Azure Dedicated HSM.
  • Passou pelo processo de registo do Azure Dedicated HSM e foi aprovado para usar 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 para os novos recursos que são implementados neste tutorial.
  • Já criou a rede virtual necessária, sub-rede e máquinas virtuais e agora quer integrar 2 HSMs nessa implementação.

As instruções seguintes assumem que está no portal Azure e que abriu a Cloud Shell (selecione ">_" no canto superior direito do portal).

Provisionamento de um HSM dedicado

O provisionamento dos HSMs e a integração numa rede virtual existente via gateway ExpressRoute é validado usando a ferramenta de linha de comandos ssh para garantir a acessibilidade e disponibilidade básica do dispositivo HSM para quaisquer atividades de configuração adicionais. Os seguintes comandos utilizam um modelo Resource Manager para criar os recursos HSM e os recursos de rede associados.

A validar o Registo de Funcionalidades

Como mencionado, qualquer atividade de provisionamento exige que o serviço HSM dedicado esteja registado para a sua subscrição. Para validar isso, execute o seguinte comando PowerShell no portal Azure Cloud Shell.

Get-AzProviderFeature -ProviderNamespace Microsoft.HardwareSecurityModules -FeatureName AzureDedicatedHsm

O comando deve devolver o estado de "Registado" antes de prosseguir mais. Se não estiver registado neste serviço, contacte o seu representante da conta Microsoft.

Estado da subscrição.

Criação de recursos HSM

Um dispositivo HSM é provisionado na rede virtual dos clientes, que requer uma sub-rede. Uma dependência para o HSM permitir a comunicação entre a rede virtual e o dispositivo físico é um gateway ExpressRoute, e finalmente é necessária uma máquina virtual para aceder ao dispositivo HSM usando o software cliente Thales.

Pode criar um recurso dedicado de HSM usando um modelo ARM baseado no seguinte exemplo. Deve atualizar os parâmetros substituindo as linhas que contêm "value":"" pelos nomes dos seus recursos preferidos.

  • namingInfix Prefixo para nomes dos recursos HSM
  • ExistingVirtualNetworkName Nome da rede virtual usada para os HSMs
  • DedicatedHsmResourceName1 Nome do recurso HSM no stamp 1 do datacenter
  • DedicatedHsmResourceName2 Nome do recurso HSM no datacenter stamp 2
  • hsmSubnetRange Intervalo de endereços IP da sub-rede para HSMs
  • ERSubnetRange Intervalo de endereços IP de sub-rede para gateway VNET

Um exemplo destas alterações é o seguinte:

{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "namingInfix": {
      "value": "MyHSM"
    },
    "ExistingVirtualNetworkName": {
      "value": "MyHSM-vnet"
    },
    "DedicatedHsmResourceName1": {
      "value": "HSM1"
    },
    "DedicatedHsmResourceName2": {
      "value": "HSM2"
    },
    "hsmSubnetRange": {
      "value": "10.0.2.0/24"
    },
    "ERSubnetRange": {
      "value": "10.0.255.0/26"
    },
  }
}

O ficheiro modelo Resource Manager associado cria seis recursos com esta informação:

  • Uma sub-rede para os HSMs na VNET especificada
  • Uma sub-rede para o gateway de rede virtual
  • Um gateway de rede virtual que liga a VNET aos dispositivos HSM
  • Um endereço IP público para o gateway
  • Um HSM no carimbo 1
  • Um HSM no selo 2

Uma vez definidos os valores dos parâmetros, os ficheiros precisam de ser carregados para a partilha de ficheiros do Cloud Shell no portal do Azure para serem utilizados. No portal Azure, selecione o símbolo ">_" da Cloud Shell no canto superior direito, que transforma a parte inferior do ecrã num ambiente de comandos. As opções são BASH e PowerShell e deves escolher BASH se ainda não estiver definido.

Selecione a opção de carregar/transferir na barra de ferramentas para carregar o modelo e os ficheiros de parâmetros para a partilha de ficheiros:

Partilha de ficheiro.

Depois de os ficheiros serem carregados, está pronto para criar ativos.

Existem alguns recursos pré-requisitos necessários antes de criar novos recursos HSM. Deve ter uma rede virtual com intervalos de sub-rede para computação, HSMs e gateway. Os seguintes comandos servem como exemplo do que criaria tal rede virtual.

$compute = New-AzVirtualNetworkSubnetConfig `
  -Name compute `
  -AddressPrefix 10.2.0.0/24
$delegation = New-AzDelegation `
  -Name "myDelegation" `
  -ServiceName "Microsoft.HardwareSecurityModules/dedicatedHSMs"

$hsmsubnet = New-AzVirtualNetworkSubnetConfig ` 
  -Name hsmsubnet ` 
  -AddressPrefix 10.2.1.0/24 ` 
  -Delegation $delegation 


$gwsubnet= New-AzVirtualNetworkSubnetConfig `
  -Name GatewaySubnet `
  -AddressPrefix 10.2.255.0/26


New-AzVirtualNetwork `
  -Name myHSM-vnet `
  -ResourceGroupName myRG `
  -Location westus `
  -AddressPrefix 10.2.0.0/16 `
  -Subnet $compute, $hsmsubnet, $gwsubnet

Note

A configuração mais importante a notar para a rede virtual é que a sub-rede do dispositivo HSM deve ter delegações definidas como "Microsoft.HardwareSecurityModules/dedicatedHSMs". Caso contrário, o provisionamento do HSM não funcionará.

Depois de todos os pré-requisitos estarem definidos e de atualizar o modelo do Resource Manager com os seus nomes únicos (pelo menos o nome do grupo de recursos), execute o seguinte comando:


New-AzResourceGroupDeployment -ResourceGroupName myRG `
     -TemplateFile .\Deploy-2HSM-toVNET-Template.json `
     -TemplateParameterFile .\Deploy-2HSM-toVNET-Params.json `
     -Name HSMdeploy -Verbose

Este comando deverá demorar aproximadamente 20 minutos a ser concluído. A opção "-verbose" usada garante que o estado é continuamente exibido.

A implantar um HSM dedicado.

Quando concluído com sucesso, indicado por "provisioningState": "Succeeded", pode iniciar sessão na sua máquina virtual existente e usar SSH para garantir a disponibilidade do dispositivo HSM.

Verificar a implantação

Para verificar se os dispositivos foram provisionados e 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 = (Get-AzContext).Subscription.Id
$resourceGroupName = "myRG"
$resourceName = "HSM1"  
Get-AzResource -Resourceid /subscriptions/$subId/resourceGroups/$resourceGroupName/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/$resourceName

Estado de provisionamento.

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

Teste da Implementação

Testar a implementação consiste em ligar a uma máquina virtual que pode aceder aos HSMs e depois ligar-se diretamente ao dispositivo HSM. Estas ações confirmarão que o HSM está acessível. A ferramenta ssh é usada para se ligar à máquina virtual. O comando será 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

A palavra-passe a usar é a do ficheiro de parâmetros. Depois de iniciar sessão na VM Linux, pode iniciar sessão no HSM usando o endereço IP privado encontrado no portal para o prefixo do recurso >hsm_vnic<.


(Get-AzResource -ResourceGroupName myRG -Name HSMdeploy -ExpandProperties).Properties.networkProfile.networkInterfaces.privateIpAddress

Quando tiver o endereço IP, execute o seguinte comando:

ssh tenantadmin@<ip address of HSM>

Se for bem-sucedido, será solicitado a fornecer uma palavra-passe. A palavra-passe padrão é PASSWORD. O HSM irá pedir-lhe para alterar a sua palavra-passe, por isso defina uma palavra-passe forte e utilize o mecanismo que a sua organização preferir para armazenar a palavra-passe e evitar perdas.

Importante

se perderes essa palavra-passe, o HSM terá de ser reiniciado, o que significa perder as chaves.

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

hsm show

O resultado deve assemelhar-se à imagem mostrada abaixo:

Captura de ecrã que mostra a saída do comando show do HSM.

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á acabaste de utilizar apenas o dispositivo HSM, então 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 "repor a zero" um dispositivo é errar a palavra-passe de administrador do HSM três vezes (nota: isto 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 de zeroização.

Note

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

Se quiser remover o recurso HSM no Azure, pode usar o seguinte comando substituindo as variáveis "$" pelos seus parâmetros únicos:


$subid = (Get-AzContext).Subscription.Id
$resourceGroupName = "myRG" 
$resourceName = "HSMdeploy"  
Remove-AzResource -Resourceid /subscriptions/$subId/resourceGroups/$resourceGroupName/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/$resourceName 

Passos seguintes

Após completar os passos do tutorial, recursos dedicados de HSM são provisionados e estão disponíveis na sua rede virtual. 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 sobre o planeamento da 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. O ficheiro modelo usado neste tutorial pode facilmente servir de base para uma implementação de dois HSM, mas precisa de ter os seus parâmetros modificados para satisfazer os seus requisitos.