本文涵蓋 Azure Key Vault 的兩項復原功能:軟刪除和防止清除。 本文件會概述這兩項功能,並示範如何透過 Azure 入口網站、Azure CLI 和 Azure PowerShell 來管理這兩項功能。
重要
如果金鑰庫未啟用軟刪除保護,刪除金鑰會導致永久性刪除。 強烈建議客戶透過 Azure 原則開啟其保存庫的虛刪除強制功能。
復原選項概觀
Azure Key Vault 提供多個選項,以確保保存庫數據的可用性和復原性:
這篇文章介紹“軟刪除”和“清除保護”功能,以協助防止意外或惡意的刪除。
必要條件
什麼是軟刪除和清除保護?
軟刪除和清除保護是兩種不同的金鑰庫還原功能。
虛刪除的設計目的,是為了避免金鑰保存庫和金鑰、祕密以及金鑰保存庫內部儲存的憑證遭到意外刪除。 虛刪除就像是資源回收筒。 當您刪除金鑰保存庫或金鑰保存庫物件時,用戶可設定的保留期間或預設值為 90 天仍可復原。 您也可以清除 (永久刪除) 處於虛刪除狀態的金鑰保存庫,讓您重新建立具有相同名稱的金鑰保存庫和金鑰保存庫物件。 復原和刪除金鑰保存庫與物件都需要較高的存取原則權限。
虛刪除一經啟用,便無法再加以停用。
請務必注意,金鑰保管庫的名稱在全球範圍內是唯一的,因此您無法建立與處於軟刪除狀態的金鑰保管庫同名的金鑰保管庫。 同樣地,金鑰、秘密和憑證的名稱在金鑰保存庫內也是獨一無二的。 在建立祕密、金鑰或憑證時,其名稱無法和處於虛刪除狀態的其他項目相同。
清除保護的設計目的,是為了避免心懷惡意的內部人員刪除金鑰保存庫、金鑰、祕密和憑證。 將其視為一個具有時間鎖定功能的回收站。 您可以在可設定的保留期間內的任何時間點復原項目。 在保留期間走完之前,則無法永久刪除或清除金鑰保存庫。 一旦保留期限過後,金鑰保存庫或金鑰保存庫物件就會自動清除。
附註
清除保護的設計目的,是為了讓所有管理員角色或權限都無法覆寫、停用或規避清除保護。 當啟用清除保護時,包括 Microsoft 在內的任何人都無法禁用或取消。 這表示您必須復原已刪除的金鑰保存庫,或先等候保留期間走完,然後才能重複使用金鑰保存庫名稱。
強烈建議針對生產環境使用這些功能。
如需虛刪除的詳細資訊,請參閱 Azure Key Vault 虛刪除概觀
確認金鑰保存庫是否已啟用虛刪除,並啟用虛刪除
- 登入 Azure 入口網站。
- 選取您的金鑰保存庫。
- 選取 [屬性] 刀鋒視窗。
- 請確認軟刪除旁的單選按鈕是否設定為“啟用復原”。
- 如果未在金鑰保存庫中啟用虛刪除,請選取單選按鈕以啟用虛刪除,然後選取 [儲存]。
在 [屬性] 中,軟刪除已被醒目提示,同時也突顯了要啟用的值。
為服務主體授與存取權,使其能夠清除和復原已刪除的秘密
- 登入 Azure 入口網站。
- 選取您的金鑰保存庫。
- 選取 [存取原則] 刀鋒視窗。
- 在資料表中,找出要為其授與存取權的服務主體所在的資料列 (或新增安全性主體)。
- 選取金鑰、憑證和秘密的下拉式清單。
- 捲動至下拉式清單底部,然後選取 [復原] 和 [清除]
- 安全性主體也需要「取得」和「清單」功能,才能執行大部分的作業。
在左側瀏覽窗格中,已醒目提示 [存取原則]。在 [存取原則] 上,顯示 [秘鍵設定] 下拉式清單,已選取四個項目:[取得]、[列出]、[復原] 和 [清除]。
列出、復原或清除已經虛刪除的金鑰保存庫
- 登入 Azure 入口網站。
- 選取頁面頂端的搜尋列。
- 搜索 “Key Vault” 服務。 不要選取單一金鑰保存庫。
- 在畫面頂端,選取 [管理已刪除的保存庫] 選項
- 內容窗格會在畫面右側開啟。
- 選取您的訂用帳戶。
- 如果金鑰保存庫已經處於虛刪除狀態,便會顯示在右側的內容窗格中。
- 如果保存庫太多,可以選取內容窗格底部的 [載入更多],或使用 CLI 或 PowerShell 來取得結果。
- 在找到所要復原或清除的保存庫後,請選取該保存庫旁的核取方塊。
- 如果您想要復原金鑰保存庫,請選取內容窗格底部的 [復原] 選項。
- 如果您想要永久刪除金鑰保存庫,請選取 [清除] 選項。
在金鑰保存庫上,[管理已刪除的保存庫] 選項已高亮顯示。
在 [管理已刪除的金鑰保存庫] 畫面上,僅有的金鑰保存庫已被選取且醒目顯示,[復原] 按鈕也已被醒目顯示。
列出、復原或清除已經虛刪除的祕密、金鑰和憑證
- 登入 Azure 入口網站。
- 選取您的金鑰保存庫。
- 選取與要管理的祕密類型 (金鑰、祕密或憑證) 對應的刀鋒視窗。
- 在畫面頂端,選取 [管理已刪除的密鑰、秘密或憑證]
- 內容窗格會出現在畫面右側。
- 如果秘密、金鑰或憑證未出現在清單中,就表示其並未處於已經虛刪除的狀態。
- 選取您想要管理的秘密、金鑰或憑證。
- 在內容窗格的底部,選取 [復原] 或 [清除] 選項。
在 [鍵] 上,已醒目顯示 [管理已刪除的鍵] 選項。
金鑰保存庫 (CLI)
確認金鑰保存庫是否已啟用虛刪除功能
az keyvault show --subscription {SUBSCRIPTION ID} -g {RESOURCE GROUP} -n {VAULT NAME}
在金鑰保存庫上啟用虛刪除功能
依預設,所有新的金鑰保存庫都會啟用虛刪除功能。 如果您目前有未啟用虛刪除功能的金鑰保存庫,請使用下列命令來啟用虛刪除功能。
az keyvault update --subscription {SUBSCRIPTION ID} -g {RESOURCE GROUP} -n {VAULT NAME} --enable-soft-delete true
刪除金鑰保存庫 (如果已啟用虛刪除功能,則可加以復原)
az keyvault delete --subscription {SUBSCRIPTION ID} -g {RESOURCE GROUP} -n {VAULT NAME}
列出所有已經虛刪除的金鑰保存庫
az keyvault list-deleted --subscription {SUBSCRIPTION ID} --resource-type vault
復原已經虛刪除的金鑰保存庫
az keyvault recover --subscription {SUBSCRIPTION ID} -n {VAULT NAME}
清除虛刪除的金鑰保存庫 (警告!這種操作會永久刪除金鑰儲存庫)
az keyvault purge --subscription {SUBSCRIPTION ID} -n {VAULT NAME}
在金鑰保存庫上啟用清除保護
az keyvault update --subscription {SUBSCRIPTION ID} -g {RESOURCE GROUP} -n {VAULT NAME} --enable-purge-protection true
憑證 (CLI)
授與可供清除和復原憑證的存取權
az keyvault set-policy --upn user@contoso.com --subscription {SUBSCRIPTION ID} -g {RESOURCE GROUP} -n {VAULT NAME} --certificate-permissions recover purge
刪除憑證(轉為軟刪除狀態)
附註
az keyvault certificate delete 命令已被取代。 當你的金鑰保險庫啟用軟刪除(現在是預設狀態)時,這個指令會將憑證移到軟刪除狀態,而不是永久刪除。 你可以用 az keyvault certificate recover 來還原,或 az keyvault certificate purge 永久刪除。 如需詳細資訊,請參閱 Azure Key Vault 虛刪除概觀。
az keyvault certificate delete --subscription {SUBSCRIPTION ID} --vault-name {VAULT NAME} --name {CERTIFICATE NAME}
列出已刪除的憑證
az keyvault certificate list-deleted --subscription {SUBSCRIPTION ID} --vault-name {VAULT NAME}
復原已刪除的憑證
az keyvault certificate recover --subscription {SUBSCRIPTION ID} --vault-name {VAULT NAME} --name {CERTIFICATE NAME}
清除軟刪除的憑證 (警告!此操作將永久刪除您的憑證)
az keyvault certificate purge --subscription {SUBSCRIPTION ID} --vault-name {VAULT NAME} --name {CERTIFICATE NAME}
金鑰 (CLI)
授予清除和復原金鑰的權限
az keyvault set-policy --upn user@contoso.com --subscription {SUBSCRIPTION ID} -g {RESOURCE GROUP} -n {VAULT NAME} --key-permissions recover purge
刪除金鑰
az keyvault key delete --subscription {SUBSCRIPTION ID} --vault-name {VAULT NAME} --name {KEY NAME}
列出已刪除的金鑰
az keyvault key list-deleted --subscription {SUBSCRIPTION ID} --vault-name {VAULT NAME}
復原已刪除的金鑰
az keyvault key recover --subscription {SUBSCRIPTION ID} --vault-name {VAULT NAME} --name {KEY NAME}
清除虛刪除的金鑰 (警告!這種操作會永久刪除金鑰)
az keyvault key purge --subscription {SUBSCRIPTION ID} --vault-name {VAULT NAME} --name {KEY NAME}
秘密 (CLI)
授與可供清除和復原祕密的存取權
az keyvault set-policy --upn user@contoso.com --subscription {SUBSCRIPTION ID} -g {RESOURCE GROUP} -n {VAULT NAME} --secret-permissions recover purge
刪除秘密(移至軟刪除狀態)
附註
az keyvault secret delete 命令已被取代。 當你的金鑰保險庫啟用軟刪除(現在是預設狀態)時,這個指令會將秘密移到軟刪除狀態,而不是永久刪除。 你可以用 az keyvault secret recover 來還原,或 az keyvault secret purge 永久刪除。 如需詳細資訊,請參閱 Azure Key Vault 虛刪除概觀。
az keyvault secret delete --subscription {SUBSCRIPTION ID} --vault-name {VAULT NAME} --name {SECRET NAME}
列出已刪除的機密
az keyvault secret list-deleted --subscription {SUBSCRIPTION ID} --vault-name {VAULT NAME}
復原已刪除的秘密
az keyvault secret recover --subscription {SUBSCRIPTION ID} --vault-name {VAULT NAME} --name {SECRET NAME}
清除已軟刪除的機密 (警告!這種操作會永久刪除您的機密)
az keyvault secret purge --subscription {SUBSCRIPTION ID} --vault-name {VAULT NAME} --name {SECRET NAME}
金鑰保存庫 (PowerShell)
確認金鑰保存庫是否已啟用虛刪除功能
Get-AzKeyVault -VaultName "ContosoVault"
刪除金鑰保存庫
Remove-AzKeyVault -VaultName 'ContosoVault'
列出所有已經虛刪除的金鑰保存庫
Get-AzKeyVault -InRemovedState
復原已經虛刪除的金鑰保存庫
Undo-AzKeyVaultRemoval -VaultName ContosoVault -ResourceGroupName ContosoRG -Location westus
清除已軟刪除的金鑰保存庫 (警告!此操作將永久刪除您的金鑰保存庫)
Remove-AzKeyVault -VaultName ContosoVault -InRemovedState -Location westus
在金鑰保存庫上啟用清除保護
Update-AzKeyVault -VaultName ContosoVault -ResourceGroupName ContosoRG -EnablePurgeProtection
憑證 (PowerShell)
授予恢復和清除憑證的權限
Set-AzKeyVaultAccessPolicy -VaultName ContosoVault -UserPrincipalName user@contoso.com -PermissionsToCertificates recover,purge
刪除憑證
Remove-AzKeyVaultCertificate -VaultName ContosoVault -Name 'MyCert'
列出金鑰保存庫中的所有已刪除憑證
Get-AzKeyVaultCertificate -VaultName ContosoVault -InRemovedState
復原處於已刪除狀態的憑證
Undo-AzKeyVaultCertificateRemoval -VaultName ContosoVault -Name 'MyCert'
清除虛刪除的憑證 (警告!這種操作會永久刪除憑證)
Remove-AzKeyVaultcertificate -VaultName ContosoVault -Name 'MyCert' -InRemovedState
金鑰 (PowerShell)
授與權限以復原和清除金鑰
Set-AzKeyVaultAccessPolicy -VaultName ContosoVault -UserPrincipalName user@contoso.com -PermissionsToKeys recover,purge
刪除金鑰
Remove-AzKeyVaultKey -VaultName ContosoVault -Name 'MyKey'
列出金鑰保存庫中所有已刪除的金鑰
Get-AzKeyVaultKey -VaultName ContosoVault -InRemovedState
復原已經虛刪除的金鑰
Undo-AzKeyVaultKeyRemoval -VaultName ContosoVault -Name ContosoFirstKey
清除虛刪除的金鑰 (警告!這種操作會永久刪除金鑰)
Remove-AzKeyVaultKey -VaultName ContosoVault -Name ContosoFirstKey -InRemovedState
祕密 (PowerShell)
授予取回和消除機密的權限
Set-AzKeyVaultAccessPolicy -VaultName ContosoVault -UserPrincipalName user@contoso.com -PermissionsToSecrets recover,purge
刪除名為 SQLPassword 的祕密
Remove-AzKeyVaultSecret -VaultName ContosoVault -Name SQLPassword
列出金鑰保存庫中的所有已刪除祕密
Get-AzKeyVaultSecret -VaultName ContosoVault -InRemovedState
復原處於已刪除狀態的祕密
Undo-AzKeyVaultSecretRemoval -VaultName ContosoVault -Name SQLPassword
清除已刪除狀態的祕密 (警告!這種操作會永久刪除金鑰)
Remove-AzKeyVaultSecret -VaultName ContosoVault -Name SQLPassword -InRemovedState
下一步