Azure Key Vault の論理的な削除の概要
重要
キー コンテナーで論理的な削除の保護が有効になっていない場合、キーを削除するとそれは完全に削除されます。 お客様には、Azure Policy でコンテナーの論理的な削除の適用を有効にすることを強くお勧めします。
重要
キー コンテナーが論理的に削除された場合、キー コンテナーと統合されているサービスは削除されます。 例: Azure RBAC ロールの割り当てと Event Grid サブスクリプション。 論理的に削除されたキー コンテナーを回復しても、これらのサービスは復元されません。 これらは再作成が必要です。
Key Vault の論理的な削除機能を使用すると、削除されたコンテナーと削除されたキー コンテナー オブジェクト (キー、シークレット、証明書など) を回復できます (論理的な削除として知られています)。 具体的には、次のシナリオに対処します。このセーフガードでは、次の保護が提供されます。
- シークレット、キー、証明書、またはキー コンテナーが削除されると、7 日から 90 日の構成可能な期間にわたって回復可能な状態が維持されます。 構成が指定されていない場合、ユーザーが誤ってシークレットを削除したことに気付いて対応するのに十分な時間を与えるために、既定の回復期間は 90 日に設定されます。
- シークレットを完全に削除するには、2 つの操作を行う必要があります。 まず、ユーザーはオブジェクトを削除する必要があり、これによって論理的に削除された状態になります。 次に、ユーザーは論理的に削除された状態のオブジェクトを消去する必要があります。 これらの保護により、ユーザーが誤ってまたは悪意をもって、シークレットあるいはキー コンテナーを削除するリスクが軽減されます。
- 論理的に削除された状態のシークレット、キー、証明書を消去するには、セキュリティ プリンシパルに "消去" 操作アクセス許可を付与する必要があります (たとえば、Key Vault の組み込みロールである "Key Vault の消去演算子" など)。
インターフェイスのサポート
論理的な削除機能は、REST API、Azure CLI、Azure PowerShell、.NET/C# の各インターフェイスの他に、ARM テンプレートでも使用できます。
シナリオ
Azure Key Vault は追跡対象のリソースであり、Azure Resource Manager によって管理されます。 Azure Resource Manager では、明確に定義された削除動作も指定されます。この動作では、正常な DELETE 操作によって、以降そのリソースにアクセスできないようにする必要があります。 論理的な削除機能は、削除が偶発的なものか意図的なものかにかかわらず、削除されたオブジェクトの回復に対処します。
一般的なシナリオでは、ユーザーは誤ってキー コンテナーまたはキー コンテナー オブジェクトを削除します。事前に定義された期間にわたって、そのキー コンテナーまたはキー コンテナー オブジェクトが回復できるようになっている場合、ユーザーは削除を元に戻してデータを回復できます。
もう 1 つのシナリオでは、悪意のあるユーザーが、キー コンテナーまたはキー コンテナー オブジェクト (コンテナー内のキーなど) を削除して、業務を中断させようとします。 安全対策として、キー コンテナーまたはキー コンテナー オブジェクトの削除と、基盤となるデータの実際の削除を分離するには、たとえば、データ削除のアクセス許可を、別の信頼できるロールに制限します。 このアプローチでは、すぐにデータが失われる結果を招く可能性がある操作に対しては、事実上クォーラムが必要になります。
論理的な削除の動作
論理削除が有効になっている場合、削除されたリソースとしてマークされたリソースは、指定された期間 (既定では 90 日) 保持されます。 さらに、削除されたオブジェクトを回復する、実質的には削除を元に戻すメカニズムも用意されています。
新しいキー コンテナーを作成するときに、論理削除は既定でオンになっています。 キー コンテナーで論理削除が有効になると、無効にすることはできません。
アイテム保持ポリシーの期間はキー コンテナーの作成時にのみ構成でき、後で変更できません。 7 日から 90 日までの範囲で設定できますが、既定は 90 日です。 論理的な削除と消去保護の保持ポリシーの両方に同じ期間が適用されます。
保有期間が経過するまで、論理的に削除されたキー コンテナーの名前を再利用することはできません。
消去保護
消去保護は Key Vault のオプションの動作であり、既定で有効になっていません。 消去保護は、論理的な削除が有効な場合にのみ有効にすることができます。 データ損失を防ぐために暗号化にキーを使用する場合は、消去保護をお勧めします。 データ損失を防ぐために、Storage など、Azure Key Vault と統合するほとんどの Azure サービスでは、消去保護が必要となります。
消去保護が有効な場合、削除状態のコンテナーまたはオブジェクトは、保持期間が経過するまで消去できません。 論理的に削除されたコンテナーとオブジェクトはまだ回復可能で、アイテム保持ポリシーが確実に守られます。
既定の保持期間は 90 日ですが、Azure portal からアイテム保持ポリシーの期間を 7 から 90 日の値に設定できます。 アイテム保持ポリシーの期間を設定して保存すると、そのコンテナーについては期間を変更できなくなります。
消去保護は、CLI、PowerShell、または Portal を経由してオンにできます。
許可された消去
プロキシ リソースで POST 操作によってキー コンテナーを完全削除、つまり消去することが可能ですが、それには特別な権限が必要です。 一般に、キー コンテナーを消去できるのは、"Key Vault の消去演算子r" の RBAC ロールを持つサブスクリプション所有者またはユーザーのみです。 POST 操作では、コンテナーが直ちに削除されます。この削除は元に戻すことができません。
次のような例外があります。
- Azure サブスクリプションが削除不可とマークされている場合。 この場合、実際の削除を実行できるのはサービスのみです。これは、スケジュールされたプロセスとして行われます。
--enable-purge-protection
引数がコンテナー自体で有効になっている場合。 この場合、Key Vault では、元のシークレット オブジェクトは、オブジェクトを完全に削除する削除対象としてマークされたときから 7 日から 90 日間待機します。
手順については、「CLI で Key Vault の論理的な削除を使用する方法:キー コンテナーを消去する」または「PowerShell で Key Vault の論理的な削除を使用する方法:キー コンテナーを消去する」を参照してください。
キー コンテナーの復旧
キー コンテナーを削除すると、サービスによってサブスクリプションにプロキシ リソースが作成され、回復に必要なメタデータが追加されます。 プロキシ リソースは保存済みオブジェクトで、削除済みキー コンテナーと同じ場所から使用できます。
キー コンテナー オブジェクトの復旧
キーなどのキー コンテナー オブジェクトを削除すると、そのサービスではオブジェクトが削除済み状態になり、どの取得操作でもアクセスできなくなります。 この状態のキー コンテナー オブジェクトは、表示、回復、強制/完全削除だけができます。 オブジェクトを表示するには、Azure CLI az keyvault key list-deleted
コマンドを使用するか (「CLI で Key Vault の論理的な削除を使用する方法」を参照)、または Azure PowerShell Get-AzKeyVault -InRemovedState
コマンドを使用してください (「PowerShell で Key Vault の論理的な削除を使用する方法」を参照)。
また、Key Vault では、削除したキー コンテナーまたはキー コンテナー オブジェクトに対応する基盤となるデータが、事前に定義されたリテンション期間の後に削除されるようにスケジュールされます。 また、コンテナーに対応する DNS レコードも、保有期間の間保持されます。
論理的な削除の保持期間
論理的に削除されたリソースは、一定期間 (90 日間) 保持されます。 論理的な削除のリテンション期間の間は、以下が適用されます。
- サブスクリプションで論理的な削除状態のすべてのキー コンテナーとキー コンテナー オブジェクトを表示したり、その削除情報と回復情報にアクセスしたりすることができます。
- 特別なアクセス許可を持つユーザーだけが、削除されたコンテナーを表示できます。 削除されたコンテナーを扱うための特別なアクセス許可が指定されたカスタム ロールを作成することをお勧めします。
- 同じ場所には同じ名前のキー コンテナーを作成できません。同様に、キー コンテナー オブジェクトを、そのオブジェクトと同じ名前の削除済み状態オブジェクトが含まれるキー コンテナーに作成することはできません。
- 特別な権限を持つユーザーのみが、対応するプロキシ リソースで回復コマンドを発行して、キー コンテナーまたはキー コンテナー オブジェクトを復元できます。
- リソース グループにキー コンテナーを作成する権限を持つユーザー (カスタム ロールのメンバー) がコンテナーを復元できます。
- 特別な権限を持つユーザーのみが、対応するプロキシ リソースで削除コマンドを発行して、キー コンテナーまたはキー コンテナー オブジェクトを強制的に削除できます。
論理的に削除されたキー コンテナーまたはキー コンテナー オブジェクトとそのコンテンツは、そのキー コンテナーまたはキー コンテナー オブジェクトを回復しない限り、リテンション期間の終わりに消去されます。 リソースの削除は、再スケジュールできません。
課金への影響
一般に、オブジェクト (キー コンテナー、キー、またはシークレット) が削除済み状態にある場合は、'purge' と 'recover' の 2 つの操作のみが可能です。 その他の操作はすべて失敗します。 したがって、オブジェクトが存在するにもかかわらず操作を実行できないため、使用状況は発生せず、課金も発生しません。 ただし、次の例外があります。
- 'purge' および 'recover' アクションは通常のキー コンテナー操作と見なされ、課金されます。
- オブジェクトが HSM キーである場合は、過去 30 日間にキー バージョンが使用されていると、'HSM で保護されたキー' の 1 か月あたり、キー バージョンあたりの課金が適用されます。 その後は、オブジェクトが削除済み状態になり、それに対して操作を実行できないため、課金は適用されません。
次のステップ
次の 3 つのガイドでは、論理的な削除を使用する場合の主な使用シナリオを紹介しています。