Partilhar via


Tutorial: Implantando 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 completo e responsabilidade total de gerenciamento. Devido ao fornecimento de hardware físico, a Microsoft deve controlar como esses dispositivos são alocados para garantir que a capacidade seja gerenciada de forma eficaz. Como resultado, dentro de uma assinatura do Azure, o serviço HSM dedicado normalmente não é visível para provisionamento de recursos. Qualquer cliente do Azure que necessite de acesso ao serviço HSM Dedicado deve primeiro contactar o respetivo executivo de conta Microsoft para solicitar o registo para o serviço HSM Dedicado. Somente quando esse processo for concluído com êxito é que o provisionamento será possível.

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

  • 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 em várias regiões é a seguinte:

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

Este tutorial se concentra em um par de HSMs e o gateway de Rota Expressa 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 padrão do Azure. O mesmo processo de integração pode ser usado para HSMs na sub-rede 4 na VNET 3 acima.

Nota

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

Pré-requisitos

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

Pressupostos:

  • Você tem um Gerente de Conta da Microsoft atribuído e atende ao requisito monetário de cinco milhões de dólares (US$ 5 milhões) ou mais em receita geral comprometida do Azure anualmente para se qualificar para integração e uso do HSM Dedicado do Azure.
  • Você passou pelo processo de registro do HSM Dedicado do Azure e foi aprovado para uso do serviço. Caso contrário, contacte o seu representante da 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 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).

Provisionamento de um HSM dedicado

O provisionamento dos HSMs e a integração em uma rede virtual existente por meio do gateway 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 usarão um modelo do Gerenciador de Recursos para criar os recursos do HSM e os recursos de rede associados.

Validando o registro de recursos

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

Get-AzProviderFeature -ProviderNamespace Microsoft.HardwareSecurityModules -FeatureName AzureDedicatedHsm

O comando deve retornar um status de "Registrado" antes de prosseguir. Se não estiver registado neste serviço, contacte o seu representante da conta Microsoft.

Estado da subscrição.

Criando recursos de HSM

Um dispositivo HSM é provisionado em uma rede virtual do cliente, o que requer uma sub-rede. Uma dependência do HSM para permitir a comunicação entre a rede virtual e o dispositivo físico é um gateway de Rota Expressa e, finalmente, uma máquina virtual é necessária para acessar o dispositivo HSM usando o software cliente Thales.

Você pode criar um recurso HSM dedicado usando um modelo 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 preferidos.

  • namingInfix Prefixo para nomes de recursos do HSM
  • ExistingVirtualNetworkName Nome da rede virtual usada para os HSMs
  • DedicatedHsmResourceName1 Nome do recurso HSM no carimbo 1 do datacenter
  • DedicatedHsmResourceName2 Nome do recurso HSM no carimbo 2 do datacenter
  • hsmSubnetRange Intervalo de endereços IP de sub-rede para HSMs
  • ERSubnetRange Intervalo de endereços IP da sub-rede para gateway 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 associado do Resource Manager 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 no compartilhamento de arquivos do Cloud Shell do portal do Azure para uso. No portal do Azure, selecione o símbolo ">_" do Cloud Shell no canto superior direito, 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 definido.

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

Partilha de ficheiros.

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 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

Nota

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". O provisionamento do HSM não funcionará sem isso.

Quando todos os pré-requisitos estiverem em vigor e atualizar o modelo do Gerenciador de Recursos 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

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

Implantando um HSM Decicado.

Quando concluído com êxito, mostrado por "provisioningState": "Succeeded", você pode entrar em sua máquina virtual existente e usar 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 explorador de recursos do Azure. Uma vez no explorador, expanda "assinaturas" à esquerda, expanda sua assinatura específica para HSM dedicado, expanda "grupos de recursos", expanda o grupo de recursos que você usou e, finalmente, selecione o item "recursos".

Testando a implantação

O teste da 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 que você especificou no parâmetro.

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

A senha a ser usada é a do arquivo de parâmetros. Uma vez conectado à VM do Linux, você pode entrar 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-lhe-á solicitada uma palavra-passe. 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 preferir para armazenar a senha e evitar perdas.

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 seguinte comando 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 de dois HSM altamente disponível e acesso validado e 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 Thales Luna 7 HSM Administration Guide capítulo 7 para inicializar o HSM e criar partições. Toda a documentação e software estão disponíveis diretamente da Thales para download assim que estiver registado no portal de apoio ao cliente da Thales e tiver um ID de Cliente. Faça o download do Software Cliente versão 7.2 para obter todos os componentes necessários.

Excluir ou limpar recursos

Se você terminou apenas com o dispositivo HSM, ele pode ser excluído como um recurso e retornado ao pool gratuito. A preocupação óbvia ao fazer isso são quaisquer dados confidenciais do cliente que estejam no dispositivo. A melhor maneira de "zerar" um dispositivo é obter a senha de administrador do HSM errada três vezes (observação: isso não é administrador do aparelho, é o administrador do HSM real). 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.

Nota

Se tiver problemas com qualquer configuração do dispositivo Thales, deve contactar o apoio ao cliente da Thales.

Se quiser remover o recurso HSM no Azure, você pode 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óximos passos

Depois de concluir as etapas no tutorial, os recursos dedicados do HSM são provisionados e disponibilizados em sua rede virtual. Agora você está em posição de complementar essa implantação com mais recursos, conforme exigido pela sua arquitetura de implantação preferida. Para obter mais informações sobre como ajudar a planejar sua implantação, consulte os documentos de conceitos. Recomenda-se 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 facilmente usado como base para uma implantação de dois HSM, mas precisa ter seus parâmetros modificados para atender às suas necessidades.