Azure Key Vault の論理的な削除の概要

重要

直ちに、キー コンテナーで論理的な削除を有効にする必要があります。 論理的な削除をオプトアウトする機能は非推奨になり、2020 年 2 月に削除される予定です。 詳細については、こちらを参照してください

重要

キー コンテナーが論理的に削除された場合、キー コンテナーと統合されているサービスは削除されます。 例: Azure RBAC ロールの割り当てと Event Grid サブスクリプション。 論理的に削除されたキー コンテナーを回復しても、これらのサービスは復元されません。 これらは再作成が必要です。

Key Vault の論理的な削除機能を使用すると、削除されたコンテナーと削除されたキー コンテナー オブジェクト (キー、シークレット、証明書など) を回復できます (論理的な削除として知られています)。 具体的には、次のシナリオに対処します。このセーフガードでは、次の保護が提供されます。

  • シークレット、キー、証明書、またはキー コンテナーが削除されると、7 日から 90 日の構成可能な期間にわたって回復可能な状態が維持されます。 構成が指定されていない場合、既定の回復期間は 90 日に設定されます。 これにより、ユーザーはシークレットの誤削除に気づき、対応するために十分な時間を確保することができます。
  • シークレットを完全に削除するには、2 つの操作を行う必要があります。 まず、ユーザーはオブジェクトを削除する必要があり、これによって論理的に削除された状態になります。 次に、ユーザーは論理的に削除された状態のオブジェクトを消去する必要があります。 消去操作には、追加のアクセス ポリシーのアクセス許可が必要です。 これらの追加の保護により、ユーザーが誤って、または意図的にシークレットまたはキー コンテナーを削除するリスクが軽減されます。
  • 論理的に削除された状態のシークレットを消去するには、サービス プリンシパルに追加の "消去" アクセス ポリシーのアクセス許可が付与されている必要があります。 消去アクセス ポリシーのアクセス許可は、既定では、キー コンテナーとサブスクリプションの所有者を含むサービス プリンシパルには付与されないため、意図的に設定する必要があります。 論理的に削除されたシークレットを削除する際に昇格されたアクセス ポリシーのアクセス許可を要求することで、シークレットを誤って削除する可能性が減少します。

インターフェイスのサポート

論理的な削除機能は、REST APIAzure CLIAzure PowerShell.NET/C# の各インターフェイスの他に、ARM テンプレートでも使用できます。

シナリオ

Azure Key Vault は追跡対象のリソースであり、Azure Resource Manager によって管理されます。 Azure Resource Manager では、明確に定義された削除動作も指定されます。この動作では、正常な DELETE 操作によって、以降そのリソースにアクセスできないようにする必要があります。 論理的な削除機能は、削除が偶発的なものか意図的なものかにかかわらず、削除されたオブジェクトの回復に対処します。

  1. 一般的なシナリオでは、ユーザーが誤ってキー コンテナーまたはキー コンテナー オブジェクトを削除します。事前に定義された期間だけ、そのキー コンテナーまたはキー コンテナー オブジェクトを回復できるようにすると、ユーザーは削除を取り消して、データを回復することができます。

  2. もう 1 つのシナリオでは、悪意のあるユーザーが、キー コンテナーまたはキー コンテナー オブジェクト (コンテナー内のキーなど) を削除して、業務を中断させようとします。 安全対策として、キー コンテナーまたはキー コンテナー オブジェクトの削除と、基盤となるデータの実際の削除を分離するには、たとえば、データ削除のアクセス許可を、別の信頼できるロールに制限します。 このアプローチでは、すぐにデータが失われる結果を招く可能性がある操作に対しては、事実上クォーラムが必要になります。

論理的な削除の動作

論理削除が有効になっている場合、削除されたリソースとしてマークされたリソースは、指定された期間 (既定では 90 日) 保持されます。 さらに、削除されたオブジェクトを回復する、実質的には削除を元に戻すメカニズムも用意されています。

新しいキー コンテナーを作成するときに、論理削除は既定でオンになっています。 キー コンテナーで論理削除が有効になると、無効にすることはできません。

既定の保有期間は 90 日ですが、キー コンテナーの作成時に、Azure portal を通じて、リテンション期間ポリシーの間隔を 7 から 90 日の値に設定することができます。 保護の削除のアイテム保持ポリシーでは、同じ間隔が使用されます。 設定した場合、保持ポリシーの間隔は変更できません。

保有期間が経過するまで、論理的に削除されたキー コンテナーの名前を再利用することはできません。

消去保護

消去保護は Key Vault のオプションの動作であり、既定で有効になっていません。 消去保護は、論理的な削除が有効な場合にのみ有効にすることができます。 これは CLI または PowerShell を使用して有効にできます。 データ損失を防ぐために暗号化にキーを使用する場合は、消去保護をお勧めします。 データ損失を防ぐために、Storage など、Azure Key Vault と統合するほとんどの Azure サービスでは、消去保護が必要となります。

消去保護が有効な場合、削除状態のコンテナーまたはオブジェクトは、保持期間が経過するまで消去できません。 論理的に削除されたこれらのコンテナーとオブジェクトはまだ回復可能で、アイテム保持ポリシーに確実に従うことができます。

既定の保有期間は 90 日ですが、Azure portal からアイテム保持ポリシーの期間を 7 から 90 日の値に設定することができます。 アイテム保持ポリシーの期間を設定して保存すると、そのコンテナーに対して変更することはできません。

許可された消去

プロキシ リソースで POST 操作によってキー コンテナーを完全削除、つまり消去することが可能ですが、それには特別な権限が必要です。 一般的に、サブスクリプションの所有者だけが、キー コンテナーを消去できます。 POST 操作では、コンテナーが直ちに削除されます。この削除は元に戻すことができません。

次のような例外があります。

  • Azure サブスクリプションが削除不可とマークされている場合。 この場合は、サービスのみが実際の削除を実行できます。これは、スケジュールされたプロセスとして行われます。
  • --enable-purge-protection flag がコンテナー自体で有効になっている場合。 この場合、Key Vault では、元のシークレット オブジェクトは、オブジェクトを完全に削除する削除対象としてマークされたときから 90 日間待機します。

手順については、「CLI で Key Vault の論理的な削除を使用する方法:キー コンテナーを消去する」または「PowerShell で Key Vault の論理的な削除を使用する方法:キー コンテナーを消去する」を参照してください。

キー コンテナーの回復

キー コンテナーを削除すると、サービスによってサブスクリプションにプロキシ リソースが作成され、回復に必要なメタデータが追加されます。 プロキシ リソースは保存済みオブジェクトで、削除済みキー コンテナーと同じ場所から使用できます。

キー コンテナー オブジェクトの回復

キーなどのキー コンテナー オブジェクトを削除すると、オブジェクトは削除済み状態になり、どの取得操作でもアクセスできなくなります。 この状態のキー コンテナー オブジェクトは、表示、回復、強制/完全削除だけができます。 オブジェクトを表示するには、Azure CLI az keyvault key list-deleted コマンドを使用するか (「CLI で Key Vault の論理的な削除を使用する方法」を参照)、または Azure PowerShell -InRemovedState パラメーターを使用してください (「PowerShell で Key Vault の論理的な削除を使用する方法」を参照)。

また、Key Vault では、削除したキー コンテナーまたはキー コンテナー オブジェクトに対応する基盤となるデータが、事前に定義されたリテンション期間の後に削除されるようにスケジュールされます。 また、コンテナーに対応する DNS レコードも、リテンション期間の間だけ保持されます。

論理的な削除のリテンション期間

論理的に削除されたリソースは、一定期間 (90 日間) 保持されます。 論理的な削除のリテンション期間の間は、以下が適用されます。

  • サブスクリプションで論理的な削除状態のすべてのキー コンテナーとキー コンテナー オブジェクトを表示したり、その削除情報と回復情報にアクセスしたりできます。
    • 特別なアクセス許可を持つユーザーだけが、削除されたコンテナーを表示できます。 削除されたコンテナーを扱うための特別なアクセス許可が指定されたカスタム ロールを作成することをお勧めします。
  • 同じ場所には同じ名前のキー コンテナーを作成できません。同様に、キー コンテナー オブジェクトを、そのオブジェクトと同じ名前の削除済み状態オブジェクトが含まれるキー コンテナーに作成することはできません。
  • 特別な権限を持つユーザーのみが、対応するプロキシ リソースで回復コマンドを発行して、キー コンテナーまたはキー コンテナー オブジェクトを復元できます。
    • リソース グループにキー コンテナーを作成する権限を持つユーザー (カスタム ロールのメンバー) がコンテナーを復元できます。
  • 特別な権限を持つユーザーのみが、対応するプロキシ リソースで削除コマンドを発行して、キー コンテナーまたはキー コンテナー オブジェクトを強制的に削除できます。

論理的に削除されたキー コンテナーまたはキー コンテナー オブジェクトとそのコンテンツは、そのキー コンテナーまたはキー コンテナー オブジェクトを回復しない限り、リテンション期間の終わりに消去されます。 リソースの削除は、再スケジュールできません。

課金への影響

一般に、オブジェクト (キー コンテナー、キー、またはシークレット) が削除済み状態にある場合は、'purge' と 'recover' の 2 つの操作のみが可能です。 その他の操作はすべて失敗します。 したがって、オブジェクトが存在するにもかかわらず操作を実行できないため、使用状況は発生せず、課金も発生しません。 ただし、次の例外があります。

  • 'purge' および 'recover' アクションは通常のキー コンテナー操作と見なされ、課金されます。
  • オブジェクトが HSM キーである場合は、過去 30 日間にキー バージョンが使用されていると、'HSM で保護されたキー' の 1 か月あたり、キー バージョンあたりの課金が適用されます。 その後は、オブジェクトが削除済み状態になり、それに対して操作を実行できないため、課金は適用されません。

次のステップ

次の 2 つのガイドでは、論理的な削除を使用する場合の主な使用シナリオを紹介しています。