整合受控 HSM 與 Azure Private Link
Azure Private Link 服務可讓您透過虛擬網路中的私人端點,存取各項 Azure 服務 (例如受控硬體安全模組 (HSM)、Azure 儲存體和 Azure Cosmos DB 等),以及 Azure 裝載的客戶/合作夥伴服務。
Azure 私人端點是一種網路介面,可讓您私密安全地連線至 Azure Private Link 所提供的服務。 私人端點會使用您 VNet 中的私人 IP 位址,有效地將服務帶入您的 VNet 中。 服務的所有流量都可以透過私人端點路由傳送,因此不需要閘道、NAT 裝置、ExpressRoute 或 VPN 連線或公用 IP 位址。 虛擬網路和服務間的流量會在通過 Microsoft 骨幹網路時隨之減少,降低資料在網際網路中公開的風險。 您可以連線至 Azure 資源的執行個體,以提供您存取控制中最高層級的細微性。
如需詳細資訊,請參閱何謂 Azure Private Link?
注意
受控 HSM 目前不支援 IP 規則或虛擬網路服務端點
必要條件
若要整合受控 HSM 與 Azure Private Link,您需要下列各項:
- 受控 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,包括公用網際網路和 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 區域資源。
- 您必須有符合此名稱的私人 DNS 區域資源:privatelink.managedhsm.azure.net。
- 若要了解如何進行這項設定,請參閱下列連結。 私人 DNS 區域
檢查以確認私人 DNS 區域已連結至虛擬網路。 如果您仍然收到傳回的公用 IP 位址,表示可能發生問題。
- 如果私人區域 DNS 未連結至虛擬網路,則來自虛擬網路的 DNS 查詢會傳回 HSM 的公用 IP 位址。
- 瀏覽至 Azure 入口網站中的私人 DNS 區域資源,按一下 [虛擬網路連結] 選項。
- 必須列出將呼叫 HSM 的虛擬網路。
- 如果不存在,請加以新增。
- 如需詳細步驟,請參閱下列文件:將虛擬網路連結到私人 DNS 區域
檢查以確定私人 DNS 區域未遺漏 HSM 的 A 記錄。
- 瀏覽至 [私人 DNS 區域] 頁面。
- 按一下 [概觀],檢查是否有 A 記錄包含 HSM 的簡單名稱。 請不要指定任何尾碼。
- 請確定您已檢查拼寫,並建立或修正 A 記錄。 您可以使用 3600 的 TTL (1 小時)。
- 請確定您指定的是正確的私人 IP 位址。
檢查並確定 A 記錄具有正確的 IP 位址。
- 您可以在 Azure 入口網站中開啟私人端點資源,以確認 IP 位址。
- 在 Azure 入口網站中,瀏覽至 Microsoft.Network/privateEndpoints 資源
- 在概觀頁面中尋找網路介面,然後按一下該連結。
- 此連結會顯示 NIC 資源的概觀,其中包含私人 IP 位址屬性。
- 確認這是 A 記錄中指定的正確 IP 位址。
限制和設計考量
注意
每個訂用帳戶已啟用私人端點的受控 HSM 數目是可調整的限制。 以下顯示的限制為預設限制。 如果想要求對訂用帳戶提高限制,請建立 Azure 支援票證。 我們會根據個案核准這些要求。
定價:如需定價資訊,請參閱 Azure Private Link 定價。
每個受控 HSM 的私人端點數目上限:64。
每個訂用帳戶中具有私人端點的受控 HSM 預設數目:400。
如需詳細資訊,請參閱 Azure Private Link 服務:限制
後續步驟
- 深入了解 Azure Private Link
- 深入了解受控 HSM