Compartilhar via


Tutorial: Como implantar HSMs em uma rede virtual existente usando o PowerShell

O serviço HSM Dedicado do Azure fornece um dispositivo físico para uso exclusivo do cliente, com controle administrativo e responsabilidade de gerenciamento completos. Como a Microsoft fornece o hardware, ela precisa controlar como esses dispositivos são alocados para fazer com que a capacidade seja gerenciada com eficiência. Como resultado, em uma assinatura do Azure, o serviço de HSM Dedicado não costuma ficar visível para o provisionamento de recursos. Qualquer cliente do Azure que precise de acesso ao serviço de HSM Dedicado deve, primeiro, entrar em contato com o executivo de sua conta Microsoft para solicitar o registro no serviço de HSM Dedicado. O provisionamento será possível somente após esse processo ser concluído com sucesso.

Este tutorial tem como objetivo mostrar um processo de provisionamento típico no qual:

  • Um cliente já tem uma rede virtual
  • Já tem uma máquina virtual
  • E precisa adicionar recursos de HSM ao ambiente existente.

Uma arquitetura de implantação típica, multirregião e de alta disponibilidade é como se segue:

Um diagrama ilustrando uma implantação multirregião.

Este tutorial se concentra na integração de HSMs e do Gateway do ExpressRoute exigido (confira a Sub-rede 1 acima) a uma rede virtual existente (confira a 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 ou acima.

Observação

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

Pré-requisitos

Atualmente, o HSM Dedicado do Azure não está disponível no portal do Azure e, portanto, todas as interações com o serviço ocorrem por meio da linha de comando ou usando o PowerShell. Este tutorial usa o PowerShell no Azure Cloud Shell. Caso não esteja familiarizado com o PowerShell, siga as instruções de introdução apresentadas aqui: Introdução ao Azure PowerShell.

Suposições:

  • Você tem um gerente de conta Microsoft atribuído e atende ao requisito monetário de cinco milhões (US$ 5 milhões) ou mais na receita geral comprometida do Azure anualmente a fim de se qualificar para a integração e o uso do HSM Dedicado do Azure.
  • Você passou pelo processo de registro do HSM Dedicado do Azure e foi aprovado para o uso do serviço. Se não for o caso, entre em contato com seu representante da conta Microsoft para obter detalhes.
  • Você criou um Grupo de Recursos para esses recursos e para os novos recursos que são implantados neste tutorial.
  • Você já criou a rede virtual, a sub-rede e as máquinas virtuais necessárias de acordo com o diagrama acima e agora quer integrar 2 HSMs nessa implantação.

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

Provisionar um HSM Dedicado

O provisionamento dos HSMs e sua integração a uma rede virtual existente usando o gateway do ExpressRoute serão validados pela ferramenta de linha de comando SSH para garantir a acessibilidade e a disponibilidade básica do dispositivo HSM para quaisquer atividades de configuração futuras. Os comandos a seguir usarão um modelo do Resource Manager para criar os recursos de HSM e os recursos de rede associados.

Validar o registro de recursos

Conforme já mencionado, qualquer atividade de provisionamento requer que o serviço de HSM Dedicado esteja registrado para a sua assinatura. Para validá-lo, execute o comando do PowerShell a seguir no Cloud Shell do portal do Azure.

Get-AzProviderFeature -ProviderNamespace Microsoft.HardwareSecurityModules -FeatureName AzureDedicatedHsm

O comando deve retornar um status “Registrado” antes que você possa prosseguir. Caso você não esteja registrado para esse serviço, entre em contato com o representante da sua conta Microsoft.

Status da assinatura.

Criar recursos do HSM

Um dispositivo HSM é provisionado em uma rede virtual de clientes, o que requer uma sub-rede. A dependência para que o HSM habilite a comunicação entre a rede virtual e o dispositivo físico é um Gateway do ExpressRoute e, por fim, é necessária uma máquina virtual para acessar o dispositivo HSM usando o software cliente da Thales.

Você pode criar um recurso de HSM Dedicado usando um modelo do ARM baseado no exemplo a seguir. Você precisa atualizar os parâmetros substituindo as linhas que contêm "valor":"" pelos nomes de seus recursos preferidos.

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

Um exemplo dessas alterações é apresentado abaixo:

{
"$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 do 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

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

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

Compartilhamento de arquivos.

Assim que os arquivos forem carregados, você poderá criar recursos.

Alguns recursos são necessários como pré-requisito para a criação de 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 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

Observação

A configuração mais importante a ser observada em relação à rede virtual é que a sub-rede do dispositivo HSM deve ter as delegações definidas como "Microsoft.HardwareSecurityModules/dedicatedHSMs". O provisionamento de HSM não funcionará sem isso.

Assim que todos os pré-requisitos estiverem cumpridos e o modelo do Resource Manager estiver atualizado 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 irá garantir que o status seja exibido continuamente.

Como implantar um HSM Dedicado.

Quando estiver concluído com sucesso, o que é comprovado pelo “provisioningState” “Bem-sucedido”, 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 os dispositivos que foram provisionados e ver os atributos do dispositivo, execute o conjunto de comandos a seguir. Verifique se o grupo de recursos está definido corretamente e se o nome do recurso é exatamente igual ao que você tem no arquivo de parâmetros.


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

Status do provisionamento.

Agora também é possível ver os recursos usando o Azure Resource Explorer. Uma vez no Explorer, expanda "Assinaturas" à esquerda, expanda sua assinatura específica do HSM Dedicado, expanda "grupos de recursos", expanda o grupo de recursos que você usou e, por fim, selecione o item "recursos".

Testar a implantação

O teste de implantação é um caso de conexão a uma máquina virtual que possa acessar os HSMs para, em seguida, se conectar 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 apresentado a seguir, mas com o nome de 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âmetros. Após ter feito o login na VM do Linux, você poderá fazer login no HSM usando o endereço IP privado encontrado no portal para o recurso <prefix>hsm_vnic.


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

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

ssh tenantadmin@<ip address of HSM>

Se tiver êxito, você receberá uma solicitação de senha. A senha padrão é PASSWORD. O HSM solicitará que você altere sua senha, ou seja, defina uma senha forte e use o mecanismo preferido de sua organização para armazenar a senha e evitar sua perda.

Importante

Se você perder a senha, o HSM precisará ser redefinido, o que significa que você perderá as chaves.

Quando estiver conectado ao dispositivo HSM usando SSH, execute o comando a seguir para ter certeza de que o HSM está funcionando.

hsm show

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

Captura de tela mostrando o resultado do comando HSM show.

A essa altura, você alocou todos os recursos para ter uma implantação de dois HSMs altamente disponível e validou o acesso e o estado operacional. Outras configurações ou testes envolvem mais trabalho com o próprio dispositivo HSM. Para isso, siga as instruções do capítulo 7 do Guia de Administração do Thales Luna 7 HSM para inicializar o HSM e criar partições. Toda a documentação e o software estarão disponíveis para download diretamente na Thales depois que você se registrar no portal de suporte ao cliente da 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 concluído o uso somente do dispositivo HSM, será possível excluí-lo como um recurso e devolvê-lo ao pool gratuito. O motivo óbvio de preocupação aqui diz respeito a dados confidenciais de clientes que estejam no dispositivo. A melhor maneira de "zerar" um dispositivo é inserir a senha do administrador do HSM incorretamente três vezes (observação: esse não é o administrador do dispositivo, mas 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.

Observação

Caso tenha problema com alguma configuração do dispositivo Thales, entre em contato com o atendimento ao cliente da Thales.

Caso deseje remover o recurso HSM do Azure, use o seguinte comando, substituindo as variáveis "$" pelos 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 do tutorial, os recursos do HSM Dedicado serão provisionados e ficarão disponíveis em sua rede virtual. Agora você pode complementar essa implantação com mais recursos, conforme exigido pela sua arquitetura de implantação preferencial. Para saber mais sobre como ajudar a planejar sua implantação, confira os documentos de Conceitos. Recomendamos o uso de 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 abordando a disponibilidade regional. O arquivo de modelo usado neste tutorial pode ser usado facilmente como base para uma implantação de dois HSM, mas precisa ter seus parâmetros modificados para atender às suas necessidades.