論理的な削除と消去保護を使用した Azure Key Vault の回復の管理
- [アーティクル]
-
-
この記事では、Azure Key Vault の 2 つの回復機能である論理的な削除と消去保護について説明します。 このドキュメントでは、これらの機能の概要について説明し、Azure portal、Azure CLI、Azure PowerShell を使用してそれらを管理する方法を示します。
Key Vault の詳細については、以下を参照してください。
前提条件
Azure サブスクリプション - 無料アカウントを作成します
Azure PowerShell。
Azure CLI
キー コンテナー - Azure portal、Azure CLI、または Azure PowerShell を使用して作成できます
論理的に削除されたコンテナーに対して操作を実行するには、ユーザーには次のアクセス許可 (サブスクリプション レベル) が必要です。
権限 |
説明 |
Microsoft.KeyVault/locations/deletedVaults/read |
論理的に削除された Key Vault のプロパティを表示します。 |
Microsoft.KeyVault/locations/deletedVaults/purge/action |
論理的に削除された Key Vault を消去します。 |
Microsoft.KeyVault/locations/operationResults/read |
コンテナーの消去状態を確認するために必要です |
Key Vault Contributor |
論理的に削除されたコンテナーを回復するために必要です |
論理的な削除および消去保護とは
論理的な削除と消去保護は、Key Vault の 2 つの異なる回復機能です。
論理的な削除は、キー コンテナーおよびキー コンテナー内に格納されているキー、シークレット、証明書が誤って削除されるのを防ぐように設計されています。 論理的な削除はごみ箱のようなものと考えることができます。 キー コンテナーまたはキー コンテナー オブジェクトを削除すると、ユーザーが構成可能な保持期間または既定の 90 日の間、回復可能な状態に維持されます。 論理的に削除された状態のキー コンテナーは、消去することもできます。これは、完全に削除されることを意味します。 これにより、同じ名前でキー コンテナーとキー コンテナー オブジェクトを作成し直すことができます。 キー コンテナーとオブジェクトの回復と削除のどちらについても、昇格されたアクセス ポリシーのアクセス許可が必要です。 いったん有効にした論理的な削除を、無効にすることはできません。
重要
直ちに、キー コンテナーで論理的な削除を有効にする必要があります。 論理的な削除をオプトアウトする機能は非推奨になり、2025 年 2 月に削除される予定です。 詳細については、こちらを参照してください
キー コンテナーの名前はグローバルに一意であることに注意してください。そのため、論理的に削除された状態のキー コンテナーと同じ名前のキー コンテナーを作成することはできません。 同様に、キー、シークレット、証明書の名前は、キー コンテナー内で一意です。 論理的に削除された状態の別のものと同じ名前で、シークレット、キー、または証明書を作成することはできません。
消去保護は、悪意のある内部関係者によってキー コンテナー、キー、シークレット、証明書が削除されるのを防ぐように設計されています。 これは、時間ベースのロック機能を備えたごみ箱と考えてください。 構成可能な保持期間中であればいつでも、項目を回復できます。 キー コンテナーは、保持期間が経過するまでは、完全に削除したり消去したりできません。 保持期間が経過すると、キー コンテナーまたはキー コンテナー オブジェクトは自動的に消去されます。
Note
消去保護は、管理者のロールまたはアクセス許可によって消去保護を上書き、無効化、または回避することができないように設計されています。 Microsoft を含むすべてのユーザーは、いったん有効にされた消去保護は、無効にしたり上書きしたりできません。 つまり、キー コンテナー名を再利用するには、最初に削除されたキー コンテナーを回復するか、保持期間が経過するまで待つ必要があります。
論理的な削除の詳細については、「Azure Key Vault の論理的な削除の概要」を参照してください。
キー コンテナーで論理的な削除が有効になっているかどうかを確認し、論理的な削除を有効にする
- Azure ポータルにログインします。
- キー コンテナーを選択します。
- [プロパティ] ブレードをクリックします。
- 論理的な削除の横にあるオプション ボタンが、"回復を有効にする" に設定されているかどうかを確認します。
- キー コンテナーで論理的な削除が有効になっていない場合は、オプション ボタンをクリックして論理的な削除を有効にし、[保存] をクリックします。
削除されたシークレットを消去および回復するためのアクセス権をサービス プリンシパルに許可する
- Azure ポータルにログインします。
- キー コンテナーを選択します。
- [アクセス ポリシー] ブレードをクリックします。
- テーブルで、アクセスを許可するセキュリティ プリンシパルの行を見つけます (または、新しいセキュリティ プリンシパルを追加します)。
- キー、証明書、シークレットのドロップダウンをクリックします。
- ドロップダウンの一番下までスクロールし、[回復] と [削除] をクリックします
- セキュリティ プリンシパルがほとんどの操作を実行するには、取得と一覧表示の機能も必要です。
論理的に削除されたキー コンテナーを一覧表示、回復、または消去する
- Azure ポータルにログインします。
- ページの上部にある検索バーをクリックします。
- "Key Vault" サービスを検索します。 個々のキー コンテナーはクリックしないでください。
- 画面の上部で、[削除されたコンテナーの管理] オプションをクリックします。
- 画面の右側にコンテキスト ペインが表示されます。
- サブスクリプションを選択します。
- キー コンテナーが論理的に削除されている場合は、右側のコンテキスト ペインに表示されます。
- コンテナーの数が多すぎる場合は、コンテキスト ペインの下部にある [さらに読み込む] をクリックするか、CLI または PowerShell を使用して結果を取得します。
- 回復または消去したいコンテナーを見つけたら、その横にあるチェックボックスを選択します。
- キー コンテナーを回復する場合は、コンテキスト ペインの下部にある回復オプションを選択します。
- キー コンテナーを完全に削除する場合は、消去オプションを選択します。
論理的に削除されたシークレット、キー、証明書を一覧表示、回復、または消去する
- Azure ポータルにログインします。
- キー コンテナーを選択します。
- 管理するシークレットの種類 (キー、シークレット、または証明書) に対応するブレードを選択します。
- 画面の上部で、[Manage deleted (keys, secrets, or certificates)](削除された (キー、シークレット、または証明書) の管理) をクリックします
- 画面の右側にコンテキスト ペインが表示されます。
- シークレット、キー、または証明書が一覧に表示されない場合は、論理的に削除された状態ではありません。
- 管理するシークレット、キー、または証明書を選択します。
- コンテキスト ペインの下部にある回復または消去のオプションを選択します。
キー コンテナー (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
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
次のステップ