メインコンテンツへスキップ
Auth0 Customer Managed Keys を使用すると、テナントマスターキーのライフサイクルを設定し、独自の Customer Provided Root Key を持ち込んで、Auth0 テナントの 環境ルートキー を置き換えることができます。 Customer Managed Keys では、キーを管理するための 2 つの方法を利用できます。
  • Control Your Own Key: Key Management Editor roleを持つユーザーは、Auth0 KMS 内でテナントマスターキーのライフサイクルをカスタマイズできます。
  • Bring Your Own Key: Key Management Editor roleを持つユーザーは、Auth0 環境ルートキー を置き換え、対応する Auth0 Cloud Hardware Security Module (HSM) に独自のラップされた暗号鍵をインポートできます。
Auth0 Keys の詳細については、Auth0 のキー階層を参照してください。
Customer Managed Keys 機能は、Key Management Editor ロールを持つユーザーが利用できます。このロールはデフォルトではユーザーに付与されないため、テナントメンバーに明示的に付与する必要があります。詳細については、テナントメンバーの追加を参照してください。

独自のキーを管理する

Auth0の Rekey エンドポイントを使用すると、テナントマスターキーのライフサイクルを管理して、次のことを実行できます。
  • 古いテナントマスターキーを、新しく作成したテナントマスターキーにローテーションします。
  • 新しいテナントマスターキーを使用して、ネームスペースキーをローテーションし、再暗号化します。

Permissions

rekey エンドポイントへのアクセスを付与するには、次の権限を使用します。
PermissionsDescriptions
create:encryption_keys update:encryption_keysユーザーは、Management API の Rekey エンドポイントを使用して、Auth0 テナントのキー階層をローテーションおよび再暗号化できます。

エンドポイント

Management API の Rekey エンドポイントを使用して、テナントマスターキーをローテーションし、名前空間キーのローテーションと再暗号化を行います。
  • テナントマスターキーをローテーションする: 現在アクティブなテナントマスターキーを無効化し、新しいテナントマスターキーを作成します。
  • テナント内のすべての 名前空間キー をローテーションする: 現在アクティブなキーを無効化し、新しいキーをアクティブ化します。
    • 新しい 名前空間キー は、新しい暗号化処理で使用されます。
    • 無効化された 名前空間キー は、以前に暗号化されたデータの復号に使用されます。
  • 既存のすべての 名前空間キー を、新しいテナントマスターキーで再暗号化します。
このエンドポイントを利用できるのは、Auth0 で特定の認可スコープを持つテナントメンバーに限られます。デフォルトでは、これらのスコープは Key Management Editor role を持つユーザーに付与されます。

Bring Your Own 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) に Wrapped Encryption Key (Customer Provided Root Key) を安全にインポートできます。 Bring Your Own Key を使用すると、次のことが可能です。
  • Auth0 が生成したデフォルトの 環境ルートキー を、新しい Customer Provided Root Key に置き換える。
  • Customer Provided Root Key を使用してキー階層をローテーションし、再暗号化する。たとえば、新しい テナントマスターキー と新しい 名前空間キー を作成して再暗号化する。
Bring Your Own Key を有効にするには、Dashboard または Management API を使用できます。

Customer Managed Keys のログイベントを監視する

Auth0 はテナントの暗号化キーを毎年自動的にローテーションし、テナントログに次のイベントを追加します。
  • kms_key_state_changed
  • kms_key_management_success
Customer Managed Keys の操作では、テナントログ に次のログイベントが追加されます。 次を示す sapi イベントコード:
  • 新しい暗号化キーの作成
  • 公開ラッピングキーの作成
  • 暗号化キーのインポート
  • key id による暗号化キーの削除
  • キー階層の再キー化
KMS 操作が成功したことを示す kms_key_management_success イベントコード。 KMS 操作が失敗したことを示す kms_key_management_failure イベントコード。 KMS キーの状態が変更されたことを示す kms_key_state_changed イベントコード。

Auth0 の鍵階層

Auth0 のアプリケーション層では、エンベロープ暗号化を使用して顧客のシークレットとデータを保護します。 Auth0 のエンベロープ暗号化キー階層は以下の鍵で構成されており、各鍵はその 1 つ上位の鍵で暗号化されます。以下の表は、このキー階層をまとめたものです。
アルゴリズム保存場所
環境ルートキーRSA 2048 OAEP (Auth0 on Azure)
AES-256-GCM (Auth0 on AWS)
FIPS 140-2 レベル 3 ハードウェアセキュリティモジュール
テナントマスターキーAES-256-GCMAuth0 KMS データベース
名前空間キーAES-256-GCMAuth0 KMS データベース
データ暗号化キーAES-256-GCMデータとともに保存

環境ルートキー

環境ルートキーは階層の最上位に位置し、テナントマスターキーをラップすることで、Auth0 の外部でそのキーが開示されたり改ざんされたりするのを防ぎます。 Auth0 環境ごとに独立した Auth0 環境ルートキーが生成され、近接する HSM に保存されます。HSM は高可用性のマルチリージョン構成でデプロイされています。つまり、リージョン全体に影響する重大な障害が発生した場合、HSM は別のリージョンにフェイルオーバーします。 Auth0 環境ルートキーは、すべてのテナントで共有されます。お客様は Bring Your Own Key 機能を使用することで、自身のテナント専用の環境ルートキーを利用できます。 Auth0 では、利用している Auth0 Cloud Service Provider に応じて、次のアルゴリズムを使用して環境ルートキーでテナントマスターキーをラップします。
  • Azure 上の Auth0: RSA 2048 OAEP
  • AWS 上の Auth0: AES 256 GCM
Auth0 Dashboard または Management API を使用すると、テナント管理者は Auth0 環境ルートキーを独自の Customer Provided Root Key に置き換えることができます。

テナントマスターキー

各テナントには、Auth0 Key Management Service に暗号化されたテナントマスターキーが保存されており、これは名前空間キーの暗号化に使用されます。 テナントマスターキーの暗号化に使用されるアルゴリズムは AES256 GCM です。
Auth0 Dashboard または Management API を使用するテナント管理者が独自の Customer Provided Root Key を指定すると、新しいテナントマスターキーが作成されます。

名前空間キー

名前空間キーは、テナント内で異なる目的に使用される暗号鍵を分離するためのものです。名前空間キーの数と用途は Auth0 によって内部的に構成されており、カスタマイズすることはできません。 名前空間キーの暗号化と復号化には、テナントマスターキーへのアクセスが必要です。名前空間キーが Auth0 Key Management Service の外部に出ることはなく、開発者や管理者がアクセスすることもできません。 名前空間キーは Auth0 Key Management Service 内にあり、AES256 GCM アルゴリズムで暗号化されています。

データ暗号化キー

Auth0 Key Management Service は、以降のデータ暗号化リクエストに使用する複数のデータ暗号化キーを安全に生成します。Auth0 Key Management Service は、新しいデータ暗号化キーを定期的に発行することで、セキュリティとパフォーマンスを最適化します。 データ暗号化キーの暗号化と復号には、割り当てられた 名前空間キー へのアクセスが必要です。データ暗号化キーは、Auth0 Key Management Service の外部では復号できず、Key Management Editors でも復号できません。 データ暗号化キーはデータのそばに配置され、AES256 GCM アルゴリズムで暗号化されます。