Перейти к основному содержимому
Перейти к основному содержимому

Шифрование данных

Шифрование на уровне хранилища

ClickHouse Cloud по умолчанию использует шифрование данных в состоянии покоя с использованием управляемых облачным провайдером ключей AES‑256. Для получения дополнительной информации см.:

Шифрование на уровне базы данных

Enterprise plan feature

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) для своего сервиса.

Усиленное шифрование в настоящее время доступно в сервисах AWS и GCP. Поддержка Azure появится позже.

Transparent Data Encryption (TDE)

TDE необходимо включить при создании сервиса. Невозможно зашифровать уже существующие сервисы после их создания. После включения TDE его нельзя отключить. Все данные в сервисе останутся зашифрованными. Если вы хотите отключить TDE после того, как он был включён, необходимо создать новый сервис и перенести в него ваши данные.

  1. Выберите Create new service
  2. Задайте имя сервиса
  3. Выберите AWS или GCP как облачного провайдера и нужный регион из выпадающего списка
  4. Откройте выпадающий список Enterprise features и включите опцию Enable Transparent Data Encryption (TDE)
  5. Нажмите Create service

Customer Managed Encryption Keys (CMEK)

Примечание

Удаление ключа KMS, используемого для шифрования сервиса ClickHouse Cloud, приведёт к остановке вашего сервиса ClickHouse, а его данные, включая существующие резервные копии, станут невосстановимыми. Чтобы предотвратить случайную потерю данных при ротации ключей, вы можете сохранить старые ключи KMS на некоторый период времени перед их удалением.

После того как сервис зашифрован с помощью TDE, пользователи могут обновить ключ, чтобы включить CMEK. Сервис будет автоматически перезапущен после обновления настройки TDE. В ходе этого процесса старый ключ KMS расшифровывает ключ шифрования данных (DEK), а новый ключ KMS повторно шифрует DEK. Это гарантирует, что после перезапуска сервис будет использовать новый ключ KMS для последующих операций шифрования. Этот процесс может занять несколько минут.

Включение CMEK с AWS KMS
  1. В ClickHouse Cloud выберите зашифрованный сервис

  2. Нажмите Settings слева

  3. Внизу экрана разверните раздел Network security information

  4. Скопируйте Encryption role ID (AWS) или Encryption Service Account (GCP) — это потребуется вам на одном из следующих шагов

  5. Создайте ключ KMS для AWS

  6. Нажмите на ключ

  7. Обновите политику ключа AWS следующим образом:

    {
        "Sid": "Allow ClickHouse Access",
        "Effect": "Allow",
        "Principal": {
            "AWS": [ "Encryption role ID " ]
        },
        "Action": [
            "kms:Encrypt",
            "kms:Decrypt",
            "kms:ReEncrypt*",
            "kms:DescribeKey"
        ],
        "Resource": "*"
    }
    
  8. Сохраните политику ключа (Key policy)

  9. Скопируйте Key ARN

  10. Вернитесь в ClickHouse Cloud и вставьте Key ARN в раздел Transparent Data Encryption в Service Settings

  11. Сохраните изменения

Включение CMEK с GCP KMS
  1. В ClickHouse Cloud выберите зашифрованный сервис
  2. Нажмите Settings слева
  3. Внизу экрана разверните раздел Network security information
  4. Скопируйте Encryption Service Account (GCP) — это потребуется вам на одном из следующих шагов
  5. Создайте ключ KMS для GCP
  6. Нажмите на ключ
  7. Предоставьте следующие права аккаунту GCP Encryption Service Account, скопированному на шаге 4 выше:
    • Cloud KMS CryptoKey Encrypter/Decrypter
    • Cloud KMS Viewer
  8. Сохраните права для ключа (Key permission)
  9. Скопируйте Key Resource Path
  10. Вернитесь в ClickHouse Cloud и вставьте Key Resource Path в раздел Transparent Data Encryption в Service Settings
  11. Сохраните изменения
Включение CMEK с Azure KMS
  1. В ClickHouse Cloud выберите зашифрованный сервис
  2. Нажмите Settings слева
  3. В нижней части экрана разверните Network security information
  4. Скопируйте Cross Tenant App Client ID — он понадобится на следующем шаге
  5. Войдите в свою подписку Azure и с помощью следующей команды в Azure CLI создайте новый принципал службы; замените {azure_cross_tenant_app_client_id} значением, которое вы скопировали на предыдущем шаге az ad sp create --id {azure_cross_tenant_app_client_id}
  6. Скопируйте Name созданного принципала службы — оно понадобится на одном из следующих шагов
  7. Создайте Azure Key Vault
  8. Создайте ключ в Key Vault Azure
  9. Для ключа в Key Vault выберите слева Access control (IAM)
  10. Выберите Role assignments в верхнем меню
  11. Нажмите Add, затем Add role assignment в верхнем меню
  12. Выберите роль Key Vault Crypto User, затем нажмите Next
  13. Оставьте значения по умолчанию на экране Add role assignment и нажмите +Select members
  14. Вставьте имя принципала службы, которое вы скопировали на шаге 6 (оно начинается с CH-TDE), выберите этот принципал службы и нажмите Select
  15. Нажмите Next, затем Review + assign
  16. Вернитесь в Azure Key Vault и скопируйте следующие значения:
    • На странице Overview скопируйте URI хранилища
    • На странице Overview скопируйте свой Directory ID
    • На странице Keys скопируйте имя ключа
  17. Вернитесь к настройкам сервиса в ClickHouse Cloud и вставьте значения из шага 16 в следующие поля:
    • Key ID > вставьте имя ключа
    • Key Vault URI > вставьте URI хранилища
    • Key Tenant ID > вставьте Directory ID
  18. Нажмите Rotate KMS, подождите несколько минут, так как это вызовет поэтапный перезапуск, и убедитесь, что сервис работает

Ротация ключей

После настройки CMEK выполните ротацию ключа, следуя описанным выше процедурам по созданию нового ключа KMS и назначению прав. Вернитесь в настройки сервиса, вставьте новый ARN (AWS), Key Resource Path (GCP) или Key Name (Azure) и сохраните настройки. Сервис перезапустится для применения нового ключа.

Компонент опроса ключа KMS

При использовании CMEK валидность предоставленного ключа KMS проверяется каждые 10 минут. Если ключ KMS становится недоступным, служба ClickHouse будет остановлена. Чтобы возобновить работу службы, восстановите доступ к ключу KMS, следуя инструкциям в данном руководстве, а затем перезапустите службу.

Резервное копирование и восстановление

Резервные копии шифруются тем же ключом, что и связанная служба. При восстановлении зашифрованной резервной копии создаётся зашифрованный экземпляр, который использует тот же ключ KMS, что и исходный экземпляр. При необходимости вы можете выполнить ротацию ключа KMS после восстановления; дополнительные сведения см. в разделе Ротация ключей.

Производительность

Шифрование базы данных использует встроенную в ClickHouse виртуальную файловую систему для шифрования данных для шифрования и защиты ваших данных. Для этой функции используется алгоритм AES_256_CTR, который, как ожидается, приведёт к снижению производительности на 5–15 % в зависимости от нагрузки:

Потеря производительности при использовании CMEK