enabling-cmek-encryption について
CockroachDB Cloudのクラスター管理者向けに、顧客管理暗号鍵(CMEK)の有効化と管理を案内するスキルです。AWS KMS、GCP Cloud KMS、Azure Key Vaultの前提条件、設定、検証と、鍵へのアクセスに関するリスクを扱います。
主な機能
- 01プランとセキュリティアドオンの適格性確認
- 02クラウドプロバイダーのKMS鍵設定
- 03クラスターでのCMEK有効化
- 04暗号化設定と読み書きの検証
- 05鍵のローテーションとアクセスリスクの確認
活用シーン
- 01保存データ暗号化のコンプライアンス要件への対応
- 02CMEK設定状態の確認
- 03組織の方針に沿った鍵のローテーション
- 04鍵アクセス喪失への対応
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ cockroachlabs/ cockroachdb-skills --skill enabling-cmek-encryptionインストール後、Claude Code で/enabling-cmek-encryptionを入力して読み込まれたか確認します。
同梱ファイルreferences/ccloud-commands.md
詳細
CMEK 暗号化の有効化
CockroachDB Cloud クラスターでカスタマーマネージド暗号化キー(CMEK)を有効にし、保存データの暗号化を組織独自のクラウドプロバイダーの KMS(AWS KMS、GCP Cloud KMS、または Azure Key Vault)のキーで制御できるようにします。CMEK により、組織はキーのライフサイクル、ローテーション、取り消しを完全に管理できます。
このスキルを使用するタイミング
- 規制またはコンプライアンス要件(SOC 2、HIPAA、PCI DSS)に対応するために CMEK を有効にする場合
- 初期設定後に CMEK が適切に構成されていることを確認する場合
- 組織のキーローテーションポリシーに従って CMEK キーをローテーションする場合
- 保存データの暗号化に関するセキュリティ監査の指摘に対応する場合
- CMEK の要件とプランの前提条件を確認する場合
前提条件
- CockroachDB Cloud Advanced プラン — CMEK は Basic または Standard プランでは利用できません
- Advanced Security アドオン — Advanced プランのクラスターで有効にする必要があります
- クラウドプロバイダーの KMS:
- AWS: クラスターと同じリージョンにある KMS キー、および適切な IAM ポリシー
- GCP: クラスターと同じリージョンにある Cloud KMS キーリングとキー、および適切な IAM バインディング
- Azure: クラスターと同じリージョンにある Key Vault とキー、および適切なアクセス ポリシー
- Cluster Admin ロールで認証済みの
ccloudCLI - クロスアカウントアクセス: CockroachDB Cloud サービスアカウントに KMS キーの使用権限が必要です
プランの適格性を確認します:
# Verify cluster plan type
ccloud cluster info <cluster-name> -o json
# Look for "plan": "ADVANCED" and Advanced Security Add-on status
構成の決定事項
先に進む前に、ユーザーが使用するクラウドプロバイダーの KMS を確認してください。環境に該当するオプションを尋ね、ステップ 2 では対応するサブセクションのみを実行してください。
決定 1 — クラウドプロバイダーの KMS:
- AWS KMS: CockroachDB Cloud クラスターが AWS 上で実行されている場合に使用します。クラスターと同じリージョンにある対称暗号化キーが必要です。
- GCP Cloud KMS: クラスターが GCP 上で実行されている場合に使用します。同じリージョンにあるキーリングとキーが必要です。
- Azure Key Vault: クラスターが Azure 上で実行されている場合に使用します。同じリージョンにある Key Vault とキーが必要です。
手順
1. プランとアドオンの適格性を確認する
ccloud cluster info <cluster-name> -o json
Standard プランの場合: CMEK は利用できません。アップグレード手順は次のとおりです。
- Advanced プランにアップグレードします(CockroachDB の営業担当者に問い合わせるか、Cloud Console でアップグレードします)
- Advanced Security アドオンを有効にします
Advanced プランで Advanced Security アドオンが有効でない場合: 続行する前に Cloud Console でアドオンを有効にします。
2. クラウドプロバイダーで KMS キーを作成する
上記の「構成の決定事項」で選択した、ユーザーのクラウドプロバイダーに該当するサブセクションのみを実行してください。
AWS KMS
# Create a symmetric encryption key in the same region as the cluster
aws kms create-key \
--description "CockroachDB CMEK - <cluster-name>" \
--key-usage ENCRYPT_DECRYPT \
--origin AWS_KMS \
--region <aws-region>
CockroachDB Cloud サービスアカウントにキーへのアクセス権を付与します:
{
"Effect": "Allow",
"Principal": {
"AWS": "<cockroachdb-cloud-service-account-arn>"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKey",
"kms:DescribeKey"
],
"Resource": "*"
}
GCP Cloud KMS
# Create a key ring
gcloud kms keyrings create cockroachdb-cmek \
--location <gcp-region>
# Create a symmetric encryption key
gcloud kms keys create cmek-key \
--keyring cockroachdb-cmek \
--location <gcp-region> \
--purpose encryption
CockroachDB Cloud サービスアカウントにアクセス権を付与します:
gcloud kms keys add-iam-policy-binding cmek-key \
--keyring cockroachdb-cmek \
--location <gcp-region> \
--member "serviceAccount:<cockroachdb-cloud-service-account>" \
--role "roles/cloudkms.cryptoKeyEncrypterDecrypter"
Azure Key Vault
# Create a key in the existing Key Vault
az keyvault key create \
--vault-name <vault-name> \
--name cockroachdb-cmek \
--kty RSA \
--size 2048
Key Vault のアクセス ポリシーを使用して、CockroachDB Cloud のマネージド ID にアクセス権を付与します。
3. クラスターで CMEK を構成する
# Enable CMEK with the KMS key URI
ccloud cluster update <cluster-id> \
--cmek-key-spec '<key-spec-json>'
キー仕様の形式はクラウドプロバイダーによって異なります。ご利用のプロバイダーに対応する正確な JSON 構造については、CockroachDB Cloud のドキュメントを参照してください。
詳細なコマンド構文については、ccloud commands reference を参照してください。
4. CMEK の構成を確認する
# Check CMEK status
ccloud cluster info <cluster-name> -o json
# Verify cmek_config shows enabled status and correct key URI
CMEK のステータスは SQL クラスター設定として公開されていません。マネージドクラスターでは、Cloud Console の Cluster → Settings → Encryption ページが正式な情報源です。
5. キーへのアクセス性をテストする
CMEK を有効にした後、クラスターが正常に動作していることを確認します:
-- Create and query a test table to verify read/write works
CREATE TABLE cmek_test (id INT PRIMARY KEY, data STRING);
INSERT INTO cmek_test VALUES (1, 'encryption test');
SELECT * FROM cmek_test;
DROP TABLE cmek_test;
安全に関する考慮事項
CMEK の設定を誤ると、データにアクセスできなくなる可能性があります。 KMS キーが削除または無効化された場合、あるいはアクセス権が取り消された場合、クラスターはデータの読み取りや書き込みができなくなります。
CMEK を有効にする前に:
- KMS キーで適切な削除保護が有効になっていることを確認します
- IAM/アクセス ポリシーの許可設定が正しいことを確認します
- KMS キーのリージョンがクラスターのリージョンと一致することを確認します
- キー URI とアクセス ポリシーを記録します
キー管理に関するリスク:
- キーの削除: KMS キーを削除すると、クラスター内のすべてのデータに永久にアクセスできなくなります
- アクセス権の取り消し: CockroachDB のキーへのアクセス権を取り消すと、クラスターは読み取りと書き込みの提供を停止します
- キーのローテーション: 組織のポリシーに従ってキーのローテーションを計画します。CockroachDB はローテーション後のキーによる自動再暗号化をサポートしています
ロールバック
クラスターで CMEK を有効にすると、無効にはできません。ただし、以下の対応が可能です。
- キーのローテーション: いつでも新しいキーにローテーションできます
- アクセス権の復旧: 誤ってアクセス権を取り消した場合は、IAM/アクセス ポリシーを復元して処理を再開します
- 新しいクラスター: CMEK の設定に根本的な問題がある場合は、新しいクラスターを作成してデータを移行します
緊急時 — キーにアクセスできない場合:
- 直ちに KMS キーへのアクセスを復旧します(IAM ポリシー、キーの再有効化)
- キーへのアクセスが復旧すると、クラスターは処理を再開します
- キーが完全に削除された場合、データを復旧することはできません
参考情報
関連スキル:
- クラウドクラスターのセキュリティ監査 — セキュリティ態勢の包括的な監査を実行します
CockroachDB 公式ドキュメント:
クラウドプロバイダーの KMS ドキュメント: