データの暗号化
ストレージレベルの暗号化
ClickHouse Cloud では、クラウドプロバイダー管理の AES 256 キーを利用した保存データの暗号化 (encryption at rest) がデフォルトで構成されています。詳細については、次を参照してください。
データベースレベルの暗号化
Enhanced Encryption is available in the Enterprise plan. To upgrade, visit the plans page in the cloud console.
保存データはデフォルトで、クラウドプロバイダーが管理する AES 256 キーを用いて暗号化されます。利用者は Transparent Data Encryption (TDE) を有効にしてサービスデータへの追加の保護層を提供することも、自身のキーを提供してサービスに対して Customer Managed Encryption Keys (CMEK) を実装することもできます。
Enhanced Encryption は現在、AWS および GCP のサービスで利用可能です。Azure は近日対応予定です。
Transparent Data Encryption (TDE)
TDE はサービス作成時に有効にする必要があります。既存のサービスを作成後に暗号化することはできません。TDE を一度有効にすると、無効化することはできません。サービス内のすべてのデータは暗号化されたままになります。TDE を有効にした後で無効化したい場合は、新しいサービスを作成し、そこへデータを移行する必要があります。
Create new serviceを選択します- サービスに名前を付けます
- クラウドプロバイダーとして AWS または GCP を選択し、ドロップダウンから希望するリージョンを選択します
- Enterprise 機能のドロップダウンをクリックし、Enable Transparent Data Encryption (TDE) をオンにします
Create serviceをクリックします
Customer Managed Encryption Keys (CMEK)
ClickHouse Cloud サービスの暗号化に使用されている KMS キーを削除すると、その ClickHouse サービスは停止され、既存のバックアップを含め、そのデータは復元不能になります。キーをローテーションする際の誤削除によるデータ損失を防ぐため、削除前に一定期間、古い KMS キーを保持しておくことを推奨します。
サービスが TDE で暗号化されると、利用者はキーを更新して CMEK を有効にできます。TDE 設定を更新すると、サービスは自動的に再起動します。この処理の間、旧 KMS キーがデータ暗号化キー (DEK) を復号し、新しい KMS キーが DEK を再暗号化します。これにより、再起動後のサービスは今後の暗号化処理に新しい KMS キーを使用することが保証されます。この処理には数分かかる場合があります。
AWS KMS で CMEK を有効化する
-
ClickHouse Cloud で暗号化されたサービスを選択します
-
画面左の Settings をクリックします
-
画面下部の Network security information を展開します
-
Encryption role ID (AWS) または Encryption Service Account (GCP) をコピーします — これは後の手順で必要になります
-
キーをクリックします
-
AWS キーポリシーを次のように更新します:
-
キーポリシーを保存します
-
Key ARN をコピーします
-
ClickHouse Cloud に戻り、Service Settings の Transparent Data Encryption セクションに Key ARN を貼り付けます
-
変更を保存します
GCP KMS で CMEK を有効化する
- ClickHouse Cloud で暗号化されたサービスを選択します
- 画面左の Settings をクリックします
- 画面下部の Network security information を展開します
- Encryption Service Account (GCP) をコピーします — これは後の手順で必要になります
- GCP 用の KMS キーを作成します
- キーをクリックします
- 上記手順 4 でコピーした GCP Encryption Service Account に次の権限を付与します。
- Cloud KMS CryptoKey Encrypter/Decrypter
- Cloud KMS Viewer
- キーの権限を保存します
- Key Resource Path をコピーします
- ClickHouse Cloud に戻り、Service Settings の Transparent Data Encryption セクションに Key Resource Path を貼り付けます
- 変更を保存します
Azure KMS で CMEK を有効化する
- ClickHouse Cloud で、暗号化されたサービスを選択します
- 左側の
Settingsをクリックします - 画面下部で
Network security informationを展開します Cross Tenant App Client IDをコピーします。これは次の手順で必要です- Azure サブスクリプションにサインインし、Azure CLI を使用して以下のコマンドで新しいサービス プリンシパルを作成します。
{azure_cross_tenant_app_client_id}は前の手順でコピーした値に置き換えてくださいaz ad sp create --id {azure_cross_tenant_app_client_id} - 作成した新しいサービス プリンシパルの
Nameをコピーします。これは後の手順で必要です - Azure Key Vault を作成します
- Azure で Key Vault キーを作成します
- Key Vault キーで、左側の
Access control (IAM)を選択します - 上部メニューから
Role assignmentsを選択します - 上部メニューで
Addをクリックし、次にAdd role assignmentをクリックします Key Vault Crypto Userロールを選択し、NextをクリックしますAdd role assignment画面では既定の選択のままにして、+Select membersをクリックします- 手順 6 でコピーしたサービス プリンシパル名 (CH-TDE で始まります) を貼り付け、該当するサービス プリンシパルを選択して
Selectをクリックします Nextをクリックし、続けてReview + assignをクリックします- Azure Key Vault に戻り、次の値をコピーします:
- Overview ページから Vault URI をコピーします
- Overview ページから Directory ID をコピーします
- Keys ページからキーの
Nameをコピーします
- ClickHouse Cloud のサービス設定に戻り、手順 16 の値を次のフィールドに貼り付けます:
- Key ID > キーの
Nameを貼り付けます - Key Vault URI > Vault URI を貼り付けます
- Key Tenant ID > Directory ID を貼り付けます
- Key ID > キーの
Rotate KMSをクリックします。ローリング再起動が実行されるため数分待ち、サービスが稼働していることを確認します
キーのローテーション
CMEK をセットアップしたら、新しい KMS キーを作成して権限を付与するために、上記の手順に従ってキーをローテーションします。サービス設定に戻り、新しい ARN (AWS)、Key Resource Path (GCP) または Key Name (Azure) を貼り付けて設定を保存します。サービスは新しいキーを適用するために再起動されます。
KMS キー ポーラー
CMEK を使用している場合、指定された KMS キーが有効かどうかは 10 分ごとに検証されます。KMS キーへのアクセスができなくなった場合、ClickHouse サービスは停止します。サービスを再開するには、このガイドの手順に従って KMS キーへのアクセスを復旧し、その後サービスを再起動してください。
バックアップと復元
バックアップは、関連付けられたサービスと同じキーを使用して暗号化されます。暗号化されたバックアップを復元すると、元のインスタンスと同じ KMS キーを使用する暗号化されたインスタンスが作成されます。必要に応じて、復元後に KMS キーをローテーションすることもできます。詳細は Key Rotation を参照してください。
パフォーマンス
データベース暗号化は、ClickHouse に組み込まれている データ暗号化用仮想ファイルシステム機能 を利用して、データを暗号化し、保護します。この機能で使用されるアルゴリズムは AES_256_CTR であり、ワークロードに応じて 5~15% 程度のパフォーマンス低下(オーバーヘッド)が発生することが想定されています。
