Azure での顧客管理の暗号化キーを使用した保存時の暗号化
顧客管理暗号鍵(CMEK)を使用すると、完全に管理可能な対称暗号鍵を利用して、 TiDB Cloud Dedicated クラスタ内の静的データを保護できます。この鍵はCMEK鍵と呼ばれます。
プロジェクトでCMEKを有効にすると、そのプロジェクト内で作成されるすべてのクラスタは、CMEK鍵を使用して静的データを暗号化します。さらに、これらのクラスタによって生成されるバックアップデータも同じ鍵を使用して暗号化されます。CMEKが有効になっていない場合、 TiDB Cloudはエスクロー鍵を使用して、クラスタ内のすべての保存データを暗号化します。
制限
- 現在、 TiDB Cloud はCMEK を提供するために AWS KMS と Azure Key Vault の使用のみをサポートしています。
- CMEK を使用するには、プロジェクトの作成時に CMEK を有効にし、クラスタを作成する前に CMEK 関連の設定を完了する必要があります。既存のプロジェクトでは CMEK を有効にできません。
- 現在、CMEK 対応プロジェクトでは、AWS と Azure でホストされるクラスターをTiDB Cloud専用つだけ作成できます。
- 現在、CMEK 対応プロジェクトでは、 デュアルリージョンバックアップサポートされていません。
- 現在、CMEK 対応プロジェクトでは、AWS と Azure で CMEK を有効化できます。クラウドプロバイダーごとに、リージョンごとに 1 つの固有の暗号化キーを設定できます。選択したクラウドプロバイダーの暗号化キーを設定したリージョンでのみ、クラスタを作成できます。
CMEKを有効にする
アカウントが所有する暗号化キーを使用してデータを暗号化する場合は、次の手順を実行します。
ステップ 1. CMEK 対応プロジェクトを作成する
組織でOrganization Owner
ロールを担っている場合は、次の手順を実行して CMEK 対応プロジェクトを作成できます。
- TiDB Cloudコンソールで、左上隅のコンボ ボックスを使用して対象の組織に切り替えます。
- 左側のナビゲーション ペインで、 [プロジェクト]をクリックします。
- 「プロジェクト」ページで、右上隅の「新しいプロジェクトの作成」をクリックします。
- プロジェクト名を入力してください。
- プロジェクトの CMEK 機能を有効にすることを選択します。
- 「確認」をクリックしてプロジェクトの作成を完了します。
ステップ2. プロジェクトのCMEK構成を完了する
Azure Portal または Azure Resource Manager のいずれかでTiDB Cloudコンソールを使用して、プロジェクトの CMEK 構成を完了できます。
注記:
- キーのポリシーが要件を満たしており、権限不足やアカウントの問題などのエラーがないことを確認してください。これらのエラーがあると、このキーを使用してクラスターが誤って作成される可能性があります。
- Azure マネージド ディスクのクロステナント カスタマー マネージド キー (CMK) 機能は現在プレビュー段階であり、一部の Azure リージョンでのみご利用いただけます。現在、サポート対象は可用性リージョンのみです。詳細については、 テナント間の顧客管理キーを使用してマネージド ディスクを暗号化するご覧ください。
TiDB Cloudコンソールと Azure ポータルを使用して CMEK を構成するには、次の手順を実行します。
TiDB Cloudコンソールで、左上隅のコンボ ボックスを使用してターゲット プロジェクトに切り替えます。
左側のナビゲーション ペインで、 [プロジェクト設定] > [暗号化アクセス]をクリックします。
[暗号化アクセス]ページで、 [暗号化キーの作成] をクリックします。
[キー管理サービス] で[Azure Key Vault]を選択し、暗号化キーが使用されるリージョンを選択します。
TiDB が提供するエンタープライズ アプリケーションのサービス プリンシパルがテナント内にまだ存在しない場合は、作成してください。TiDB TiDB CloudコンソールにMicrosoft Entra アプリケーション名とIDが表示されます。これらは、このプロセスと以降の手順で必要になります。サービス プリンシパルを作成するには、 「サービス プリンシパルの作成」セクションから次のコマンドを実行します。
az ad sp create --id {Microsoft_Entra_Application_ID}詳細についてはMicrosoft Entra ID のアプリケーションおよびサービス プリンシパル オブジェクト参照してください。
AzureアカウントでKey Vaultを作成するか、既存のKey Vaultを選択します。以下の点を確認してください。
- パージ保護が有効になっています。
- リージョンはクラスターのリージョンと一致します。
TiDB Cloudコンソールで、Key Vault 名とキー名を入力します。TiDB TiDB Cloud は、セキュリティ強化のため、キー名に一意のサフィックスを追加します。キー名全体をコピーし、Azure ポータルで暗号化キーを作成します。詳細については、 暗号化キーを作成する参照してください。
現在のユーザーにKey Vault Crypto Officerロールを割り当てます。
- Azureポータルで、Key Vault に移動します。
- [アクセス制御 (IAM)]をクリックし、 [追加] > [ロール割り当ての追加]をクリックします。
- Key Vault Crypto Officerロールを検索して選択し、 [次へ]をクリックします。
- [**メンバー]タブで、 [アクセスの割り当て先] を**[ユーザー、グループ、またはサービス プリンシパル]に設定します。
- 「+メンバーを選択」をクリックし、現在のユーザーを検索してメンバーとして選択します。次に、 「選択」をクリックします。
- 設定を確認し、 [確認 + 割り当て]をクリックします。
暗号化キー用の TiDB 提供エンタープライズ アプリケーションにKey Vault Crypto Service 暗号化ユーザーロールを割り当てます。
- Key Vault で、作成した暗号化キー オブジェクトに移動します。
- [追加] > [ロールの割り当ての追加] をクリックします。
- Key Vault Crypto Service 暗号化ユーザーロールを検索して選択し、 [次へ]をクリックします。
- [**メンバー]タブで、 [アクセスの割り当て先] を**[ユーザー、グループ、またはサービス プリンシパル]に設定します。
- 「+ メンバーを選択」をクリックし、TiDB が提供するエンタープライズアプリケーション名を入力して、メンバーとして選択します。次に、 「選択」をクリックします。
- 構成を確認し、 「確認 + 割り当て」をクリックします。
TiDB Cloudコンソールで、 「暗号化キーのテストと作成」をクリックして構成を検証し、暗号化キーを作成します。
TiDB Cloudコンソールと Azure Resource Manager を使用して CMEK を構成するには、次の手順を実行します。
TiDB Cloudコンソールでは、左上隅のコンボ ボックスを使用して、対象のプロジェクトに切り替えます。
左側のナビゲーション ペインで、 [プロジェクト設定] > [暗号化アクセス]に移動します。
[暗号化アクセス]ページで、 [暗号化キーの作成] をクリックします。
[キー管理サービス]で[Azure Key Vault]を選択し、暗号化キーが使用可能なリージョンを指定します。
TiDB が提供するエンタープライズ アプリケーションのサービス プリンシパルがテナント内にまだ存在しない場合は、作成してください。サービス プリンシパルを作成するには、 「サービス プリンシパルの作成」セクションから次のコマンドを実行します。
az ad sp create --id {Microsoft_Entra_Application_ID}詳細についてはMicrosoft Entra ID のアプリケーションおよびサービス プリンシパル オブジェクト参照してください。
AzureポータルでAzure Resource Manager 用の TiDB カスタム デプロイメント テンプレート開きます。サブスクリプションとリソースグループを選択し、 「インスタンスの詳細」セクションに次のように入力します。
- リージョン: Key Vault を作成する場所を選択します。これはクラスターのリージョンと一致する必要があります。
- Key Vault 名: Azure Key Vault の名前を入力します。
- キー名: Key Vaultに作成するキーの完全な名前を入力します。TiDB TiDB Cloudコンソールでキー名のプレフィックスを入力し、 「コピー」をクリックすると、キーの完全な名前が表示されます。
- エンタープライズアプリのサービスプリンシパルID : TiDBが提供するエンタープライズアプリケーションのサービスプリンシパルIDを入力します。サービスプリンシパルIDを取得するには、次のコマンドを実行します(
{microsoft_enterprise_app_id}
はTiDB Cloudコンソールに表示される実際のIDに置き換えてください)。
az ad sp show --id {microsoft_enterprise_app_id} --query id -o tsv
注記:
この機能は今後さらに強化される予定であり、今後の機能には追加の権限が必要になる可能性があります。そのため、このポリシー要件は変更される可能性があります。
ステップ3. クラスターを作成する
ステップ1で作成したプロジェクトの下に、Azure でホストされるTiDB Cloud Dedicated クラスターを作成します。詳細な手順については、 TiDB Cloud専用クラスタを作成するを参照してください。
クラウドプロバイダーとリージョンを選択すると、適切な暗号化キーが自動的に選択されます。プロバイダーとリージョンで利用可能な暗号化キーがない場合は、コンソールに暗号化キーの作成に役立つヒントが表示されます。
注記:
CMEK が有効になっている場合、 TiDB Cloud は、クラスター ノードで使用される Premium SSD v2 とクラスター バックアップ用のstorageBLOB の両方を CMEK で暗号化します。
CMEKを回転させる
Azure Key Vaultで暗号鍵の自動ローテーション設定できます。このローテーションを有効にすると、 TiDB Cloudのプロジェクト設定で暗号化アクセスを更新する必要はありません。
CMEK を無効にして再度有効にする
TiDB Cloud の CMEK へのアクセスを一時的に取り消す必要がある場合は、次の手順に従います。
- TiDB Cloudコンソールで、プロジェクト内の対応するクラスターを一時停止します。
- Azure Key Vault コンソールで、暗号化キーを右クリックし、 [無効]を選択します。
注記:
Azure Key Vault で CMEK を無効にすると、実行中のクラスターは CMEK にアクセスできなくなるため、数分以内に使用できなくなります。
TiDB Cloud の CMEK へのアクセスを無効にした後、アクセスを復元する必要がある場合は、次の手順に従います。
- Azure Key Vault コンソールで、暗号化キーを選択し、 [有効化]をクリックします。
- TiDB Cloudコンソールで、プロジェクト内の対応するクラスターを復元します。