顧客管理の暗号化キーを使用した保存時の暗号化
顧客管理の暗号化キー (CMEK) を使用すると、完全に制御できる対称暗号化キーを使用して、 TiDB Cloud Dedicated クラスター内の静的データを保護できます。このキーは CMEK キーと呼ばれます。
プロジェクトで CMEK を有効にすると、そのプロジェクト内で作成されたすべてのクラスターは、CMEK キーを使用して静的データを暗号化します。さらに、これらのクラスターによって生成されたバックアップ データも同じキーを使用して暗号化されます。CMEK が有効になっていない場合、 TiDB Cloud はエスクロー キーを使用して、保存されているクラスター内のすべてのデータを暗号化します。
注記:
現在、この機能はリクエストに応じてのみ利用可能です。この機能を試す必要がある場合は、 サポートにお問い合わせください。
制限
- 現在、 TiDB Cloud はCMEK を提供するために AWS KMS の使用のみをサポートしています。
- CMEK を使用するには、プロジェクトの作成時に CMEK を有効にし、クラスタを作成する前に CMEK 関連の構成を完了する必要があります。既存のプロジェクトに対して CMEK を有効にすることはできません。
- 現在、CMEK 対応プロジェクトでは、AWS でホストされるTiDB Cloud専用クラスタのみを作成できます。Google Cloud でホストされるTiDB Cloud Dedicated クラスタとTiDB Cloudサーバーレスクラスタはサポートされていません。
- 現在、特定のプロジェクトでは、1 つの AWS リージョンに対してのみ CMEK を有効にできます。一度設定すると、同じプロジェクト内の他のリージョンにクラスターを作成することはできません。
CMEKを有効にする
アカウントが所有する KMS を使用してデータを暗号化する場合は、次の手順を実行します。
ステップ 1. CMEK 対応プロジェクトを作成する
組織でOrganization Owner
のロールを担っている場合は、 TiDB Cloudコンソールまたは API を使用して CMEK 対応プロジェクトを作成できます。
- Use Console
- Use API
CMEK 対応プロジェクトを作成するには、次の手順を実行します。
- クリック
TiDB Cloudコンソールの左下隅にあります。 - [組織設定] をクリックし、左側のナビゲーション ペインで[プロジェクト]タブをクリックします。 [プロジェクト]タブが表示されます。
- 「新しいプロジェクトの作成」をクリックして、プロジェクト作成ダイアログを開きます。
- プロジェクト名を入力してください。
- プロジェクトの CMEK 機能を有効にすることを選択します。
- 「確認」をクリックしてプロジェクトの作成を完了します。
この手順は、 CMEK対応プロジェクトを作成するエンドポイントを介してTiDB Cloud API を使用して完了できます。 aws_cmek_enabled
フィールドがtrue
に設定されていることを確認してください。
現在、 TiDB Cloud API はまだベータ版です。詳細については、 TiDB CloudAPI ドキュメント参照してください。
ステップ2. プロジェクトのCMEK構成を完了する
TiDB Cloudコンソールまたは API を使用して、プロジェクトの CMEK 構成を完了できます。
注記:
キーのポリシーが要件を満たしており、権限不足やアカウントの問題などのエラーがないことを確認してください。これらのエラーにより、このキーを使用してクラスターが誤って作成される可能性があります。
- Use Console
- Use API
プロジェクトの CMEK 構成を完了するには、次の手順を実行します。
- クリック
左下隅で、複数のプロジェクトがある場合は対象プロジェクトに切り替えて、 [プロジェクト設定]をクリックします。 - 「暗号化アクセス」をクリックして、プロジェクトの暗号化管理ページに入ります。
- 「暗号化キーの作成」をクリックして、キー作成ページに入ります。
- キープロバイダーは AWS KMS のみをサポートします。暗号化キーを使用できるリージョンを選択できます。
- JSON ファイルをコピーして
ROLE-TRUST-POLICY.JSON
として保存します。このファイルは信頼関係を記述します。 - この信頼関係を AWS KMS のキーポリシーに追加します。詳細については、 AWS KMS のキーポリシーを参照してください。
- TiDB Cloudコンソールで、キー作成ページの一番下までスクロールし、AWS KMS から取得したKMS キー ARNを入力します。
- キーを作成するには、 [作成]をクリックします。
AWS KMS でキーポリシーを設定し、キーポリシーに次の情報を追加します。
{ "Version": "2012-10-17", "Id": "cmek-policy", "Statement": [ // EBS-related policy { "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "<pingcap-account>", "kms:ViaService": "ec2.<region>.amazonaws.com" } } }, // S3-related policy { "Sid": "Allow TiDB cloud role to use KMS to store encrypted backup to S3", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<pingcap-account>:root" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }, ... // user's own admin access to KMS ] }<pingcap-account>
クラスターが実行されるアカウントです。アカウントがわからない場合は、 TiDB Cloudサポートお問い合わせください。<region>
はクラスターを作成するリージョンです (例:us-west-2
)。リージョンを指定しない場合は、<region>
ワイルドカード*
に置き換えて、StringLike
ブロックに配置します。- 前のブロックのEBS関連のポリシーについては、 AWS ドキュメントを参照してください。
- 前のブロックの S3 関連のポリシーについては、 AWS ブログを参照してください。
TiDB Cloud API のAWS CMEK を構成するのエンドポイントを呼び出します。
現在、 TiDB Cloud API はまだベータ版です。詳細については、 TiDB CloudAPI ドキュメント参照してください。
注記:
この機能は今後さらに強化され、今後の機能には追加の権限が必要になる可能性があります。そのため、このポリシー要件は変更される可能性があります。
ステップ3. クラスターを作成する
ステップ1で作成したプロジェクトの下に、AWS でホストされるTiDB Cloud Dedicated クラスターを作成します。詳細な手順については、 この文書を参照してください。クラスターが配置されているリージョンがステップ2と同じであることを確認します。
注記:
CMEK を有効にすると、クラスターのノードで使用される EBS ボリュームとクラスターのバックアップに使用される S3 が CMEK を使用して暗号化されます。
CMEKを回転させる
AWS KMS で自動CMEKローテーション設定できます。このローテーションを有効にすると、CMEK ID を含むTiDB Cloudのプロジェクト設定で暗号化アクセスを更新する必要はありません。
CMEK の取り消しと復元
TiDB Cloud の CMEK へのアクセスを一時的に取り消す必要がある場合は、次の手順に従います。
- AWS KMS コンソールで、対応する権限を取り消し、KMS キーポリシーを更新します。
- TiDB Cloudコンソールで、プロジェクト内のすべてのクラスターを一時停止します。
注記:
AWS KMS で CMEK を取り消しても、実行中のクラスターは影響を受けません。ただし、クラスターを一時停止してから復元すると、クラスターは CMEK にアクセスできないため、正常に復元できなくなります。
TiDB Cloud の CMEK へのアクセスを取り消した後、アクセスを復元する必要がある場合は、次の手順に従います。
- AWS KMS コンソールで、CMEK アクセスポリシーを復元します。
- TiDB Cloudコンソールで、プロジェクト内のすべてのクラスターを復元します。