將 Azure Key Vault 重新放置到另一個區域
有各種原因讓您想要將現有的 Azure 資源從某個區域移至另一個區域。 您可能想要:
- 利用新的 Azure 區域。
- 只部署特定區域中可用的功能或服務。
- 符合內部原則和治理需求。
- 與公司合併和收購保持一致
- 符合容量規劃需求。
Azure Key Vault 不支援將金鑰保存庫重新放置到另一個區域。
您不需要重新放置,而是必須:
- 建立具有重新放置的相關聯 Azure 服務的新金鑰保存庫。
- 重新產生任何必要的金鑰 (部分機器翻譯)、祕密,或憑證 (部分機器翻譯)。 在某些情況下,您可能需要將祕密或憑證從現有的金鑰保存庫傳輸到重新放置的金鑰保存庫。
必要條件
確認您的 Azure 訂用帳戶允許您在目標區域中建立金鑰保存庫。
使用 Key Vault 所使用的所有 Azure 服務建立相依性對應。 針對位於重新放置範圍內的服務,您必須選擇適當的重新放置策略。
根據您的 Key Vault 設計,您可能需要在目標區域中部署和設定虛擬網路。
記錄並規劃在目標區域中的 Key Vault 中重新設定:
- 存取原則和網路組態設定。
- 虛刪除和清除保護。
- 自動輪替設定。
停機
若要了解可能的停機情況,請參閱適用於 Azure 的雲端採用架構:選取重新放置方法 (部分機器翻譯)。
服務端點考量
Azure Key Vault 的虛擬網路服務端點會限制對指定虛擬網路的存取。 端點也可以限制對 IPv4 (網際網路通訊協定第 4 版) 位址範圍的存取。 從那些來源外部連線到 Key Vault 的任何使用者都會遭到拒絕存取。 如果服務端點是在 Key Vault 資源的來源區域中設定,則必須在目標區域中完成相同的作業。
若要成功將 Key Vault 重新建立至目標區域,必須事先建立 VNet 和子網路。 如果是使用 Azure Resource Mover 工具進行這兩個資源的移動,則不會自動設定服務端點。 因此,您必須手動設定,這可以透過 Azure 入口網站、Azure CLI或 Azure PowerShell 來完成。
私人端點考量
Azure Private Link 提供從虛擬網路到 Azure 平台即服務 (PaaS)、客戶所擁有的服務,或是 Microsoft 合作夥伴服務的私人連線。 私人連結可簡化網路架構,並透過消除公用網際網路上的資料暴露風險來保護 Azure 中端點之間的連線。
若要在目標區域中成功重新建立 Key Vault,必須先建立 VNet 和子網路,才能實際進行重新建立。
Azure 私人端點 DNS 整合考量
請務必正確設定您的 DNS 設定,以將私人端點 IP 位址解析為連接字串的完整網域名稱 (FQDN)。
現有的 Microsoft Azure 服務可能已有公用端點的 DNS 設定。 必須覆寫此設定,才能使用您的私人端點連線。
與私人端點建立關聯的網路介面,包含設定 DNS 所需的資訊。 網路介面資訊包含私人連結資源的 FQDN 和私人 IP 位址。
您可以使用下列選項來設定私人端點的 DNS 設定:
- 使用主機檔案 (僅建議用於測試)。 您可以使用虛擬機器上的主機檔案來覆寫 DNS。
- 使用私人 DNS 區域。 您可以使用私人 DNS 區域來覆寫私人端點的 DNS 解析。 私人 DNS 區域可以連結至您的虛擬網路,以解析特定網域。
- 使用您的 DNS 轉寄站 (選用)。 您可以使用 DNS 轉寄站來覆寫私人連結資源的 DNS 解析。 建立 DNS 轉寄規則,以在虛擬網路中託管的 DNS 伺服器上使用私人 DNS 區域。
準備
使用 Azure 入口網站匯出範本:
登入 Azure 入口網站。
選取 [所有資源],然後選取您的金鑰保存庫。
選取 >[自動化]>[匯出範本]。
在 [匯出範本] 刀鋒視窗中,選擇 [下載]。
找出您從入口網站下載的 .zip 檔案,並將該檔案解壓縮至您選擇的資料夾。
此 zip 檔案包含由用來部署範本的範本和指令碼所組成的 .json 檔案。
請記住以下概念:
- 金鑰保存庫名稱是全域唯一的。 您無法重複使用保存庫名稱。
- 您需要在新的金鑰保存庫中重新設定存取原則和網路設定。
- 您需要在新的金鑰保存庫中重新設定虛刪除和清除保護。
- 備份與還原作業不會保留您的自動輪替設定。 您可能需要重新設定。
修改範本
藉由變更金鑰保存庫名稱和區域來修改範本。
使用 Azure 入口網站部署範本:
在 Azure 入口網站中,選取 [建立資源]。
在 [搜尋 Marketplace] 中,輸入範本部署,然後按 ENTER。
選取 [範本部署]。
選取 建立。
選取 [在編輯器中組建您自己的範本]。
選取 [載入檔案],然後遵循指示載入您在上一節下載的範本 template.json 檔案。
在 template.json 檔案中,藉由設定金鑰保存庫名稱的預設值來命名金鑰保存庫。 此範例會將金鑰儲存庫名稱的預設值設定為
mytargetaccount
。"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "vaults_name": { "defaultValue": "key-vault-name", "type": "String" } },
將 template.json 檔案中的 location 屬性編輯為目標區域。 此範例會將目標區域設定為
centralus
。"resources": [ { "type": "Microsoft.KeyVault/vaults", "apiVersion": "2023-07-01", "name": "[parameters('vaults_name')]", "location": "centralus", ... }, ... ]
若要取得區域位置代碼,請參閱 Azure 位置。 區域名稱除去空格即為區域代碼,Central US = centralus。
移除範本中私人端點類型的資源。
{ "type": "Microsoft.KeyVault/vaults/privateEndpointConnections", ... }
如果您在金鑰保存庫中設定服務端點,請在 [networkAcl] 區段的 [virtualNetworkRules] 下,新增目標子網路的規則。 請確定將 ignoreMissingVnetServiceEndpoint 旗標設定為 False,讓 IaC 無法在目標區域中未設定服務端點的情況下部署 Key Vault。
parameter.json
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "target_vnet_externalid": { "value": "virtualnetwork-externalid" }, "target_subnet_name": { "value": "subnet-name" } } }
_template.json
"networkAcls": { "bypass": "AzureServices", "defaultAction": "Deny", "ipRules": [], "virtualNetworkRules": [ { "id": "[concat(parameters('target_vnet_externalid'), concat('/subnets/', parameters('target_subnet_name')]", "ignoreMissingVnetServiceEndpoint": false } ] }
重新部署
部署範本,以在目標區域中建立新的金鑰保存庫。
儲存 template.json 檔案。
輸入或選取屬性值:
訂用帳戶:選取 Azure 訂用帳戶。
資源群組:選取 [新建] 並指定資源群組名稱。
位置:選取 Azure 位置。
選取 [我同意上方所述的條款及條件],然後選取 [選取購買]。
存取原則和網路組態設定 (私人端點) 必須在新的 Key Vault 中重新設定。 虛刪除和清除保護必須在新的金鑰儲存庫和 [自動輪替設定] 中重新設定。
提示
如果您收到錯誤,指出指定的 XML 在語法上不是有效的,請將範本中的 JSON 與 Azure Resource Manager 文件中所述的結構描述進行比較。
使用資料移轉重新部署
重要
如果您打算跨區域 (但在同一地理位置內) 移動 Key Vault,建議您針對祕密、金鑰和憑證執行備份與還原。
- 請遵循重新部署方法中所述的步驟。
- 針對祕密︰
- 複製並儲存來源金鑰保存庫中的祕密值。
- 在目標金鑰保存庫中重新建立祕密,並將值設定為已儲存的祕密。
- 針對憑證:
- 將憑證匯出到 PFX 檔案。
- 將 PFX 檔案匯入目標金鑰保存庫。 如果您無法匯出私密金鑰 (未設定
exportable
),您必須產生新的憑證,並將其匯入目標金鑰保存庫。
- 重新放置相關聯的 Azure 服務時,會重新產生金鑰。
- 確認已為相關聯的服務產生金鑰。
Verify
刪除舊金鑰保存庫之前,請先確認新保存庫包含相關聯的 Azure 服務重新放置之後的所有必要金鑰、祕密和憑證。