具有虛刪除和清除保護的 Azure Key Vault 復原管理
本文涵蓋 Azure Key Vault 的兩項復原功能:虛刪除和清除保護。 本文件會概述這兩項功能,並示範如何透過 Azure 入口網站、Azure CLI 和 Azure PowerShell 來管理這兩項功能。
重要
如果金鑰保存庫未啟用虛刪除保護,則刪除金鑰會永久刪除它。 強烈建議客戶透過 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
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
下一步