> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-actions-triggers-prototype.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# カスタマーマネージドキー

> カスタマーマネージドキーでキーを管理する方法について説明します。

Auth0カスタマーマネージドキーを使用すると、テナントマスターキーのライフサイクルを構成し、独自の顧客提供ルートキーを持ち込んで、Auth0テナントの環境ルートキーを置き換えることができます。

カスタマーマネージドキーを使用すると、2つの方法でキーを管理することができます。

* **Control Your Own Key（独自のキーを制御する）：** キー管理エディターはAuth0 KMSでテナントマスターキーのライフサイクルをカスタマイズできます。
* **Bring Your Own Key（BYOK：独自のキーを持ち込む）：** キー管理エディターはAuth0環境ルートキーを置き換え、ラップされた独自の暗号化キーを対応するAuth0 Cloud HSM（ハードウェアセキュリティモジュール）にインポートできます。

Auth0のキーの詳細については、「[Auth0のキー階層](/docs/ja-jp/secure/highly-regulated-identity/customer-managed-keys#auth0-key-hierarchy)」をお読みください。

Auth0 <Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-jp/glossary?term=management-api" tip="Management API: 顧客が管理タスクを実行できるようにするための製品。" cta="用語集の表示">Management API</Tooltip>の[Rekey](https://auth0.com/docs/api/management/v2/keys/post-encryption-rekey)エンドポイントを使用してテナントマスターキーのライフサイクルを制御し、以下を行うことができます。

## Control Your Own Key

以下の権限を使用して、キー管理エディターへのアクセス権を提供します。

* 古いテナントマスターキーを新規作成したテナントマスターキーでローテーションする。
* 名前空間キーを新しいテナントマスターキーでローテーションして、再暗号化する。

### 権限

| 権限                                                     | 説明                                                                                 |
| ------------------------------------------------------ | ---------------------------------------------------------------------------------- |
| `create:encryption_keys` `update:encryption_keys` \`\` | ユーザーはManagement APIの [Rekey]() エンドポイントを使用して、Auth0テナントのキー階層のローテーションと再暗号化を行うことができます。 |

Management APIの[Rekey](https://auth0.com/docs/api/management/v2/keys/post-encryption-rekey)エンドポイントを使用して、テナントマスターキーをローテーションし、名前空間キーをローテーションおよび再暗号化します。

### エンドポイント

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  エンドポイントは、Auth0で特定の認可スコープを持つテナントメンバーのみ使用することができます。これらのスコープはデフォルトでキー管理エディターに付与されます。
</Callout>

* テナントマスターキーのローテーション：現在アクティブなテナントマスターキーを非アクティブにし、テナントマスターキーを新規作成します。
* テナントにあるすべての名前空間キーのローテーション：現在アクティブなキーを非アクティブにし、新しいキーをアクティブにします。

  * 新しい名前空間キーは、新しい暗号化操作に使用される。
  * 非アクティブな名前空間キーは、前に暗号化されたデータの復号に使用される。
* 既存の名前空間キーを新しいテナントマスターキーですべて再暗号化します。

<Warning>
  BYOKを使用して独自の顧客提供ルートキーをインポートすることにより、Auth0による顧客提供ルートキーのライフサイクル管理を削除以外について暗示的に無効化しようとしています。
</Warning>

## BYOK（Bring Your Own Key）

BYOK（Bring Your Own Key）によって、キー管理エディターはラップされた暗号化キー（顧客提供ルートキー）を対応するAuth0 Cloud内のFIPS 140-2 L3 HSM（ハードウェアセキュリティモジュール）に安全にインポートできます。

BYOKでは、以下のことが可能です。

[Dashboard](/docs/ja-jp/secure/highly-regulated-identity/customer-managed-keys/customer-managed-keys-dashboard)または[Management API](/docs/ja-jp/secure/highly-regulated-identity/customer-managed-keys/customer-managed-keys-management-api)を使用して、BYOKを有効にすることができます。

* デフォルトのAuth0が生成した環境ルートキーを新しい顧客提供ルートキーに置き換える。
* キー階層を顧客提供ルートキーでローテーションし、再暗号化する。たとえば、新しいテナントマスターキーと新しい名前空間キーを作成して再暗号化する。

カスタマーマネージドキー操作を行うと、[テナントログ](/docs/ja-jp/deploy-monitor/logs)に以下のログイベントが追加されます。

## カスタマーマネージドキーのログイベントを監視する

以下を示す`sapi`イベントコード：

KMS操作が正常に行われたことを示す`kms_key_management_success`イベントコード

* 新しい暗号化キーの作成
* 公開ラッピングキーの作成
* 暗号化キーのインポート
* キーID別の暗号化キーの削除
* キー階層のリキー

KMS操作が失敗したことを示す`kms_key_management_failure`イベントコード

KMSキーの状態が変更されたことを示す`kms_key_state_changed`イベントコード

Auth0のアプリケーションレイヤーで、Auth0はエンベロープ暗号化を使ってシークレットとデータを安全に保護します。

## Auth0のキー階層

Auth0のエンベロープ暗号化階層は以下のキーで構成されており、それぞれが各自の上にあるキーを使って暗号化されます。以下のテーブルは、キー階層をまとめたものです。

| **キー**      | **アルゴリズム**                                               | **ストレージ**                       |
| :---------- | :------------------------------------------------------- | :------------------------------ |
| 環境のルートキー    | RSA 2048 OAEP（Azure上のAuth0）<br />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サービスプロバイダーに基づいて環境ルートキーでラップします。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Auth0 DashboardまたはManagement APIを使用して、キー管理エディターは、Auth0の環境ルートキーを独自の顧客提供ルートキーに置き換えることができます。
</Callout>

* Azure上で稼働するAuth0：RSA 2048 OAEP
* AWS上で稼働するAuth0：AES 256 GCM

各テナントには、暗号化されたテナントマスターキーがAuth0 Key Management Serviceに格納されており、テナントは名前空間キーを暗号化します。

### テナントマスターキー

テナントマスターキーの暗号化に使用するアルゴリズムはAES256 GCMです。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Auth0 DashboardまたはManagement APIを使用しているキー管理エディターが独自の顧客提供ルートキーを提供すると、テナントマスターキーが新規作成されます。
</Callout>

名前空間キーは暗号化キーを分離し、テナント内で異なる目的に使用されます。名前空間キーの数と使用については、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アルゴリズムで暗号化されます。
