你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
将托管 HSM 与 Azure 专用链接集成
使用 Azure 专用链接服务,可以通过虚拟网络中的专用终结点访问 Azure 服务(例如托管 HSM、Azure 存储和 Azure Cosmos DB 等)以及 Azure 托管的客户服务/合作伙伴服务。
Azure 专用终结点是一个网络接口,可以通过私密且安全的方式将你连接到 Azure 专用链接支持的服务。 专用终结点使用 VNet 中的专用 IP 地址将服务有效接入 VNet 中。 发往服务的所有流量都可以通过专用终结点路由,因此不需要网关、NAT 设备、ExpressRoute 或 VPN 连接或公共 IP 地址。 虚拟网络与服务之间的流量将通过 Microsoft 主干网络,因此不会从公共 Internet 泄露。 可以连接到 Azure 资源的实例,从而获得最高级别的访问控制粒度。
有关详细信息,请参阅什么是 Azure 专用链接?
注意
托管 HSM 目前不支持 IP 规则或虚拟网络服务终结点
先决条件
若要将托管 HSM 与 Azure 专用链接集成,需要准备好以下各项:
- 一个托管 HSM。 有关详细信息,请参阅使用 Azure CLI 预配和激活托管 HSM。
- 一个 Azure 虚拟网络。
- 虚拟网络中的子网。
- 拥有托管 HSM 和虚拟网络的所有者或参与者权限。
- Azure CLI 版本 2.25.0 或更高版本。 运行
az --version
即可查找版本。 如需进行安装或升级,请参阅安装 Azure CLI。
专用终结点和虚拟网络必须位于同一区域。 使用门户选择专用终结点的区域时,只会自动筛选该区域中的虚拟网络。 HSM 可以位于不同的区域。
专用终结点使用虚拟网络中的专用 IP 地址。
使用 CLI 建立连接到托管 HSM 的专用链接(初始设置)
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 访问,包括公共 Internet 和 Azure 服务。 如果想要允许 Microsoft 服务访问托管 HSM 中的密钥,请使用 --bypass AzureServices
选项。 单个实体(例如 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://learn.microsoft.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
验证专用链接连接是否有效
应该验证专用终结点资源的同一子网中的资源是否可以通过专用 IP 地址连接到 HSM,以及它们是否具有正确的专用 DNS 区域集成。
首先,遵循在 Azure 门户中创建 Windows 虚拟机中的步骤创建一个虚拟机。
在“网络”选项卡中:
- 指定虚拟网络和子网。 可以创建新的或选择现有的虚拟网络。 如果选择现有的虚拟网络,请确保区域匹配。
- 指定公共 IP 资源。
- 在“NIC 网络安全组”中选择“无”。
- 在“负载均衡”中选择“否”。
打开命令行并运行以下命令:
nslookup <your-HSM-name>.managedhsm.azure.net
如果运行 ns lookup 命令以通过公共终结点解析托管 HSM 的 IP 地址,你将会看到如下所示的结果:
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 命令以通过专用终结点解析托管 HSM 的 IP 地址,你将会看到如下所示的结果:
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
故障排除指南
检查以确保专用终结点处于已批准状态。
- 使用
az keyvault private-endpoint-connections show
子命令查看专用终结点连接的状态。 - 请确保连接状态为“已批准”并且预配状态为“成功”。
- 请确保虚拟网络与你正在使用的网络匹配。
- 使用
请检查以确保具有专用 DNS 区域资源。
- 必须具有名称恰好是 privatelink.managedhsm.azure.net 的专用 DNS 区域资源。
- 若要了解如何对此进行设置,请参阅以下链接。 专用 DNS 区域
请检查确保专用 DNS 区域已与虚拟网络关联。 如果仍在返回公共 IP 地址,则可能存在该问题。
- 如果专用区域 DNS 未与虚拟网络关联,则从虚拟网络发起的 DNS 查询将返回 HSM 的公共 IP 地址。
- 在 Azure 门户中导航到专用 DNS 区域资源,然后单击虚拟网络链接选项。
- 必须列出将对 HSM 执行调用的虚拟网络。
- 如果它不存在,请添加它。
- 有关详细步骤,请参阅以下文档将虚拟网络链接到专用 DNS 区域
请检查以确保专用 DNS 区域中包含 HSM 的 A 记录。
- 导航到专用 DNS 区域页。
- 单击“概述”,检查是否存在 HSM 简单名称的 A 记录。 不要指定任何后缀。
- 请务必检查拼写,创建或修复 A 记录。 可以使用 3600(1小时)的 TTL。
- 确保指定了正确的专用 IP 地址。
检查以确保 A 记录具有正确的 IP 地址。
- 可在 Azure 门户中打开专用终结点资源来确认 IP 地址。
- 在 Azure 门户中,导航到 Microsoft.Network/privateEndpoints 资源
- 在概述页中,查找网络接口,然后单击该链接。
- 该链接显示 NIC 资源的概述,其中包含专用 IP 地址属性。
- 验证这是否为在 A 记录中指定的正确 IP 地址。
限制和设计注意事项
注意
按订阅启用了专用终结点的托管 HSM 数量可调整限制。 下面显示的限制是默认限制。 若要请求增加订阅限制,请创建 Azure 支持票证。 我们将根据具体情况审批这些请求。
定价:有关定价信息,请参阅 Azure 专用链接定价。
每个托管 HSM 的专用终结点数目上限:64。
每个订阅的包含专用终结点的默认托管 HSM 数目:400。
有关详细信息,请参阅 Azure 专用链接服务:限制
后续步骤
- 详细了解 Azure 专用链接
- 详细了解托管 HSM