Шифрование в Managed Service for Kubernetes
В Yandex Cloud действует множество мер обеспечения информационной безопасности. В том числе реализовано многоуровневое шифрование данных сервиса Managed Service for Kubernetes:
- Данные шифруются при размещении в хранилище Yandex Cloud с помощью системных ключей. Это позволяет защитить данные от компрометации в случае физической кражи дисков из дата-центров Yandex Cloud.
- Данные шифруются при передаче по сети с помощью протокола TLS. Ключи для работы протокола TLS хранятся на хостах, на которых он используется. Это позволяет защитить данные от перехвата.
Используются следующие криптографические алгоритмы:
- симметричные: AES, ChaCha;
- асимметричные: RSA, Ed25519.
Минимальная длина ключа, используемая в симметричных алгоритмах, — 128 бит, в асимметричных — 2048 бит.
Управление этими ключами обеспечивает Yandex Cloud.
Также доступно шифрование секретов Kubernetes с помощью симметричного ключа шифрования, который хранится в сервисе Yandex Key Management Service.
Управление таким ключом происходит на стороне пользователя, что дает дополнительные возможности:
-
Аудит событий, связанных с использованием ключа, с помощью сервиса Yandex Audit Trails.
-
Отслеживание работы с ключами с помощью сервиса Yandex Monitoring.
-
Операции с ключами — ротация, изменение, деактивация, удаление.
-
Гранулярный контроль прав доступа к ключу на уровне отдельных аккаунтов Yandex Cloud.
-
Применение аппаратного модуля безопасности (HSM) при необходимости.
Примечание
В сервисе Managed Service for Kubernetes сервисный аккаунт Yandex Cloud называется облачным сервисным аккаунтом, чтобы избежать путаницы с сервисным аккаунтом Kubernetes.
Шифрование секретов Kubernetes
Секрет Kubernetes
По умолчанию секреты кластера хранятся в открытом виде. Если при создании кластера Managed Service for Kubernetes был указан ключ шифрования, то секреты кластера шифруются.
Важно
Ключ шифрования можно указать только при создании кластера.
Если нужно использовать другой ключ, создайте новый кластер с этим ключом.
Процесс шифрования отдельного секрета происходит следующим образом:
-
Kubernetes шифрует секрет с помощью KMS-провайдера
. -
В процессе шифрования KMS-провайдер обращается к KMS-плагину, который позволяет использовать ключ шифрования, указанный при создании кластера.
Этот ключ шифрования не используется для непосредственного шифрования секретов. Вместо этого применяется шифрование по схеме envelope encryption
, в которой участвует ключ.Общее описание схемы приведено в разделе Шифрование по схеме envelope encryption.
-
В процессе шифрования KMS-плагин обеспечивает взаимодействие с сервисом Yandex Key Management Service, в котором хранится ключ шифрования.
Этот плагин, как и использующий его провайдер, уже установлен в кластер Managed Service for Kubernetes и настроен необходимым образом.
Расшифровка секрета происходит аналогичным образом.