Шифрование на уровне хранилища
В ClickHouse Cloud по умолчанию включено шифрование при хранении с использованием ключей AES-256 под управлением облачного провайдера. Подробнее см.:
- Шифрование на стороне сервера AWS для S3
- Шифрование при хранении по умолчанию в GCP
- Шифрование хранилища Azure для данных при хранении
Шифрование на уровне базы данных
Enhanced Encryption доступна в тарифе Enterprise. Чтобы перейти на другой тариф, откройте страницу тарифных планов в облачной консоли.
Данные в состоянии покоя по умолчанию шифруются с помощью ключей AES-256, управляемых облачным провайдером. Клиенты могут включить прозрачное шифрование данных (TDE), чтобы обеспечить дополнительный уровень защиты данных сервиса, или предоставить собственный ключ для использования Customer Managed Encryption Keys (CMEK) в своем сервисе.
Усиленное шифрование в настоящее время доступно для сервисов в AWS и GCP. Поддержка Azure появится в ближайшее время.
Прозрачное шифрование данных (TDE)
TDE необходимо включить при создании сервиса. Для существующих сервисов включить шифрование после создания нельзя. После включения TDE его уже нельзя отключить. Все данные в сервисе останутся зашифрованными. Если вы захотите отключить TDE после его включения, потребуется создать новый сервис и перенести данные в него.
- Выберите
Create new service - Укажите имя сервиса
- Выберите AWS или GCP в качестве облачного провайдера и нужный регион в раскрывающемся списке
- Откройте раскрывающийся список Enterprise features и включите Enable Transparent Data Encryption (TDE)
- Нажмите Create service
Ключи шифрования, управляемые клиентом (CMEK)
После шифрования сервиса с помощью TDE клиенты могут обновить ключ, чтобы включить CMEK. После обновления настройки TDE сервис автоматически перезапустится. В ходе этого процесса старый ключ KMS расшифровывает ключ шифрования данных (DEK), а новый ключ KMS заново шифрует DEK. Это гарантирует, что после перезапуска сервис будет использовать новый ключ KMS для операций шифрования. Этот процесс может занять несколько минут.
Включение CMEK с помощью AWS KMS
-
В ClickHouse Cloud выберите зашифрованный сервис
-
Слева нажмите Settings
-
В нижней части экрана разверните раздел Network security information
-
Скопируйте Encryption role ID (AWS) или Encryption Service Account (GCP) — это понадобится на одном из следующих шагов
-
Нажмите на ключ
-
Обновите политику ключа AWS следующим образом:
{ "Sid": "Allow ClickHouse Access", "Effect": "Allow", "Principal": { "AWS": [ "Encryption role ID " ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:DescribeKey" ], "Resource": "*" } -
Сохраните политику ключа
-
Скопируйте ARN ключа
-
Вернитесь в ClickHouse Cloud и вставьте ARN ключа в раздел прозрачное шифрование данных в Settings сервиса
-
Сохраните изменения
Включение CMEK с помощью GCP KMS
- В ClickHouse Cloud выберите зашифрованный сервис
- Слева нажмите Settings
- В нижней части экрана разверните раздел Network security information
- Скопируйте Encryption Service Account (GCP) — это понадобится на одном из следующих шагов
- Создайте ключ KMS для GCP
- Нажмите на ключ
- Предоставьте GCP Encryption Service Account, скопированному на шаге 4, следующие разрешения.
- Cloud KMS CryptoKey Encrypter/Decrypter
- Cloud KMS Viewer
- Сохраните разрешения ключа
- Скопируйте путь к ресурсу ключа
- Вернитесь в ClickHouse Cloud и вставьте путь к ресурсу ключа в раздел прозрачное шифрование данных в Settings сервиса
- Сохраните изменения
Включение CMEK с помощью Azure KMS
- В ClickHouse Cloud выберите зашифрованный сервис
- Нажмите
Settingsслева - В нижней части экрана разверните
Network security information - Скопируйте
Cross Tenant App Client ID— он понадобится на следующем шаге - Войдите в свою подписку Azure и выполните следующую команду в Azure CLI, чтобы создать новый service principal; замените
{azure_cross_tenant_app_client_id}на значение, скопированное на предыдущем шагеaz ad sp create --id {azure_cross_tenant_app_client_id} - Скопируйте
Nameсозданного service principal — он понадобится на одном из следующих шагов - Создайте 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 - Вставьте имя service principal, скопированное на шаге 6 (оно начинается с CH-TDE), выберите этот service principal и нажмите
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
- Нажмите Rotate KMS, подождите несколько минут, так как это приведет к поэтапному перезапуску, и убедитесь, что ваш сервис работает
Ротация ключа
После настройки CMEK выполните ротацию ключа, следуя описанным выше инструкциям по созданию нового ключа KMS и предоставлению разрешений. Затем вернитесь к настройкам сервиса, вставьте новый ARN (AWS), Key Resource Path (GCP) или Key Name (Azure) и сохраните настройки. Чтобы применить новый ключ, сервис будет перезапущен.
Опрос ключа KMS
При использовании CMEK действительность указанного ключа KMS проверяется каждые 10 минут. Если доступ к ключу KMS станет недоступен, сервис ClickHouse будет остановлен. Чтобы возобновить работу сервиса, восстановите доступ к ключу KMS, следуя инструкциям из этого руководства, а затем перезапустите сервис.
Резервное копирование и восстановление
Резервные копии шифруются тем же ключом, что и соответствующий сервис. При восстановлении зашифрованной резервной копии создается зашифрованный экземпляр, использующий тот же ключ KMS, что и исходный экземпляр. При необходимости после восстановления можно выполнить ротацию ключа KMS; подробнее см. в разделе Ротация ключа.
Производительность
Для шифрования на уровне базы данных и защиты данных используется встроенная в ClickHouse возможность Virtual File System for Data Encryption. В этой возможности используется алгоритм AES_256_CTR; ожидаемое снижение производительности составляет 5–15% в зависимости от рабочей нагрузки:
