Руководство по развертыванию HSM в существующей виртуальной сети с помощью PowerShell

Служба выделенных устройств HSM Azure предоставляет физическое устройство в исключительное пользование клиента со всеми возможностями административного контроля и под полную ответственность за управление устройством. Так как в этом случае предоставляется физическое оборудование, корпорация Майкрософт должна контролировать выделение этих устройств, чтобы обеспечить эффективное управление емкостью. В результате в подписке Azure выделенная служба HSM обычно не отображается для подготовки ресурсов. Любой клиент Azure, требующий доступа к выделенной службе HSM, должен сначала обратиться к руководителю учетной записи Майкрософт, чтобы запросить регистрацию выделенной службы HSM. Только после успешного завершения этого процесса возможна подготовка.

В этом руководстве демонстрируется стандартный процесс подготовки к работе. При этом подразумевается следующее:

  • у клиента есть виртуальная сеть;
  • у клиента есть виртуальная машина;
  • клиенту нужно добавить ресурсы HSM в существующую среду.

Типичная архитектура развертывания с высоким уровнем доступности в нескольких регионах выглядит следующим образом:

Схема, иллюстрирующая развертывание в нескольких регионах.

В этом руководстве описана интеграция пары устройств HSM и требуемого шлюза ExpressRoute (см. Subnet 1 (Подсеть 1) на схеме выше) в существующую виртуальную сеть (см. VNET 1 (Виртуальная сеть 1) на схеме выше). Все другие ресурсы — это стандартные ресурсы Azure. Аналогичный процесс интеграции можно использовать для устройств HSM в подсети 4 виртуальной сети 3 (см. представленный выше рисунок).

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Необходимые компоненты

Выделенный HSM Azure в настоящее время недоступен в портал Azure, поэтому все взаимодействия со службой выполняются с помощью командной строки или с помощью PowerShell. В этом руководстве используется PowerShell в Azure Cloud Shell. Если вы не знакомы с PowerShell, следуйте инструкциям по началу работы с Azure PowerShell.

Предположения.

  • У вас есть назначенный диспетчер учетных записей Майкрософт, который соответствует денежному требованию в размере пяти миллионов долларов (5 млн долл. США) или больше в целом в общей зафиксированной выручке Azure, чтобы претендовать на подключение и использование выделенного HSM Azure.
  • Вы прошли процесс регистрации выделенного устройства HSM в Azure и были утверждены для использования службы. Если это не так, свяжитесь со своим менеджером Майкрософт по работе с клиентами и запросите у него соответствующие сведения.
  • Вы создали группу ресурсов для этих ресурсов и для новых ресурсов, развернутых в этом руководстве.
  • Вы уже создали необходимую виртуальную сеть, подсеть и виртуальные машины и теперь хотите интегрировать 2 HSM в это развертывание.

В следующих инструкциях предполагается, что вы уже перешли к портал Azure, и вы открыли Cloud Shell (выберите ">_" в правом верхнем углу портала).

Подготовка выделенного устройства HSM к работе

Подготовка виртуальных машин и интеграция в существующую виртуальную сеть через шлюз ExpressRoute проверяется с помощью средства командной строки SSH, чтобы обеспечить доступность и базовую доступность устройства HSM для дальнейших действий конфигурации. В приведенных ниже командах используется шаблон Resource Manager, чтобы создать ресурсы HSM и связанные с ними сетевые ресурсы.

Проверка регистрации функции

Как упоминалось, любое действие подготовки требует регистрации выделенной службы HSM для вашей подписки. Чтобы проверить это, выполните следующую команду PowerShell в портал Azure Cloud Shell.

Get-AzProviderFeature -ProviderNamespace Microsoft.HardwareSecurityModules -FeatureName AzureDedicatedHsm

Перед дальнейшим продолжением команда должна вернуть состояние "Зарегистрировано". Если вы не зарегистрированы для этой службы, обратитесь к представителю учетной записи Майкрософт.

Состояние подписки.

Создание ресурсов HSM

Устройство HSM подготавливается в виртуальной сети клиентов, для которой требуется подсеть. Для использования HSM требуется шлюз ExpressRoute, который обеспечивает обмен данными между виртуальной сетью и физическим устройством. Также необходима виртуальная машина, которая осуществляет доступ к устройству HSM с помощью клиентского программного обеспечения Thales.

Вы можете создать выделенный ресурс HSM с помощью шаблона ARM на основе следующего примера. Необходимо обновить параметры, заменив строки, содержащие значение:", именами предпочитаемых ресурсов.

  • namingInfix — префикс для имен ресурсов HSM.
  • ExistingVirtualNetworkName — имя виртуальной сети, используемой устройствами HSM.
  • DedicatedHsmResourceName1 — имя ресурса HSM в метке 1 центра обработки данных.
  • DedicatedHsmResourceName2 — имя ресурса HSM в метке 2 центра обработки данных.
  • hsmSubnetRange — диапазон IP-адресов в подсети для устройств HSM.
  • ERSubnetRange — диапазон IP-адресов в подсети для шлюза виртуальной сети.

Вот пример таких изменений.

{
"$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"
    },
  }
}

Связанный файл шаблона Resource Manager создает шесть ресурсов со следующими сведениями:

  • подсеть для устройств HSM в указанной виртуальной сети;
  • подсеть для шлюза виртуальной сети;
  • шлюз виртуальной сети, который связывает виртуальную сеть с устройствами HSM;
  • общедоступный IP-адрес шлюза;
  • устройство HSM в метке 1;
  • устройство HSM в метке 2.

После установки значений параметров необходимо передать файлы в портал Azure общей папке Cloud Shell для использования. В портал Azure выберите символ Cloud Shell в> правом верхнем углу, который делает нижней частью экрана командной средой. Параметры : BASH и PowerShell, и вы должны выбрать BASH, если он еще не задан.

Выберите параметр отправки и скачивания на панели инструментов, чтобы отправить файлы шаблонов и параметров в общую папку:

Общая папка.

После отправки файлов вы будете готовы к созданию ресурсов.

Перед созданием новых ресурсов HSM требуется несколько необходимых ресурсов. Нужно создать виртуальную сеть с диапазонами подсетей для вычислительных ресурсов, устройств HSM и шлюза. Ниже приведены примеры команд по созданию такой виртуальной сети.

$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

Примечание.

Самым важным моментом при создании виртуальной сети, на который нужно обратить внимание, является то, что параметр delegations для подсети устройства HSM должен иметь значение Microsoft.HardwareSecurityModules/dedicatedHSMs. Иначе подготовка устройств HSM к работе будет невозможна.

После установки всех необходимых компонентов и обновления шаблона Resource Manager с уникальными именами (по крайней мере именем группы ресурсов) выполните следующую команду:


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

Выполнение этой команды занимает примерно 20 минут. Используемый параметр "-подробный" гарантирует, что состояние постоянно отображается.

Развертывание разреченного устройства HSM.

Завершив успешное выполнение, показано в разделе "ProvisioningState": "Успешно", вы можете войти в существующую виртуальную машину и использовать SSH для обеспечения доступности устройства HSM.

Проверка развертывания

Чтобы убедиться, что устройства подготовлены к работе, и просмотреть их параметры, запустите указанный ниже набор команд. Убедитесь, что группа ресурсов настроена соответствующим образом и имя ресурса совпадает с указанным в файле параметров.


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

Состояние подготовки.

Теперь вы также сможете просматривать ресурсы с помощью обозревателя ресурсов Azure. В обозревателе ресурсов разверните раздел "Подписки" слева, подписку для службы выделенных устройств HSM, раздел "Группы ресурсов", используемую группу ресурсов и выберите элемент "Ресурсы".

Проверка развертывания

Тестирование развертывания — это случай подключения к виртуальной машине, которая может получить доступ к HSM, а затем подключиться непосредственно к устройству HSM. Это позволит убедиться, что устройство HSM доступно. Для подключения к виртуальной машине используется средство SSH. Используйте приведенную ниже команду, заменив имя администратора и имя DNS значениями, указанными в вашем файле параметров.

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

Используйте пароль, указанный в файле параметров. После входа на виртуальную машину Linux вы можете войти в HSM с помощью частного IP-адреса, найденного на портале для префикса>ресурсов <hsm_vnic.


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

Узнав нужный IP-адрес, выполните следующую команду:

ssh tenantadmin@<ip address of HSM>

В случае успешного выполнения вам будет предложено ввести пароль. Пароль по умолчанию — PASSWORD. По запросу устройства HSM нужно будет изменить пароль на более надежный и воспользоваться механизмом для хранения пароля и предотвращения его утечки, используемым в вашей организации.

Внимание

Если вы забудете пароль, настройки устройства HSM нужно будет сбросить, что приведет к потере ключей.

При подключении к устройству HSM с помощью SSH выполните следующую команду, чтобы убедиться, что HSM работает.

hsm show

Выходные данные должны быть аналогичны показанным на снимке экрана ниже.

Снимок экрана: выходные данные команды HSM show.

На этом этапе вы выделили все ресурсы для высокодоступного развертывания, двух развертываний HSM и проверенного доступа и операционного состояния. Дальнейшие операции по конфигурации или проверке требуют взаимодействия с самим устройством HSM. Для этого выполните инструкции, изложенные в разделе 7 руководства администратора Thales Luna HSM 7, где описаны действия по инициализации устройства HSM и созданию разделов. Все документы и программное обеспечение доступны непосредственно из Thales для скачивания после регистрации на портале поддержки клиентов Thales и идентификатор клиента. Скачайте клиентское программное обеспечение версии 7.2, чтобы получить все необходимые компоненты.

Удаление или очистка ресурсов

Если вы закончили работу только с устройством HSM, его можно удалить как ресурс и вернуться в свободный пул. Очевидная проблема при этом — возможное наличие конфиденциальных данных клиента на устройстве. Лучший способ "нулизовать" устройство заключается в том, чтобы получить пароль администратора HSM неправильно три раза (обратите внимание: это не администратор устройства, это фактический администратор HSM). В качестве меры безопасности для защиты материала ключа устройство не может быть удалено как ресурс Azure, пока он не находится в отнулевом состоянии.

Примечание.

При возникновении проблем с конфигурацией устройств Thales обратитесь в службу поддержки клиентов Thales.

Если вы хотите удалить ресурс HSM в Azure, можно использовать следующую команду, заменив переменные "$" уникальными параметрами:


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

Следующие шаги

После выполнения действий, описанных в этом руководстве, ресурсы выделенных устройств HSM будут готовы к работе и доступны в вашей виртуальной сети. Теперь вы можете дополнить это развертывание дополнительными ресурсами в соответствии с предпочитаемой архитектурой развертывания. Дополнительные сведения о планировании развертывания см. в базовой документации. Рекомендуем использовать схему с двумя устройствами HSM в основном регионе, чтобы обеспечить доступность на уровне стойки, и двумя устройствами HSM в другом регионе, чтобы обеспечить доступность на уровне региона. Файл шаблона, который использовался в этом руководстве, может служить образцом для развертывания двух устройств HSM, но его параметры нужно изменить в соответствии с вашими требованиями.