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

# Management APIでカスタマーマネージドキーを構成する

> Management APIでカスタマーマネージドキーを構成する方法を説明します

Auth0は、エンベロープ暗号化キー階層の最上位にあるAuth0環境ルートキーを使用してテナントのシークレットとデータを保護します。 Auth0環境ルートキーと顧客提供ルートキーは、対応するAuth0クラウドサービスプロバイダー、AWS、またはAzureのハードウェアセキュリティモジュール（HSM）に保存されます。

## BYOK（Bring Your Own Key）

Bring Your Own Keyを使用すると、[キー管理エディターロール](/docs/ja-jp/get-started/manage-dashboard-access/add-dashboard-users)のあるユーザーは、[Auth0 Management API](https://auth0.com/docs/api/management/v2)を使ってデフォルトのAuth0環境ルートキーを独自の顧客提供ルートキーに置き換えることができます。顧客は独自の暗号化マテリアルを含む独自のルートキーを安全にアップロードして以下を行うことができます。

* 環境ルートキーのカスタムの鍵の生成および出所の要件を満たす
* 環境ルートキーの特定の鍵のインストールまたは寿命の要件を満たす
* 顧客提供ルートキーのコピーを顧客の施設内に保管する

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

顧客提供ルートキーは、以下の手順に従って、<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-jp/glossary?term=management-api" tip="Management API: 顧客が管理タスクを実行できるようにするための製品。" cta="用語集の表示">Management API</Tooltip>で作成および管理できます。

1. [新しい暗号化キーの作成](https://auth0.com/docs/api/management/v2/keys/post-encryption)エンドポイントを呼び出して、Bring Your Own Keyのプロセスを開始し、暗号化マテリアルなしで事前にアクティブ化された顧客提供ルートキーの`kid`（キー識別子）を取得します。

   <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
     このエンドポイントは、キーの一意の識別子であるkid値を返します。
   </Callout>

2. [パブリックラッピングキーの作成](https://auth0.com/docs/api/management/v2/keys/post-encryption-wrapping-key)エンドポイントを呼び出して、パブリックラッピングキーを作成して返します。

3. 自分の環境で独自の暗号化キーマテリアルを生成し、それをパブリックラッピングキーでラップ（暗号化）して、ラップ暗号化キー（顧客提供ルートキー）を作成します。

4. [暗号化キーのインポート](https://auth0.com/docs/api/management/v2/keys/post-encryption-key)エンドポイントを呼び出して、顧客提供ルートキーをAuth0にインポートします。

## 暗号化に必要な情報の要件

貴社のキー管理システムを使って暗号化に必要な独自の情報をパブリックラッピングキーでラッピングし、ラップされた暗号化キーを作成します。Auth0クラウドサービスプロバイダー（AWSまたはAzure）に応じて、[CKM\_RSA\_AES\_KEY\_WRAP](https://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226894)アルゴリズムパラメ―ターに以下の設定を使用します：

### AWSクラウド上のAuth0

* パブリックラッピングキーの長さ3072ビット
* アルゴリズム：CKG\_MGF1\_SHA256
* CKM\_AES\_KEY\_WRAP\_PADの一時的なAESキーの長さ：256ビット
* カスタマーが提供するルートキーのタイプ：256ビット長のAES対称キー

### AzureクラウドのAuth0

* パブリックラッピングキーの長さ2048ビット
* アルゴリズム：CKG\_MGF1\_SHA-1
* CKM\_AES\_KEY\_WRAP\_PADの一時的なAESキーの長さ：256ビット
* 顧客が提供するルートキーのタイプ：2048ビット長のRSA秘密鍵
* 秘密鍵のエンコーディング：PKCS #8 - ASN.1 DER

## 権限

以下の権限を使用して、暗号化キーエンドポイントへのアクセス権を提供します。

| 権限                       | 説明                                                                                                                                |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------- |
| `read:encryption_keys`   | ユーザーはAuth0テナント内で検索してキーを取得できます。これには、`/api/v2/keys/encryption`エンドポイント、`/api/v2/keys/encryption/{kid}`エンドポイントからの読み出しが含まれます。          |
| `create:encryption_keys` | ユーザーは`/api/v2/keys/encryption`エンドポイントと`/api/v2/keys/encryption/{kid}/wrapping-key`エンドポイントを通して、独自の顧客提供ルートキーと公開ラッピングキーを作成することができます。 |
| `delete:encryption_keys` | ユーザーは `/api/v2/keys/encryption/{kid}`エンドポイントを通して、独自の顧客提供ルートキーを削除することができます。                                                        |
| `update:encryption_keys` | ユーザーは `/api/v2/keys/encryption/{kid}`エンドポイントを通して、独自の顧客提供ルートキーをインポートすることができます。                                                     |

## エンドポイント

* [すべての暗号化キーの取得](https://auth0.com/docs/api/management/v2/keys/get-encryption-keys)エンドポイントを使用して、既存の現在の環境ルートキーまたは顧客提供ルートキー、およびテナントマスターキーに関する情報を取得します。
* [キーIDによる暗号化キーの取得](https://auth0.com/docs/api/management/v2/keys/get-encryption-key)エンドポイントを使用して、指定したキーに関する情報を取得します。
* [新しい暗号化キーの作成](https://auth0.com/docs/api/management/v2/keys/post-encryption)エンドポイントを使用して、事前にアクティブ化された顧客提供ルートキーのプレースホルダーを作成します。
* [パブリックラッピングキーの作成](https://auth0.com/docs/api/management/v2/keys/post-encryption-wrapping-key)エンドポイントを使用して、暗号化マテリアルをラップするためのパブリックラッピングキーを取得します。
* [暗号化キーのインポート](https://auth0.com/docs/api/management/v2/keys/post-encryption-key)エンドポイントを使用して、新しい顧客提供ルートキーのマテリアルをインポートします。
* [キーIDによる暗号化キーの削除](https://auth0.com/docs/api/management/v2/keys/delete-encryption-key)エンドポイントを使用して、既存の顧客提供ルートキーを削除し、Bring Your Own Keyの使用をオプトアウトします。Auth0環境ルートキーは、キー階層を再暗号化するために使用されます。この操作が既存のデータや認証フローに悪影響を及ぼすことはありません。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  テナントでカスタマーマネージドキー（CMK）機能が有効化されていない場合にAPIエンドポイントを呼び出すと、`This feature is not enabled for this tenant`（この機能はこのテナントに有効化されていません）というエラーが返されます。
</Callout>
