Auth0カスタマーマネージドキーを使用すると、テナントマスターキーのライフサイクルを構成し、独自の顧客提供ルートキーを持ち込んで、Auth0テナントの環境ルートキーを置き換えることができます。
カスタマーマネージドキーを使用すると、2つの方法でキーを管理することができます。
Control Your Own Key(独自のキーを制御する): キー管理エディターはAuth0 KMSでテナントマスターキーのライフサイクルをカスタマイズできます。
Bring Your Own Key(BYOK:独自のキーを持ち込む): キー管理エディターはAuth0環境ルートキーを置き換え、ラップされた独自の暗号化キーを対応するAuth0 Cloud HSM(ハードウェアセキュリティモジュール)にインポートできます。
Auth0のキーの詳細については、「Auth0のキー階層 」をお読みください。
Auth0 Management API のRekey エンドポイントを使用してテナントマスターキーのライフサイクルを制御し、以下を行うことができます。
以下の権限を使用して、キー管理エディターへのアクセス権を提供します。
古いテナントマスターキーを新規作成したテナントマスターキーでローテーションする。
名前空間キーを新しいテナントマスターキーでローテーションして、再暗号化する。
権限 説明 create:encryption_keys
update:encryption_keys
“ユーザーはManagement APIの Rekey エンドポイントを使用して、Auth0テナントのキー階層のローテーションと再暗号化を行うことができます。
Management APIのRekey エンドポイントを使用して、テナントマスターキーをローテーションし、名前空間キーをローテーションおよび再暗号化します。
エンドポイントは、Auth0で特定の認可スコープを持つテナントメンバーのみ使用することができます。これらのスコープはデフォルトでキー管理エディターに付与されます。
テナントマスターキーのローテーション:現在アクティブなテナントマスターキーを非アクティブにし、テナントマスターキーを新規作成します。
テナントにあるすべての名前空間キーのローテーション:現在アクティブなキーを非アクティブにし、新しいキーをアクティブにします。
新しい名前空間キーは、新しい暗号化操作に使用される。
非アクティブな名前空間キーは、前に暗号化されたデータの復号に使用される。
既存の名前空間キーを新しいテナントマスターキーですべて再暗号化します。
BYOKを使用して独自の顧客提供ルートキーをインポートすることにより、Auth0による顧客提供ルートキーのライフサイクル管理を削除以外について暗示的に無効化しようとしています。
BYOK(Bring Your Own Key)によって、キー管理エディターはラップされた暗号化キー(顧客提供ルートキー)を対応するAuth0 Cloud内のFIPS 140-2 L3 HSM(ハードウェアセキュリティモジュール)に安全にインポートできます。
BYOKでは、以下のことが可能です。
Dashboard またはManagement API を使用して、BYOKを有効にすることができます。
デフォルトのAuth0が生成した環境ルートキーを新しい顧客提供ルートキーに置き換える。
キー階層を顧客提供ルートキーでローテーションし、再暗号化する。たとえば、新しいテナントマスターキーと新しい名前空間キーを作成して再暗号化する。
カスタマーマネージドキー操作を行うと、テナントログ に以下のログイベントが追加されます。
以下を示すsapiイベントコード:
KMS操作が正常に行われたことを示すkms_key_management_successイベントコード
新しい暗号化キーの作成
公開ラッピングキーの作成
暗号化キーのインポート
キーID別の暗号化キーの削除
キー階層のリキー
KMS操作が失敗したことを示すkms_key_management_failureイベントコード
KMSキーの状態が変更されたことを示すkms_key_state_changedイベントコード
Auth0のアプリケーションレイヤーで、Auth0はエンベロープ暗号化を使ってシークレットとデータを安全に保護します。
Auth0のエンベロープ暗号化階層は以下のキーで構成されており、それぞれが各自の上にあるキーを使って暗号化されます。以下のテーブルは、キー階層をまとめたものです。
キー アルゴリズム ストレージ 環境のルートキー RSA 2048 OAEP(Azure上のAuth0) AES-256-GCM(AWS上のAuth0) FIPS 140-2 L3ハードウェアのセキュリティモジュール テナントのマスターキー AES-256-GCM Auth0 KMSデータベース 名前空間キー AES-256-GCM Auth0 KMSデータベース データ暗号化キー AES-256-GCM データの隣りに保管
環境ルートキーは階層の上部を表し、テナントマスターキーがAuth0の外部で公開または改ざんされるのを防ぐために、テナントマスターキーをラップします。
Auth0環境ごとにAuth0環境ルートキーが個別に生成され、隣接するHSMに格納されます。HSMは、高可用性を実現した複数の地理的構成でデプロイされます。つまり、HSMはリージョン全体にまたがる深刻なインシデントが発生した場合、別のリージョンにフェイルオーバーします。
Auth0環境ルートキーはすべてのテナントにまたがって共有されます。お客様はBYOK機能を使用して、テナント専用の環境ルートキーを持つことができます。
Auth0は、以下のアルゴリズムを使用して、テナントマスターキーをAuth0 Cloudサービスプロバイダーに基づいて環境ルートキーでラップします。
Auth0 DashboardまたはManagement APIを使用して、キー管理エディターは、Auth0の環境ルートキーを独自の顧客提供ルートキーに置き換えることができます。
Azure上で稼働するAuth0:RSA 2048 OAEP
AWS上で稼働するAuth0:AES 256 GCM
各テナントには、暗号化されたテナントマスターキーがAuth0 Key Management Serviceに格納されており、テナントは名前空間キーを暗号化します。
テナントマスターキーの暗号化に使用するアルゴリズムはAES256 GCMです。
Auth0 DashboardまたはManagement APIを使用しているキー管理エディターが独自の顧客提供ルートキーを提供すると、テナントマスターキーが新規作成されます。
名前空間キーは暗号化キーを分離し、テナント内で異なる目的に使用されます。名前空間キーの数と使用については、Auth0によって内部で構成され、カスタマイズすることはできません。
名前空間キーの暗号化と復号化を実行するには、テナントマスターキーにアクセスする必要があります。名前空間キーはAuth0 Key Management Serviceから絶対に離れることがなく、デベロッパーや管理者がアクセスすることはできません。
名前空間キーはAuth0 Key Management Serviceに存在し、AES256 GCMアルゴリズムで暗号化されます。
Auth0 Key Management Serviceは、後続のデータ暗号化要求に対して、異なるデータ暗号化キーを安全に生成します。Auth0 Key Management Serviceは、新しいデータ暗号化キーを定期的に発行することで、セキュリティとパフォーマンスを最適化します。
データ暗号化キーの暗号化と復号化を実行するには、割り当てられた名前空間キーにアクセスする必要があります。データ暗号化キーをAuth0 Key Management Serviceの外部またはキー管理エディターで復号化することはできません。
データ暗号化キーはデータの横にあり、AES256 GCMアルゴリズムで暗号化されます。
データ暗号化キーはデータの横にあり、AES256 GCMアルゴリズムで暗号化されます。