Tutorial: Implantando HSMs em uma rede virtual existente usando o PowerShell

Importante

O HSM Dedicado do Azure está sendo desativado. A Microsoft dará suporte total aos clientes HSM dedicados existentes até 31 de julho de 2028. Nenhuma nova incorporação de clientes será aceita. Para obter detalhes completos e ações necessárias, consulte a atualização oficial do Azure.

Se você for um usuário HSM Dedicado do Azure, consulte Migrar do HSM Dedicado do Azure para o Managed HSM ou Azure Cloud HSM. O Azure Cloud HSM já está em disponibilidade geral e é o sucessor do HSM Dedicado do Azure.

Novos clientes devem avaliar e adotar Azure Cloud HSM, Managed HSM ou Azure Key Vault com base nos requisitos da carga de trabalho. Para obter diretrizes, consulte Como escolher a solução de gerenciamento de chaves do Azure correta.

O Serviço HSM Dedicado do Azure fornece um dispositivo físico para uso exclusivo do cliente, com controle administrativo completo e responsabilidade de gerenciamento total. Como o serviço fornece hardware físico, a Microsoft controla como aloca esses dispositivos para garantir o gerenciamento efetivo da capacidade. Como resultado, em uma assinatura Azure, o serviço de HSM dedicado normalmente não está visível para provisionamento de recursos. Para acessar o serviço de HSM dedicado, entre em contato com seu executivo de contas da Microsoft para solicitar o registro para o serviço de HSM dedicado. Você só pode provisionar o serviço depois que esse processo for concluído com êxito.

Este tutorial tem como objetivo mostrar um processo de provisionamento típico em que:

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

Uma arquitetura de implantação típica, de alta disponibilidade e de várias regiões é a seguinte:

Um diagrama ilustrando uma implantação de várias regiões.

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

Note

Recomendamos que você use o módulo Azure Az PowerShell para interagir com Azure. Para começar, consulte Instalar Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

Prerequisites

HSM Dedicado do Azure não está disponível no portal Azure, portanto, todas as interações com o serviço são por meio da linha de comando ou do PowerShell. Este tutorial usa o PowerShell no Azure Cloud Shell. Se você for novo no PowerShell, siga as instruções de introdução aqui: Azure PowerShell Introdução.

Suposições:

  • É necessário ter um Gerente de Conta da Microsoft designado para se qualificar para a integração e o uso do HSM Dedicado do Azure.
  • Você passou pelo processo de registro de HSM Dedicado do Azure e foi aprovado para uso do serviço. Caso contrário, entre em contato com o representante da sua conta Microsoft para obter detalhes.
  • Você criou um Grupo de Recursos para esses recursos e para os novos recursos implantados neste tutorial.
  • Você já criou a rede virtual, a sub-rede e as máquinas virtuais necessárias e agora deseja integrar 2 HSMs a essa implantação.

As instruções a seguir pressupõem que você está no portal Azure e abriu o Cloud Shell (selecione ">_" no canto superior direito do portal).

Provisionar um HSM dedicado

O provisionamento dos HSMs e a integração em uma rede virtual existente por meio do gateway do ExpressRoute são validados usando a ferramenta de linha de comando ssh para garantir a acessibilidade e a disponibilidade básica do dispositivo HSM para quaisquer outras atividades de configuração. Os comandos a seguir usam um modelo de Resource Manager para criar os recursos de HSM e os recursos de rede associados.

Validar o registro de recursos

Conforme mencionado, qualquer atividade de provisionamento requer que o serviço de HSM dedicado seja registrado para sua assinatura. Para validar isso, execute o seguinte comando do PowerShell no portal Azure Cloud Shell.

Get-AzProviderFeature -ProviderNamespace Microsoft.HardwareSecurityModules -FeatureName AzureDedicatedHsm

O comando deve retornar um status de "Registrado" antes de continuar. Se você não estiver registrado para esse serviço, entre em contato com seu representante da conta Microsoft.

Status da assinatura.

Criando recursos do HSM

Um dispositivo HSM é provisionado na rede virtual do cliente, o que requer uma sub-rede. Uma dependência do HSM para habilitar a comunicação entre a rede virtual e o dispositivo físico é um gateway do ExpressRoute e, por fim, uma máquina virtual é necessária para acessar o dispositivo HSM usando o software cliente Thales.

Você pode criar um recurso de HSM dedicado usando um modelo do ARM com base no exemplo a seguir. Você deve atualizar os parâmetros substituindo as linhas que contêm "value":"" por seus nomes de recursos preferenciais.

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

Um exemplo dessas 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 arquivo de modelo Resource Manager associado cria seis recursos com essas informações:

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

Depois que os valores de parâmetro são definidos, os arquivos precisam ser carregados para o compartilhamento de arquivos do Cloud Shell no portal do Azure para uso. No portal Azure, selecione o símbolo do Cloud Shell ">_" no canto superior direito, o que torna a parte inferior da tela um ambiente de comando. As opções são BASH e PowerShell e você deve selecionar BASH se ainda não estiver selecionado.

Selecione a opção de upload/download na barra de ferramentas para carregar os arquivos de modelo e parâmetro no compartilhamento de arquivos:

Compartilhamento de arquivos.

Depois que os arquivos forem carregados, você estará pronto para criar recursos.

Há alguns recursos de pré-requisito necessários antes de criar novos recursos de HSM. Você deve ter uma rede virtual com intervalos de sub-rede para computação, HSMs e gateway. Os comandos a seguir servem como um exemplo do que criaria essa 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 ser observada 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 de HSM não funcionará.

Depois que todos os pré-requisitos estiverem em vigor e você atualizar o modelo do Resource Manager com seus nomes exclusivos (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

Esse comando deve levar aproximadamente 20 minutos para ser concluído. A opção "-verbose" usada garante que o status seja exibido continuamente.

Implantando um HSM dedicado.

Quando concluído com êxito, exibido como “provisioningState”: “Succeeded”, você poderá entrar em sua máquina virtual existente e usar o SSH para garantir a disponibilidade do dispositivo HSM.

Verificando a implantação

Para verificar se os dispositivos foram provisionados e ver os atributos do dispositivo, execute o seguinte conjunto de comandos. Verifique se o grupo de recursos está definido adequadamente e se o nome do recurso é exatamente como você tem no arquivo de parâmetro.


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

Status de provisionamento.

Agora você também poderá ver os recursos usando o Azure resource explorer. Uma vez no explorer, expanda "assinaturas" à esquerda, expanda sua assinatura específica para Dedicated HSM, expanda "grupos de recursos", expanda o grupo de recursos usado e, por fim, selecione o item "recursos".

Testando a implantação

Testar a implantação é um caso de conexão com uma máquina virtual que pode acessar os HSMs e, em seguida, conectar-se diretamente ao dispositivo HSM. Essas ações confirmarão que o HSM está acessível. A ferramenta ssh é usada para se conectar à máquina virtual. O comando será semelhante ao seguinte, mas com o nome do administrador e o nome dns especificados no parâmetro.

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

A senha a ser usada é a do arquivo de parâmetro. Depois de fazer logon na VM do Linux, você poderá entrar no HSM usando o endereço IP privado encontrado no portal para o recurso >prefixo< hsm_vnic.


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

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

ssh tenantadmin@<ip address of HSM>

Se tiver êxito, será solicitado a inserir uma senha. A senha padrão é PASSWORD. O HSM solicitará que você altere sua senha, portanto, defina uma senha forte e use qualquer mecanismo que sua organização prefira para armazenar a senha e evitar sua perda.

Importante

se você perder essa senha, o HSM terá que ser redefinido e isso significa perder suas chaves.

Quando você estiver conectado ao dispositivo HSM usando ssh, execute o comando a seguir para garantir que o HSM esteja operacional.

hsm show

A saída deve se parecer com a imagem mostrada abaixo:

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

Neste ponto, você alocou todos os recursos para uma implantaçã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, você deve seguir as instruções no Capítulo 7 do Guia de Administração do HSM thales Luna 7 para inicializar o HSM e criar partições. Toda a documentação e software estão disponíveis diretamente do Thales para download depois que você estiver registrado no portal de suporte ao cliente do Thales e tiver uma ID do Cliente. Baixe o Software Cliente versão 7.2 para obter todos os componentes necessários.

Excluir ou limpar recursos

Se você tiver terminado apenas com o dispositivo HSM, ele poderá ser excluído como um recurso e retornado para o pool gratuito. A preocupação óbvia ao fazer isso são os dados confidenciais do cliente que estão no dispositivo. A melhor maneira de "zeroizar" um dispositivo é digitar a senha de administrador do HSM incorretamente três vezes (observação: este não é o administrador do appliance, é o administrador real do HSM). Como medida de segurança para proteger o material da chave, o dispositivo não pode ser excluído como um recurso do Azure até que esteja no estado zerado.

Note

se você tiver problemas com qualquer configuração de dispositivo Thales, entre em contato com o suporte ao cliente thales.

Se você quiser remover o recurso HSM no Azure, poderá usar o seguinte comando substituindo as variáveis "$" por seus parâmetros exclusivos:


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

Próximas Etapas 

Depois de concluir as etapas no tutorial, os recursos de HSM dedicados são provisionados e disponíveis em sua rede virtual. Agora você está em posição de complementar essa implantação com mais recursos, conforme exigido pela arquitetura de implantação preferida. Para saber mais sobre como ajudar a planejar sua implantação, confira os documentos de Conceitos. É recomendável um design com dois HSMs em uma região primária abordando a disponibilidade no nível do rack e dois HSMs em uma região secundária que tratam da disponibilidade regional. O arquivo de modelo usado neste tutorial pode ser facilmente usado como base para uma implantação de dois HSM, mas precisa ter seus parâmetros modificados para atender às suas necessidades.