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 Dedicatedクラスターのみ作成できます。
- 現在、CMEK 対応プロジェクトでは、 デュアルリージョンバックアップはサポートされていません。
- 現在、CMEK 対応プロジェクトでは、AWS と Azure で CMEK を有効化できます。クラウドプロバイダーごとに、リージョンごとに 1つの固有の暗号化キーを設定できます。選択したクラウドプロバイダーの暗号化キーを設定したリージョンでのみ、クラスタを作成できます。
CMEKを有効にする
アカウントが所有する暗号化キーを使用してデータを暗号化する場合は、次の手順を実行します。
ステップ 1. CMEK 対応プロジェクトを作成する
組織でOrganization Ownerロールを担っている場合は、次の手順を実行して CMEK 対応プロジェクトを作成できます。
- TiDB Cloudコンソールで、組織のMy TiDBページに移動し、Create Projectをクリックします。
- 表示されたダイアログで、プロジェクト名を入力します。
- Create for Dedicated Clusterオプションを選択します。
- プロジェクトの CMEK 機能を有効にすることを選択します。
- Confirmをクリックしてプロジェクトの作成を完了します。
ステップ2. プロジェクトのCMEK構成を完了する
Azure Portal または Azure Resource Manager のいずれかでTiDB Cloudコンソールを使用して、プロジェクトの CMEK 構成を完了できます。
TiDB Cloudコンソールと Azure ポータルを使用して CMEK を構成するには、次の手順を実行します。
TiDB Cloudコンソールで、組織のMy TiDBページに移動し、Project view タブをクリックします。
プロジェクトビューで対象のプロジェクトを見つけ、そのプロジェクトの をクリックします。
左側のナビゲーションペインで、Project Settings の下にある Encryption Access をクリックします。
Encryption Accessページで、Create Encryption Keyをクリックします。
Key Management ServiceでAzure Key Vaultを選択し、暗号化キーが使用されるリージョンを選択します。
TiDB が提供するエンタープライズ アプリケーションのサービス プリンシパルがテナント内にまだ存在しない場合は、作成してください。TiDB CloudコンソールにMicrosoft Entra Application NameとIDが表示されます。これらは、このプロセスと以降の手順で必要になります。サービス プリンシパルを作成するには、 Create Service Principalセクションから次のコマンドを実行します。
az ad sp create --id {Microsoft_Entra_Application_ID}詳細についてはMicrosoft Entra ID のアプリケーションおよびサービス プリンシパル オブジェクトを参照してください。
Azureアカウントで Key Vault を作成するか、既存の Key Vault を選択します。以下の点を確認してください。
- Purge protectionが有効になっています。
- regionがクラスターのリージョンと一致します。
TiDB Cloudコンソールで、Key Vault 名とキー名を入力します。TiDB Cloud は、セキュリティ強化のため、キー名に一意のサフィックスを追加します。キー名全体をコピーし、Azure ポータルで暗号化キーを作成します。詳細については、 暗号化キーを作成するを参照してください。
現在のユーザーにKey Vault Crypto Officerロールを割り当てます。
- Azureポータルで、Key Vault に移動します。
- Access control (IAM)をクリックし、 Add > Add role assignmentをクリックします。
- Key Vault Crypto Officerロールを検索して選択し、 Nextをクリックします。
- Membersタブで、 Assign access toをUser, group, or service principalに設定します。
- + Select membersをクリックし、現在のユーザーを検索してメンバーとして選択します。次に、 Selectをクリックします。
- 設定を確認し、 Review + assignをクリックします。
暗号化キー用の TiDB 提供エンタープライズ アプリケーションにKey Vault Crypto Service Encryption Userロールを割り当てます。
- Key Vault で、作成した暗号化キー オブジェクトに移動します。
- Add > Add role assignmentをクリックします。
- Key Vault Crypto Service Encryption Userロールを検索して選択し、 Nextをクリックします。
- Membersタブで、 Assign access toをUser, group, or service principalに設定します。
- + Select membersをクリックし、TiDB が提供するEnterprise Application Nameを入力して、メンバーとして選択します。次に、 Selectをクリックします。
- 構成を確認し、 Review + assignをクリックします。
TiDB Cloudコンソールで、 Test Encryption Key and Createをクリックして構成を検証し、暗号化キーを作成します。
TiDB Cloudコンソールと Azure Resource Manager を使用して CMEK を構成するには、次の手順を実行します。
TiDB Cloudコンソールで、組織のMy TiDBページに移動し、Project view タブをクリックします。
プロジェクトビューで対象のプロジェクトを見つけ、そのプロジェクトの をクリックします。
左側のナビゲーションペインで、Project Settings の下にある Encryption Access に移動します。
Encryption Accessページで、Create Encryption Keyをクリックします。
Key Management ServiceでAzure Key Vaultを選択し、暗号化キーが使用可能なリージョンを指定します。
TiDB が提供するエンタープライズ アプリケーションのサービス プリンシパルがテナント内にまだ存在しない場合は、作成してください。サービス プリンシパルを作成するには、 Create Service Principalセクションから次のコマンドを実行します。
az ad sp create --id {Microsoft_Entra_Application_ID}詳細についてはMicrosoft Entra ID のアプリケーションおよびサービス プリンシパル オブジェクトを参照してください。
AzureポータルでAzure Resource Manager 用の TiDB カスタム デプロイメント テンプレートを開きます。SubscriptionとResource Groupを選択し、 Instance Detailsセクションに次のように入力します。
- Region: Key Vault を作成する場所を選択します。これはクラスターのリージョンと一致する必要があります。
- Key Vault Name: Azure Key Vault の名前を入力します。
- Key Name: Key Vaultに作成するキーの完全な名前を入力します。TiDB Cloudコンソールでキー名のプレフィックスを入力し、 Copyをクリックすると、キーの完全な名前が表示されます。
- Enterprise App Service Principal ID: TiDBが提供するエンタープライズアプリケーションのサービスプリンシパルIDを入力します。Service Principal 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 Dedicatedクラスタを作成するを参照してください。
クラウドプロバイダーとリージョンを選択すると、適切な暗号化キーが自動的に選択されます。プロバイダーとリージョンで利用可能な暗号化キーがない場合は、コンソールに暗号化キーの作成に役立つヒントが表示されます。
CMEKを回転させる
Azure Key Vaultで暗号鍵の自動ローテーションを設定できます。このローテーションを有効にすると、 TiDB Cloudのプロジェクト設定でEncryption Accessを更新する必要はありません。
CMEK を無効にして再度有効にする
TiDB Cloud の CMEK へのアクセスを一時的に取り消す必要がある場合は、次の手順に従います。
- TiDB Cloudコンソールで、プロジェクト内の対応するクラスターを一時停止します。
- Azure Key Vault コンソールで、暗号化キーを右クリックし、 Disableを選択します。
TiDB Cloud の CMEK へのアクセスを無効にした後、アクセスを復元する必要がある場合は、次の手順に従います。
- Azure Key Vault コンソールで、暗号化キーを選択し、 Enableをクリックします。
- TiDB Cloudコンソールで、プロジェクト内の対応するクラスターを復元します。