Share via


整合受控 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 位址。

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 虛擬機器中的步驟,建立虛擬機器。

在 [網路] 索引標籤中:

  1. 指定虛擬網路和子網路。 您可以建立新的虛擬機器,或選取現有虛擬機器。 如果選取現有虛擬機器,請確定區域相符。
  2. 建立公用 IP 資源。
  3. 在 [NIC 網路安全性群組] 中,選取 [無]。
  4. 在 [負載平衡] 中,選取 [否]。

開啟命令列並執行下列命令:

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

疑難排解指南

  • 請檢查以確定私人端點處於已核准狀態。

    1. 使用 az keyvault private-endpoint-connections show 子命令查看私人端點連線的狀態。
    2. 請確定連線狀態為「已核准」,且佈建狀態為「已成功」。
    3. 請確定虛擬網路符合您使用的虛擬網路。
  • 請檢查以確定您有私人 DNS 區域資源。

    1. 您必須有符合此名稱的私人 DNS 區域資源:privatelink.managedhsm.azure.net。
    2. 若要了解如何進行這項設定,請參閱下列連結。 私人 DNS 區域
  • 檢查以確認私人 DNS 區域已連結至虛擬網路。 如果您仍然收到傳回的公用 IP 位址,表示可能發生問題。

    1. 如果私人區域 DNS 未連結至虛擬網路,則來自虛擬網路的 DNS 查詢會傳回 HSM 的公用 IP 位址。
    2. 瀏覽至 Azure 入口網站中的私人 DNS 區域資源,按一下 [虛擬網路連結] 選項。
    3. 必須列出將呼叫 HSM 的虛擬網路。
    4. 如果不存在,請加以新增。
    5. 如需詳細步驟,請參閱下列文件:將虛擬網路連結到私人 DNS 區域
  • 檢查以確定私人 DNS 區域未遺漏 HSM 的 A 記錄。

    1. 瀏覽至 [私人 DNS 區域] 頁面。
    2. 按一下 [概觀],檢查是否有 A 記錄包含 HSM 的簡單名稱。 請不要指定任何尾碼。
    3. 請確定您已檢查拼寫,並建立或修正 A 記錄。 您可以使用 3600 的 TTL (1 小時)。
    4. 請確定您指定的是正確的私人 IP 位址。
  • 檢查並確定 A 記錄具有正確的 IP 位址。

    1. 您可以在 Azure 入口網站中開啟私人端點資源,以確認 IP 位址。
    2. 在 Azure 入口網站中,瀏覽至 Microsoft.Network/privateEndpoints 資源
    3. 在概觀頁面中尋找網路介面,然後按一下該連結。
    4. 此連結會顯示 NIC 資源的概觀,其中包含私人 IP 位址屬性。
    5. 確認這是 A 記錄中指定的正確 IP 位址。

限制和設計考量

注意

每個訂用帳戶已啟用私人端點的受控 HSM 數目是可調整的限制。 以下顯示的限制為預設限制。 如果想要求對訂用帳戶提高限制,請建立 Azure 支援票證。 我們會根據個案核准這些要求。

定價:如需定價資訊,請參閱 Azure Private Link 定價

每個受控 HSM 的私人端點數目上限:64。

每個訂用帳戶中具有私人端點的受控 HSM 預設數目:400。

如需詳細資訊,請參閱 Azure Private Link 服務:限制

後續步驟