本文涵蓋 Azure Key Vault 的兩項復原功能:軟刪除和防止清除。 本文件會概述這兩項功能,並示範如何透過 Azure 入口網站、Azure CLI 和 Azure PowerShell 來管理這兩項功能。
如果金鑰庫未啟用軟刪除保護,刪除金鑰會導致永久性刪除。 強烈建議客戶透過
Azure 原則
開啟其保存庫的虛刪除強制功能。
復原選項概觀
Azure Key Vault 提供多個選項,以確保保存庫數據的可用性和復原性:
自動備援和故障轉移
:Key Vault 會自動跨區域復寫數據,並在中斷期間處理故障轉移 - 請參閱
Azure Key Vault 可用性和備援
軟刪除和清除保護
(本文所述):防止意外或惡意刪除您的儲存庫或儲存庫物件
手動備份和還原
:針對個別秘密、密鑰和憑證 - 請參閱
Azure Key Vault 備份
這篇文章介紹“軟刪除”和“清除保護”功能,以協助防止意外或惡意的刪除。
Azure 訂用帳戶 -
建立免費帳戶
Azure PowerShell。
Azure CLI
Key Vault - 您可以使用
Azure 入口網站
、
Azure CLI
或
Azure PowerShell
來建立
使用者需要有下列權限 (於訂用帳戶層級) 才能在已經虛刪除的保存庫上執行作業:
軟刪除和清除保護是兩種不同的金鑰庫還原功能。
虛刪除
的設計目的,是為了避免金鑰保存庫和金鑰、祕密以及金鑰保存庫內部儲存的憑證遭到意外刪除。 虛刪除就像是資源回收筒。 當您刪除金鑰保存庫或金鑰保存庫物件時,用戶可設定的保留期間或預設值為 90 天仍可復原。 您也可以
清除
(永久刪除) 處於虛刪除狀態的金鑰保存庫,讓您重新建立具有相同名稱的金鑰保存庫和金鑰保存庫物件。 復原和刪除金鑰保存庫與物件都需要較高的存取原則權限。
虛刪除一經啟用,便無法再加以停用。
請務必注意,金鑰保管庫的名稱在全球範圍內是唯一的,因此您無法建立與處於軟刪除狀態的金鑰保管庫同名的金鑰保管庫。 同樣地,金鑰、秘密和憑證的名稱在金鑰保存庫內也是獨一無二的。 在建立祕密、金鑰或憑證時,其名稱無法和處於虛刪除狀態的其他項目相同。
清除保護
的設計目的,是為了避免心懷惡意的內部人員刪除金鑰保存庫、金鑰、祕密和憑證。 將其視為一個具有時間鎖定功能的回收站。 您可以在可設定的保留期間內的任何時間點復原項目。
在保留期間走完之前,則無法永久刪除或清除金鑰保存庫。
一旦保留期限過後,金鑰保存庫或金鑰保存庫物件就會自動清除。
清除保護的設計目的,是為了讓所有管理員角色或權限都無法覆寫、停用或規避清除保護。
當啟用清除保護時,包括 Microsoft 在內的任何人都無法禁用或取消。
這表示您必須復原已刪除的金鑰保存庫,或先等候保留期間走完,然後才能重複使用金鑰保存庫名稱。
強烈建議針對生產環境使用這些功能。
如需虛刪除的詳細資訊,請參閱
Azure Key Vault 虛刪除概觀
安全性主體也需要「取得」和「清單」功能,才能執行大部分的作業。
在左側瀏覽窗格中,已醒目提示 [存取原則]。在 [存取原則] 上,顯示 [秘鍵設定] 下拉式清單,已選取四個項目:[取得]、[列出]、[復原] 和 [清除]。
列出、復原或清除已經虛刪除的金鑰保存庫
登入 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 --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 --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}
復原已經虛刪除的金鑰保存庫
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