Share via


將 Azure 金鑰保存庫 重新放置至另一個區域

Azure 金鑰保存庫 不支援將密鑰保存庫重新配置至另一個區域。

您不需要重新設定,而是:

  • 建立具有相關聯 Azure 服務重新配置的新金鑰保存庫。
  • 重新產生任何必要的 金鑰秘密憑證。 在某些情況下,您可能需要將秘密或憑證從現有的金鑰保存庫傳輸到重新放置的金鑰保存庫。

顯示 Azure Key Vault 重新配置模式的圖表

必要條件

  • 確認您的 Azure 訂用帳戶可讓您在目標區域中建立密鑰保存庫。

  • 使用 金鑰保存庫 所使用的所有 Azure 服務建立相依性對應。 針對重新配置範圍內的服務,您必須選擇適當的重新配置策略。

  • 根據您的 金鑰保存庫 設計,您可能需要在目標區域中部署和設定 虛擬網絡

  • 記錄並規劃在目標區域中的 金鑰保存庫 中重新設定:

    • 存取原則和網路組態設定。
    • 虛刪除和清除保護。
    • 自動調整設定。

停機

若要瞭解可能的停機時間,請參閱 azure 的 雲端採用架構:選取重新配置方法

服務端點的考慮

Azure 的虛擬網路服務端點 金鑰保存庫 限制對指定虛擬網路的存取。 端點也可以限制對IPv4(因特網通訊協定第4版)位址範圍的存取。 從這些來源外部連線到 金鑰保存庫的任何用戶都會遭到拒絕存取。 如果服務端點是在 金鑰保存庫 資源的來源區域中設定的,則必須在目標區域中完成相同的動作。

若要成功將 金鑰保存庫 重新建立至目標區域,必須先事先建立 VNet 和子網。 如果是使用 Azure Resource Mover 工具進行這兩個資源的移動,則不會自動設定服務端點。 因此,必須手動設定它們,這可以透過 Azure 入口網站Azure CLIAzure PowerShell 來完成。

私人端點的考慮

Azure Private Link 提供從虛擬網路到 Azure 平臺即服務(PaaS)、客戶擁有或 Microsoft 合作夥伴服務的私人連線。 Private Link 可簡化網路架構,並藉由排除公開公用因特網的數據,來保護 Azure 中端點之間的連線。

若要在目標區域中成功重新建立 金鑰保存庫,必須先建立 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 入口網站匯出範本:

  1. 登入 Azure 入口網站

  2. 選取 [所有資源 ],然後選取您的密鑰保存庫。

  3. 選取 >[自動化]>[匯出範本]

  4. 在 [匯出範本] 刀鋒視窗中,選擇 [下載]

  5. 找出您從入口網站下載的 .zip 檔案,並將該檔案解壓縮至您選擇的資料夾。

    此 zip 檔案包含由用來部署範本的範本和指令碼所組成的 .json 檔案。

請記住以下概念:

  • 金鑰保存庫名稱是全域唯一的。 您無法重複使用保存庫名稱。
  • 您需要在新的金鑰保存庫中重新設定存取原則和網路設定。
  • 您需要在新的金鑰保存庫中重新設定虛刪除和清除保護。
  • 備份和還原作業不會保留您的自動調整設定。 您可能需要重新設定。

修改範本

藉由變更金鑰保存庫名稱和區域來修改範本。

使用 Azure 入口網站部署範本:

  1. 在 Azure 入口網站中,選取 [建立資源]

  2. 在 [搜尋 Marketplace] 中,輸入範本部署,然後按 ENTER

  3. 選取 [範本部署]

  4. 選取 建立

  5. 選取 [在編輯器中組建您自己的範本]

  6. 選取 [載入檔案],然後遵循指示來載入您在上一節下載的 template.json 檔案。

  7. 在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"
        }
    },
    
  8. template.json 檔案中的 location 屬性編輯為目標區域。 此範例會將目標區域設定為 centralus

    "resources": [
        {
            "type": "Microsoft.KeyVault/vaults",
            "apiVersion": "2023-07-01",
            "name": "[parameters('vaults_name')]",
            "location": "centralus",
            ...
        },
        ...
    ]
    

    若要取得區域位置代碼,請參閱 Azure 位置。 區域名稱除去空格即為區域代碼,Central US = centralus

  9. 拿掉範本中類型私人端點的資源。

    {
    "type": "Microsoft.KeyVault/vaults/privateEndpointConnections",
    ...
    }
    
  10. 如果您在密鑰保存庫中設定服務端點,請在 [networkAcl] 區段的 virtualNetworkRules 底下,新增目標子網的規則。 確定 ignoreMissingVnetServiceEndpoint 旗標設定為 False,讓 IaC 無法在目標區域中設定服務端點時部署 金鑰保存庫。

    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
                }
            ]
        }
    

重新部署

部署範本,以在目標區域中建立新的金鑰保存庫。

  1. 儲存 template.json 檔案。

  2. 輸入或選取屬性值:

    • 訂用帳戶:選取 Azure 訂用帳戶。

    • 資源群組:選取 [新建] 並指定資源群組名稱。

    • 位置:選取 Azure 位置。

  3. 選取 [我同意上述條款及條件],然後選取 [ 選取購買]。

  4. 必須在新的 金鑰保存庫 中重新設定存取原則和網路組態設定(私人端點)。 必須在新的金鑰保存庫和自動調整設定中重新設定虛刪除和清除保護。

提示

如果您收到錯誤,指出指定的 XML 在語法上不是有效的,請將範本中的 JSON 與 Azure Resource Manager 文件中所述的結構描述進行比較。

使用數據遷移重新部署

重要

如果您打算跨區域移動 金鑰保存庫,但在相同的地理位置內,建議您對秘密、金鑰和憑證執行備份和還原。

  1. 請遵循重新部署方法中所述的步驟。
  2. 針對 秘密
    1. 複製並儲存來源金鑰保存庫中的秘密值。
    2. 在目標金鑰保存庫中重新建立秘密,並將值設定為已儲存的秘密。
  3. 針對 憑證
    1. 將憑證導出至 PFX 檔案。
    2. 將 PFX 檔案匯入目標金鑰保存庫。 如果您無法匯出私鑰(exportable 未設定),您必須產生憑證新的憑證,並將其匯入至目標金鑰保存庫。
  4. 重新配置相關聯的 Azure 服務時,會 重新產生金鑰
  5. 確認已為相關聯的服務產生金鑰。

Verify

刪除舊金鑰保存庫之前,請先確認新保存庫包含相關聯的 Azure 服務重新配置之後的所有必要密鑰、秘密和憑證。