具有虛刪除和清除保護的 Azure Key Vault 復原管理
本文涵蓋 Azure Key Vault 的兩項復原功能:虛刪除和清除保護。 本文件會概述這兩項功能,並示範如何透過 Azure 入口網站、Azure CLI 和 Azure PowerShell 來管理這兩項功能。
如需 Key Vault 的詳細資訊,請參閱
必要條件
虛刪除和清除保護是什麼
虛刪除和清除保護是兩種不同的金鑰保存庫復原功能。
虛刪除的設計目的在於防止意外刪除金鑰保存庫、金鑰、祕密,以及儲存在金鑰保存庫中的憑證。 將虛刪除想像成資源回收筒。 當您刪除金鑰保存庫或金鑰保存庫物件時,其會在使用者可設定的保留期間內或預設的 90 天內保持可供復原的狀態。 處於虛刪除狀態的金鑰保存庫也可加以清除,但這意味著其會遭到永久刪除。 這麼做可讓您重新建立相同名稱的金鑰保存庫和金鑰保存庫物件。 復原和刪除金鑰保存庫與物件都需要較高的存取原則權限。 虛刪除一經啟用,便無法再加以停用。
重要
您必須立即在金鑰保存庫上啟用虛刪除。 退出虛刪除的功能已經取代,並會於 2025 年 2 月移除。 如需完整詳細資料,請參閱這裡
請務必注意,金鑰保存庫名稱具有全域唯一的特性,因此,在建立金鑰保存庫時,其名稱無法和處於虛刪除狀態的金鑰保存庫相同。 同樣地,金鑰、秘密和憑證的名稱在金鑰保存庫內也是獨一無二的。 在建立秘密、金鑰或憑證時,其名稱無法和處於虛刪除狀態的其他項目相同。
清除保護的設計目的,是為了避免心懷惡意的內部人員刪除金鑰保存庫、金鑰、秘密和憑證。 請將此視為資源回收筒,內含以時間為基礎的鎖定。 您可以在可設定的保留期間內的任何時間點復原項目。 在保留期間走完之前,則無法永久刪除或清除金鑰保存庫。 保留期間走完之後,系統便會自動清除金鑰保存庫或金鑰保存庫物件。
注意
清除保護的設計目的,是為了讓所有管理員角色或權限都無法覆寫、停用或規避清除保護。 清除保護一經啟用,所有人 (包括 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
Delete certificate
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
Delete 鍵
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}
金鑰保存庫 (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
下一步