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