mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-15 02:41:59 +00:00
133 lines
10 KiB
Markdown
133 lines
10 KiB
Markdown
|
---
|
|||
|
sidebar_label: ユーザー管理の暗号化キー
|
|||
|
slug: /ja/cloud/security/cmek
|
|||
|
title: ユーザー管理の暗号化キー (CMEK)
|
|||
|
---
|
|||
|
|
|||
|
# ユーザー管理の暗号化キー (CMEK)
|
|||
|
|
|||
|
ClickHouse Cloudは、ユーザー自身のキー管理サービス (KMS) キーを活用してサービスを保護することを可能にします。私たちは、ClickHouseの組み込み機能である[データ暗号化用の仮想ファイルシステム機能](/docs/ja/operations/storing-data#encrypted-virtual-file-system)を利用し、あなたのデータを暗号化・保護します。ClickHouse Cloudサービスで使用されるデータ暗号化キーは、[エンベロープ暗号化](https://docs.aws.amazon.com/wellarchitected/latest/financial-services-industry-lens/use-envelope-encryption-with-customer-master-keys.html)として知られるプロセスを通じて、ユーザーが提供したKMSキーを使用して暗号化・保護されます。この機能を動作させるために必要なのは、ランタイムでデータ暗号化キーを復号・暗号化するためのKMSキーへのアクセスです。
|
|||
|
|
|||
|
この機能は ClickHouse Cloud のプロダクションサービスに限定されており、この機能を有効にするには[support](/docs/ja/cloud/support)にご連絡ください。ユーザー管理の暗号化キーは、サービス作成時に指定する必要があり、既存のサービスではこのオプションを使用できません。[バックアップと復元](#backup-and-restore)を確認して代替オプションをご覧ください。
|
|||
|
|
|||
|
現在サポートされている KMS プロバイダー:
|
|||
|
|
|||
|
- AWSにホストされているサービス向けの[AWS Key Management Service](https://aws.amazon.com/kms)
|
|||
|
|
|||
|
近日提供予定:
|
|||
|
|
|||
|
- Azureにホストされているサービス向けの[Azure Key Vault](https://azure.microsoft.com/en-us/products/key-vault)
|
|||
|
- GCPにホストされているサービス向けの[GCP Cloud Key Management](https://cloud.google.com/security-key-management)
|
|||
|
- AWS、Azure、GCPにホストされているサービス向けの[Hashicorp Vault](https://www.hashicorp.com/products/vault)
|
|||
|
|
|||
|
:::warning
|
|||
|
ClickHouse Cloud サービスの暗号化に使用されたKMSキーを削除すると、ClickHouseサービスは停止され、データおよび既存のバックアップは取得不可能になります。
|
|||
|
:::
|
|||
|
|
|||
|
## 手順1. KMSキーの作成
|
|||
|
|
|||
|
### AWS KMSを使用
|
|||
|
|
|||
|
AWSコンソール、CloudFormation スタック、またはTerraform プロバイダを使用してAWS KMSキーを作成できます。以下にそれぞれの手順を説明します。
|
|||
|
|
|||
|
#### オプション1. AWSコンソールを使用してKMSキーを手動で作成
|
|||
|
|
|||
|
*注意: 既に使用したいKMSキーがある場合は、次のステップに進んでください。*
|
|||
|
|
|||
|
1. AWSアカウントにログインし、Key Management Service に移動します。
|
|||
|
2. 左側のメニューから__ユーザー管理キー__を選択します。
|
|||
|
3. 右上の__キーを作成__をクリックします。
|
|||
|
4. __キータイプ__「対称キー」と__キー使用__「暗号化および復号化」を選択し、次へをクリックします。
|
|||
|
5. キーのエイリアス(表示名)を入力し、次へをクリックします。
|
|||
|
6. キー管理者を選択し、次へをクリックします。
|
|||
|
7. (オプション)キーのユーザーを選択し、次へをクリックします。
|
|||
|
8. __キー ポリシー__の下に、以下のコードスニペットを追加します:
|
|||
|
|
|||
|
```json
|
|||
|
{
|
|||
|
"Sid": "Allow ClickHouse Access",
|
|||
|
"Effect": "Allow",
|
|||
|
"Principal": {
|
|||
|
"AWS": "arn:aws:iam::576599896960:role/prod-kms-request-role"
|
|||
|
},
|
|||
|
"Action": ["kms:GetPublicKey",
|
|||
|
"kms:Decrypt",
|
|||
|
"kms:GenerateDataKeyPair",
|
|||
|
"kms:Encrypt",
|
|||
|
"kms:GetKeyRotationStatus",
|
|||
|
"kms:GenerateDataKey",
|
|||
|
"kms:DescribeKey"],
|
|||
|
"Resource": "*"
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
![暗号化キー ポリシー](@site/docs/ja/_snippets/images/cmek1.png)
|
|||
|
|
|||
|
9. 完了をクリックします。
|
|||
|
10. 作成したキーのエイリアスをクリックします。
|
|||
|
11. コピー ボタンを使用してARNをコピーします。
|
|||
|
|
|||
|
#### オプション2. CloudFormationスタックを使用してKMSキーを設定または作成
|
|||
|
|
|||
|
ClickHouseは、キーのためのAWSポリシーをデプロイするための簡単なCloudFormationスタックを提供します。この方法は、既存のKMSキーおよびClickHouse Cloud統合のための新しいKMSキーの作成の両方をサポートします。
|
|||
|
|
|||
|
##### 既存のKMSキーを使用
|
|||
|
|
|||
|
1. AWS アカウントにログインします。
|
|||
|
2. [このリンク](https://us-west-2.console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks/quickcreate?templateURL=https://s3.us-east-2.amazonaws.com/clickhouse-public-resources.clickhouse.cloud/cf-templates/cmek.yaml&stackName=ClickHouseBYOK¶m_KMSCreate=false¶m_ClickHouseRole=arn:aws:iam::576599896960:role/prod-kms-request-role)を訪問してCloudFormation テンプレートを準備します。
|
|||
|
3. 使用したいKMSキーのARNを入力します(カンマで区切り、スペースを空けないこと)。
|
|||
|
4. 「AWS CloudFormationがカスタム名でIAMリソースを作成する可能性があることを認識しています。」に同意し、__スタックを作成__をクリックします。
|
|||
|
5. 次のステップで必要なスタック出力の`RoleArn`と`KeyArn`を書き留めます。
|
|||
|
|
|||
|
##### 新しいKMSキーを作成
|
|||
|
|
|||
|
1. AWS アカウントにログインします。
|
|||
|
2. [このリンク](https://us-west-2.console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks/quickcreate?templateURL=https://s3.us-east-2.amazonaws.com/clickhouse-public-resources.clickhouse.cloud/cf-templates/cmek.yaml&stackName=ClickHouseBYOK¶m_KMSCreate=true¶m_ClickHouseRole=arn:aws:iam::576599896960:role/prod-kms-request-role)を訪問してCloudFormation テンプレートを準備します。
|
|||
|
3. 「AWS CloudFormationがカスタム名でIAMリソースを作成する可能性があることを認識しています。」に同意し、__スタックを作成__をクリックします。
|
|||
|
4. 次のステップで必要なスタック出力の`KeyArn`を書き留めます。
|
|||
|
|
|||
|
#### オプション3. Terraformを通じてKMSキーを作成
|
|||
|
|
|||
|
キーをTerraformを使用してデプロイしたいユーザー向けに、AWSプロバイダのドキュメントは[こちら](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/kms_key)をご覧ください。
|
|||
|
|
|||
|
## 手順2. ユーザー管理の暗号化キーを使用してClickHouseサービスを開始
|
|||
|
|
|||
|
1. ClickHouse Cloudアカウントにログインします。
|
|||
|
2. サービス画面に移動します。
|
|||
|
3. __新しいサービス__ をクリックします。
|
|||
|
4. クラウドプロバイダー、リージョンを選択し、サービスに名前を付けます。
|
|||
|
5. __暗号化キーの設定 (CMEK)__をクリックします。例はAWS KMSプロバイダーを使用して示されています。
|
|||
|
6. ウィンドウの右側のフィールドにAWS ARNを貼り付けます。
|
|||
|
|
|||
|
![暗号化設定](@site/docs/ja/_snippets/images/cmek2.png)
|
|||
|
|
|||
|
7. システムは暗号化キーがアクセス可能であることを確認します。
|
|||
|
8. AWS ARNボックスの上に__有効__メッセージが表示されたら__サービスを作成__をクリックします。
|
|||
|
9. サービス画面のサービスタイルの右上隅にキーアイコンが表示され、暗号化されていることを知らせます。
|
|||
|
|
|||
|
![サービス暗号化済み](@site/docs/ja/_snippets/images/cmek3.png)
|
|||
|
|
|||
|
## バックアップと復元
|
|||
|
|
|||
|
バックアップは、関連するサービスと同じキーを使用して暗号化されます。暗号化されたバックアップを復元することで、元のインスタンスと同じKMSキーを使用する暗号化済みインスタンスが作成されます。KMSキーを回転させることも可能です。詳細については[キーの回転](#key-rotation)を参照してください。
|
|||
|
|
|||
|
暗号化済みインスタンスは、非暗号化バックアップを復元し、新しいサービスのために希望するKMSキーを指定することで作成できますので、[support](/docs/ja/cloud/support)にご連絡ください。
|
|||
|
|
|||
|
## KMS キーポーラー
|
|||
|
|
|||
|
エンベロープ暗号化を使用する場合、提供されたKMSキーが依然として有効であることを定期的に確認する必要があります。KMSキーのアクセスを10分ごとに確認します。アクセスが無効になった時点でClickHouseサービスを停止します。サービスを再開するには、このガイドの手順に従ってアクセスを復活させ、それからサービスを開始してください。
|
|||
|
|
|||
|
この機能の性質上、KMSキーが削除された後にClickHouse Cloudサービスを復旧することはできません。これを防ぐために、ほとんどのプロバイダーはキーをすぐに削除せず、削除をスケジュールします。プロバイダーのドキュメントを確認するか、このプロセスについて[support](/docs/ja/cloud/support)にお問い合わせください。
|
|||
|
|
|||
|
## キーの回転
|
|||
|
|
|||
|
キー回転は同じKMSプロバイダー内でサポートされています。これは新しいKMSキーを使用してデータ暗号化キーを再暗号化し、このリクエストはClickHouseサービスのダウンタイムなしで即時に処理されます。この操作を実行するには、設定されたKMSキーと新しいKMSキーの両方にアクセスできることを確認し、KMSキー情報を添えて[support](/docs/ja/cloud/support)にご連絡ください。
|
|||
|
|
|||
|
## パフォーマンス
|
|||
|
|
|||
|
本ページで指定されているように、私たちはClickHouseの組み込み機能である[データ暗号化用の仮想ファイルシステム機能](/docs/ja/operations/storing-data#encrypted-virtual-file-system)を利用し、データを暗号化・保護しています。
|
|||
|
|
|||
|
この機能で使用されるアルゴリズムは`AES_256_CTR`であり、ワークロードに応じて5-15%のパフォーマンス低下が予想されます:
|
|||
|
|
|||
|
![CMEKパフォーマンス低下](@site/docs/ja/_snippets/images/cmek-performance.png)
|