Интеграция управляемого модуля HSM со службой "Приватный канал Azure"

Служба "Приватный канал Azure" обеспечивает доступ к службам Azure (например, к управляемому модулю HSM, службе хранилища Azure и Azure Cosmos DB), а также к размещенным в Azure службам клиентов или партнеров через частную конечную точку вашей виртуальной сети.

Частная конечная точка Azure — это сетевой интерфейс, который защищенно и надежно подключается к службе через Приватный канал Azure. Частная конечная точка использует частный IP-адрес из виртуальной сети, по сути перемещая службу в виртуальную сеть. Весь трафик к службе может маршрутизироваться через частную конечную точку, поэтому шлюзы, устройства преобразования сетевых адресов (NAT), подключения ExpressRoute и VPN, а также общедоступные IP-адреса не требуются. Трафик между виртуальной сетью и службой проходит через магистральную сеть Майкрософт. Это позволяет избежать рисков общедоступного Интернета. Вы можете подключиться к экземпляру ресурса Azure, обеспечивая наивысшую степень детализации в управлении доступом.

Дополнительные сведения см. в статье Что такое Приватный канал Azure.

Примечание.

В настоящее время управляемый модуль HSM не поддерживает IP-правила и конечные точки службы для виртуальной сети.

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

Чтобы интегрировать управляемый модуль HSM с Приватным каналом Azure, вам потребуется:

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

Частная конечная точка использует частный IP-адрес в виртуальной сети.

az login                                                                   # Login to Azure CLI
az account set --subscription {SUBSCRIPTION ID}                            # Select your Azure Subscription
az group create -n {RESOURCE GROUP} -l {REGION}                            # Create a new Resource Group
az provider register -n Microsoft.KeyVault                                 # Register KeyVault as a provider
az keyvault update-hsm --hsm-name {HSM NAME} -g {RG} --default-action deny # Turn on firewall

az network vnet create -g {RG} -n {vNet NAME} --location {REGION}           # Create a Virtual Network

    # Create a Subnet
az network vnet subnet create -g {RG} --vnet-name {vNet NAME} --name {subnet NAME} --address-prefixes {addressPrefix}

    # Disable Virtual Network Policies
az network vnet subnet update --name {subnet NAME} --resource-group {RG} --vnet-name {vNet NAME} --disable-private-endpoint-network-policies true

    # Create a Private DNS Zone
az network private-dns zone create --resource-group {RG} --name privatelink.managedhsm.azure.net

    # Link the Private DNS Zone to the Virtual Network
az network private-dns link vnet create --resource-group {RG} --virtual-network {vNet NAME} --zone-name privatelink.managedhsm.azure.net --name {dnsZoneLinkName} --registration-enabled true

Разрешение доверенным службам доступа к управляемому модулю HSM

Когда брандмауэр включен, весь доступ к HSM из любого расположения, не использующего частные конечные точки, включая общедоступный Интернет и службы Azure, будет отклонен. Используйте параметр --bypass AzureServices, если вы хотите разрешить службам Майкрософт доступ к ключам в управляемом модуле HSM. Отдельные сущности (например, учетная запись службы хранилища Azure или Azure SQL Server) по-прежнему должны иметь определенные назначения ролей, чтобы иметь доступ к ключу.

Примечание.

Поддерживаются только определенные сценарии использования доверенных служб. Дополнительные сведения см. в списке сценариев использования доверенных служб.

az keyvault update-hsm --hsm-name {HSM NAME} -g {RG} --default-action deny --bypass AzureServices

Создание частной конечной точки (автоматическое утверждение)

az network private-endpoint create --resource-group {RG} --vnet-name {vNet NAME} --subnet {subnet NAME} --name {Private Endpoint Name}  --private-connection-resource-id "/subscriptions/{AZURE SUBSCRIPTION ID}/resourceGroups/{RG}/providers/Microsoft.KeyVault/managedHSMs/{HSM NAME}" --group-id managedhsm --connection-name {Private Link Connection Name} --location {AZURE REGION}

Примечание.

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

Создание частной конечной точки (запрос утверждения вручную)

az network private-endpoint create --resource-group {RG} --vnet-name {vNet NAME} --subnet {subnet NAME} --name {Private Endpoint Name}  --private-connection-resource-id "/subscriptions/{AZURE SUBSCRIPTION ID}/resourceGroups/{RG}/providers/Microsoft.KeyVault/managedHSMs/{HSM NAME}" --group-id managedhsm --connection-name {Private Link Connection Name} --location {AZURE REGION} --manual-request
# Show Connection Status
az network private-endpoint show --resource-group {RG} --name {Private Endpoint Name}

# Approve a Private Link Connection Request
az keyvault private-endpoint-connection approve --description {"OPTIONAL DESCRIPTION"} --resource-group {RG} --hsm-name {HSM NAME} –-name {PRIVATE LINK CONNECTION NAME}

# Deny a Private Link Connection Request
az keyvault private-endpoint-connection reject --description {"OPTIONAL DESCRIPTION"} --resource-group {RG} --hsm-name {HSM NAME} –-name {PRIVATE LINK CONNECTION NAME}

# Delete a Private Link Connection Request
az keyvault private-endpoint-connection delete --resource-group {RG} --hsm-name {HSM NAME} --name {PRIVATE LINK CONNECTION NAME}

Добавление записей Частной зоны DNS

# Determine the Private Endpoint IP address
az network private-endpoint show -g {RG} -n {PE NAME}      # look for the property networkInterfaces then id; the value must be placed on {PE NIC} below.
az network nic show --ids {PE NIC}                         # look for the property ipConfigurations then privateIpAddress; the value must be placed on {NIC IP} below.

# https://video2.skills-academy.com/azure/dns/private-dns-getstarted-cli#create-an-additional-dns-record
az network private-dns zone list -g {RG}
az network private-dns record-set a add-record -g {RG} -z "privatelink.managedhsm.azure.net" -n {HSM NAME} -a {NIC IP}
az network private-dns record-set list -g {RG} -z "privatelink.managedhsm.azure.net"

# From home/public network, you wil get a public IP. If inside a vnet with private zone, nslookup will resolve to the private ip.
nslookup {HSM NAME}.managedhsm.azure.net
nslookup {HSM NAME}.privatelink.managedhsm.azure.net

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

Сначала создайте виртуальную машину, выполнив действия, описанные в статье Краткое руководство. Создание виртуальной машины Windows на портале Azure.

На вкладке "Сеть" выполните следующее:

  1. Укажите виртуальную сеть и подсеть. Можно создать виртуальную сеть или выбрать существующую. При выборе существующей сети убедитесь, что регион соответствует.
  2. Укажите ресурс общедоступного IP-адреса.
  3. В списке "Группа безопасности сети сетевого адаптера" выберите "Нет".
  4. В поле "Балансировка нагрузки" выберите "Нет".

Откройте командную строку и выполните следующую команду:

nslookup <your-HSM-name>.managedhsm.azure.net

Если вы выполните команду ns lookup, чтобы разрешить IP-адрес управляемого модуля HSM через общедоступную конечную точку, вы получите следующий результат:

c:\ >nslookup <your-hsm-name>.managedhsm.azure.net

Non-authoritative answer:
Name:    
Address:  (public IP address)
Aliases:  <your-hsm-name>.managedhsm.azure.net

Если вы выполните команду ns lookup, чтобы разрешить IP-адрес управляемого модуля HSM через частную конечную точку, вы получите следующий результат:

c:\ >nslookup your_hsm_name.managedhsm.azure.net

Non-authoritative answer:
Name:    
Address:  10.1.0.5 (private IP address)
Aliases:  <your-hsm-name>.managed.azure.net
          <your-hsm-name>.privatelink.managedhsm.azure.net

Руководство по устранению неполадок

  • Убедитесь, что частная конечная точка находится в состоянии утверждено.

    1. Используйте подкоманду az keyvault private-endpoint-connections show, чтобы просмотреть состояние подключения к частной конечной точке.
    2. Убедитесь, что подключение находится в состоянии Утверждено, а состояние подготовки — Успешно.
    3. Убедитесь, что виртуальная сеть совпадает с используемой.
  • Убедитесь, что у вас есть ресурс Частной зоны DNS.

    1. Вам необходим ресурс Частной зоны DNS с точно таким именем: privatelink.vaultcore.azure.net.
    2. Чтобы узнать, как это сделать, перейдите по следующей ссылке. Частные зоны DNS
  • Убедитесь, что Частная зона DNS связана с виртуальной сетью. Эта проблема может быть вызвана тем, что вы по-прежнему получаете общедоступный IP-адрес.

    1. Если Частная зона DNS не связана с виртуальной сетью, запрос DNS, исходящий из виртуальной сети, возвратит общедоступный IP-адрес HSM.
    2. Перейдите к ресурсу Частной зоны DNS на портале Azure и щелкните параметр связей виртуальных сетей.
    3. Должна быть указана виртуальная сеть, которая будет выполнять вызовы к HSM.
    4. Если она отсутствует, добавьте ее.
    5. Подробные инструкции см. в разделе освязывании виртуальной сети с Частной зоной DNS.
  • Проверьте, указана ли запись А для HSM в Частной зоне DNS.

    1. Перейдите на страницу Частной зоны DNS.
    2. Щелкните "Обзор" и проверьте, есть ли запись A с простым именем вашего HSM. Не указывайте суффиксы.
    3. Проверьте правильность написания, а затем создайте или исправьте запись A. Значение срока жизни может быть 3600 секунд (1 час).
    4. Необходимо указать правильный Частный IP-адрес.
  • Убедитесь, что запись A имеет правильный IP-адрес.

    1. Вы можете проверить IP-адрес, открыв ресурс частной конечной точки на портале Azure.
    2. Перейдите к ресурсу Microsoft.Network/privateEndpoints на портале Azure
    3. На странице обзора найдите сетевой интерфейс и щелкните соответствующую ссылку.
    4. Отобразится обзор ресурса сетевой карты, который содержит частный IP-адрес свойства.
    5. Убедитесь, что это правильный IP-адрес, который указан в записи A.

Проблемы и ограничения разработки

Примечание.

Количество управляемых модулей HSM с включенными частными конечными точками для каждой подписки можно настраивать. Ниже приведено ограничение по умолчанию. Если вы хотите увеличить лимит для подписки, создайте запрос в службу поддержки Azure. Мы одобряем эти запросы в зависимости от индивидуальной ситуации.

Цены: сведения о ценах на службу “Приватный канал Azure” см. здесь.

Максимальное число частных конечных точек на один управляемый модуль HSM: 64.

Число управляемых модулей HSM с частными конечными точками на одну подписку по умолчанию: 400.

Подробнее см. в разделе Ограничения службы “Приватный канал Azure”.

Next Steps