Auth0 Customer Managed Keys を使用すると、Tenant Master Key のライフサイクルを設定し、Auth0 テナントの Environment Root Key を置き換えるために、独自の Customer Provided Root Key を持ち込むことができます。
Customer Managed Keys では、キーを管理するための 2 つの方法を提供しています。
- 自身のキーを管理する: Key Management Editor ロール を持つユーザーは、Auth0 KMS で Tenant Master Key のライフサイクルをカスタマイズできます。
- Bring Your Own Key: Key Management Editor ロール を持つユーザーは、Auth0 Environment Root Key を置き換え、対応する Auth0 Cloud Hardware Security Module (HSM) に独自のラップ済み暗号化キーをインポートできます。
Auth0 Keys の詳細については、Auth0 のキー階層 をご覧ください。
Customer Managed Keys 機能は、Key Management Editor ロール を持つユーザーが利用できます。このロールはデフォルトではユーザーに付与されないため、テナントメンバーに明示的に付与する必要があります。詳細については、Add Tenant Members をご覧ください。
Auth0 の Rekey エンドポイントを使用すると、Tenant Master Key のライフサイクルを管理して、次のことができます。
- 既存の Tenant Master Key を、新たに作成した Tenant Master Key にローテーションする。
- 新しい Tenant Master Key を使用して Namespace Key をローテーションし、再暗号化する。
rekey エンドポイントへのアクセスを付与するには、次の権限を使用します。
Management API の Rekey エンドポイントを使用すると、Tenant Master Key のローテーション、Namespace Keys のローテーションと再暗号化を実行できます。
-
Tenant Master Key をローテーションする: 現在有効な Tenant Master Key を無効化し、新しい Tenant Master Key を作成します。
-
テナント内のすべての Namespace Keys をローテーションする: 現在有効なキーを無効化し、新しいキーを有効化します。
- 新しい Namespace Keys は、新しい暗号化処理で使用されます。
- 無効化された Namespace Keys は、以前に暗号化されたデータの復号に使用されます。
-
既存のすべての Namespace Keys を、新しい Tenant Master Key で再暗号化します。
Bring Your Own Key で独自の Customer Provided Root Key をインポートすると、その削除を除き、Customer Provided Root Key のライフサイクル管理を Auth0 に委ねる権限を暗黙的に取り消すことになります。
Bring Your Own Key を使用すると、Key Management Editors は、対応する Auth0 Cloud 内の FIPS 140-2 L3 Hardware Security Module (HSM) に ラップ済み暗号化キー (Customer Provided Root Key) を安全にインポートできます。
Bring Your Own Key を使用すると、次のことができます。
- Auth0 がデフォルトで生成する Environment Root Key を、新しい Customer Provided Root Key に置き換える。
- Customer Provided Root Key を使用してキー階層をローテーションし、再暗号化する。たとえば、新しい Tenant Master Key と新しい Namespace Key を作成して再暗号化する。
Bring Your Own Key を有効にするには、Auth0 Dashboard または Management API を使用できます。
Customer Managed Keys のログイベントを監視する
Auth0 は年に 1 回、テナントの暗号化キーを自動的にローテーションし、テナントログに次のログイベントを追加します。
kms_key_state_changed
kms_key_management_success
Customer Managed Keys の操作では、テナントログ に次のログイベントが追加されます。
以下を示す sapi イベントコード:
- 新しい暗号化キーを作成する
- 公開ラッピングキーを作成する
- 暗号化キーをインポートする
- キー ID で暗号化キーを削除する
- キー階層を再キー化する
KMS 操作が成功したことを示す kms_key_management_success イベントコード。
KMS 操作が失敗したことを示す kms_key_management_failure イベントコード。
KMS キーの状態変更を示す kms_key_state_changed イベントコード。
Auth0 のアプリケーション層では、Auth0 はエンベロープ暗号化を使用して、お客様のシークレットとデータを保護します。
Auth0 のエンベロープ暗号化の階層は次のキーで構成されており、それぞれが直上位のキーを使用して暗号化されています。以下の表は、このキー階層の概要を示しています。
Environment Root Key は階層の最上位にあり、Tenant Master Key をラップすることで、Auth0 の外部で漏えいしたり改ざんされたりするのを防ぎます。
Auth0 の各環境では、それぞれ独立した Auth0 Environment Root Key が生成され、近接する HSM に保存されます。HSM は高可用性を実現する複数の地理的拠点にデプロイされています。つまり、リージョン全体に及ぶ深刻な障害が発生した場合、HSM は別のリージョンへフェイルオーバーします。
Auth0 Environment Root Key はすべての テナント で共有されます。顧客は Bring Your Own Key 機能を使用して、自身の テナント 専用の Environment Root Key を利用できます。
Auth0 では、Auth0 Cloud Service Provider に応じて、以下の algorithms を使用して Tenant Master Key を Environment Root Key でラップします。
- Auth0 on Azure: RSA 2048 OAEP
- Auth0 on AWS: AES 256 GCM
Auth0 Dashboard または Management API を使用すると、テナント の管理者は Auth0 Environment Root Key を独自の Customer Provided Root Key に置き換えることができます。
各テナントには、暗号化された Tenant Master Key が Auth0 Key Management Service に保存されており、これによって Namespace keys が暗号化されます。
Tenant Master Key の暗号化に使用されるアルゴリズムは AES256 GCM です。
Auth0 Dashboard または Management API を使用する Tenant Admin が独自の Customer Provided Root Key を提供した場合、新しい Tenant Master Key が作成されます。
Namespace Keys は、テナント内で異なる用途に使われる暗号化キーを分離するためのものです。Namespace Keys の数と用途は Auth0 によって内部的に設定されており、カスタマイズすることはできません。
Namespace Keys の暗号化と復号には、Tenant Master Key へのアクセスが必要です。Namespace Keys が Auth0 Key Management Service の外部に出ることはなく、開発者や管理者がアクセスすることもできません。
Namespace Keys は Auth0 Key Management Service 内にあり、AES256 GCM アルゴリズムで暗号化されています。
Auth0 Key Management Service は、後続のデータ暗号化リクエストに対応するために、異なるデータ暗号化キーを安全に生成します。Auth0 Key Management Service は、新しいデータ暗号化キーを定期的に発行することで、セキュリティとパフォーマンスを最適化します。
データ暗号化キーの暗号化と復号には、割り当てられた Namespace Key へのアクセスが必要です。データ暗号化キーは、Auth0 Key Management Service の外部や Key Management Editors によって復号することはできません。
データ暗号化キーはデータの近くに配置され、AES256 GCM アルゴリズムで暗号化されています。