Add security parameter documentation
This commit is contained in:
@@ -0,0 +1,312 @@
|
||||
[Документация](../../README-ru.md#документация) → [Конфигурация](../config.ru.md) → Параметры безопасности
|
||||
|
||||
-----
|
||||
|
||||
[Read in English](security.en.md)
|
||||
|
||||
# Параметры безопасности
|
||||
|
||||
Данные параметры затрагивают безопасность инсталляций Vitastor и используются
|
||||
OSD, мониторами и клиентами.
|
||||
|
||||
Большая их часть может задаваться в /etc/vitastor/vitastor.conf и в etcd, но не
|
||||
поддерживает онлайн-изменение.
|
||||
|
||||
Все параметры сертификатов и закрытых ключей могут быть путём к файлу или просто
|
||||
строкой с сертификатом в формате PEM. В последнем случае строка должна начинаться с
|
||||
"-----BEGIN CERTIFICATE-----" или "-----BEGIN PRIVATE KEY-----".
|
||||
|
||||
- [use_perms](#use_perms)
|
||||
- [cert](#cert)
|
||||
- [pkey](#pkey)
|
||||
- [etcd_ca](#etcd_ca)
|
||||
- [client_ca](#client_ca)
|
||||
- [osd_ca](#osd_ca)
|
||||
- [mon_ca](#mon_ca)
|
||||
- [antietcd_cert](#antietcd_cert)
|
||||
- [antietcd_key](#antietcd_key)
|
||||
- [etcd_proxy.urls](#etcd_proxyurls)
|
||||
- [etcd_proxy.cert](#etcd_proxycert)
|
||||
- [etcd_proxy.key](#etcd_proxykey)
|
||||
- [etcd_proxy.ca](#etcd_proxyca)
|
||||
- [osd_cert](#osd_cert)
|
||||
- [osd_pkey](#osd_pkey)
|
||||
- [api_cert](#api_cert)
|
||||
- [api_pkey](#api_pkey)
|
||||
- [etcd_client_cert](#etcd_client_cert)
|
||||
- [etcd_client_key](#etcd_client_key)
|
||||
- [osd_etcd_client_cert](#osd_etcd_client_cert)
|
||||
- [osd_etcd_client_key](#osd_etcd_client_key)
|
||||
- [mon_etcd_client_cert](#mon_etcd_client_cert)
|
||||
- [mon_etcd_client_key](#mon_etcd_client_key)
|
||||
- [proto_checksums](#proto_checksums)
|
||||
- [force_proto_checksums](#force_proto_checksums)
|
||||
- [max_cipher_pool_size](#max_cipher_pool_size)
|
||||
- [vault_url](#vault_url)
|
||||
- [vault_secret_api_path](#vault_secret_api_path)
|
||||
- [vault_client_cert](#vault_client_cert)
|
||||
- [vault_client_key](#vault_client_key)
|
||||
- [vault_ca](#vault_ca)
|
||||
- [vault_timeout_ms](#vault_timeout_ms)
|
||||
- [vault_error_timeout_sec](#vault_error_timeout_sec)
|
||||
- [vault_refresh_leeway_sec](#vault_refresh_leeway_sec)
|
||||
|
||||
## use_perms
|
||||
|
||||
- Тип: булево (да/нет)
|
||||
- Значение по умолчанию: false
|
||||
|
||||
Включает клиентские привилегии в кластере Vitastor, в том числе во встроенном в мониторе Antietcd.
|
||||
Требует настроенного шифрования протокола. Также обратите внимание, что отдельно установленный Antietcd
|
||||
требует отдельной настройки привилегий (подробности смотрите в [документации безопасности](../intro/security.ru.md)).
|
||||
|
||||
## cert
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Клиентский сертификат текущего пользователя Vitastor. Требуется для шифрования протокола Vitastor.
|
||||
Должен быть подписан [client_ca](#client_ca). Также по умолчанию используется как клиентский
|
||||
сертификат для подключения к etcd/Antietcd и Vault.
|
||||
|
||||
## pkey
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Закрытый ключ текущего пользователя Vitastor.
|
||||
|
||||
## etcd_ca
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Доверенный корневой TLS-сертификат для проверки сертификата сервера etcd.
|
||||
Либо же просто сам сертификат сервера etcd - его можно использовать как etcd_ca.
|
||||
|
||||
## client_ca
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Доверенный TLS-сертификат для проверки сертификатов клиентов Vitastor.
|
||||
Требуется для шифрования протокола Vitastor.
|
||||
|
||||
## osd_ca
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Доверенный TLS-сертификат для проверки сертификатов OSD Vitastor. Также обязателен
|
||||
для шифрования протокола Vitastor. Должен отличаться от client_ca. Может быть равен
|
||||
osd_cert - разные OSD не требуют разных сертификатов, потому что на данный момент
|
||||
привилегии разных OSD никак не отличаются.
|
||||
|
||||
## mon_ca
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Доверенный TLS-сертификат для проверки сертификатов мониторов Vitastor. Используется
|
||||
только отдельно установленным Antietcd, не требуется при использовании встроенного в монитор
|
||||
Antietcd. Может быть равен mon_client_etcd_cert.
|
||||
|
||||
## antietcd_cert
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Серверный TLS-сертификат для Antietcd, встроенного в монитор.
|
||||
|
||||
## antietcd_key
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Закрытый ключ для сертификата antietcd_cert.
|
||||
|
||||
## etcd_proxy.urls
|
||||
|
||||
- Тип: строка или массив строк
|
||||
|
||||
Адреса etcd для режима Antietcd etcd-прокси.
|
||||
Смотрите подробности в разделе [Mon в роли Etcd proxy](../intro/security.ru.md#mon-в-роли-etcd-proxy).
|
||||
|
||||
## etcd_proxy.cert
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Клиентский сертификат для подключений от Antietcd к etcd в режиме прокси.
|
||||
|
||||
## etcd_proxy.key
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Закрытый ключ для сертификата etcd_proxy.cert.
|
||||
|
||||
## etcd_proxy.ca
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Доверенный TLS-сертификат для проверки сертификата сервера etcd при подключениях от Antietcd.
|
||||
|
||||
## osd_cert
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Сертификат сервера Vitastor OSD. Требуется для шифрования протокола Vitastor. Может быть равен
|
||||
[osd_ca](#osd_ca) - все OSD на данный момент имеют одинаковые привилегии. Также по умолчанию
|
||||
используется как клиентский сертификат для подключения от OSD к etcd/Antietcd.
|
||||
|
||||
## osd_pkey
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Закрытый ключ для сертификата osd_cert.
|
||||
|
||||
## api_cert
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Серверный TLS-сертификат для API-сервера [vitastor-cli serve](../usage/cli.ru.md#serve).
|
||||
|
||||
## api_pkey
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Закрытый ключ для сертификата api_cert.
|
||||
|
||||
## etcd_client_cert
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Клиентский TLS сертификат для подключений от клиентов Vitastor к etcd/Antietcd, если вы не хотите
|
||||
использовать общий клиентский сертификат [cert](#cert).
|
||||
|
||||
## etcd_client_key
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Закрытый ключ для сертификата etcd_client_cert.
|
||||
|
||||
## osd_etcd_client_cert
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Клиентский TLS сертификат для подключений от Vitastor OSD к etcd/Antietcd, если вы не хотите
|
||||
использовать общий сертификат OSD [osd_cert](#osd_cert).
|
||||
|
||||
## osd_etcd_client_key
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Закрытый ключ для сертификата osd_etcd_client_cert.
|
||||
|
||||
## mon_etcd_client_cert
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Клиентский TLS сертификат для подключений от мониторов Vitastor к etcd/Antietcd - требуется, если
|
||||
вы не используете встроенный в монитор Antietcd. Если вы используете его, то монитор и так имеет
|
||||
прямой доступ к данным Antietcd и не требует никаких соединений.
|
||||
|
||||
## mon_etcd_client_key
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Закрытый ключ для сертификата mon_etcd_client_cert.
|
||||
|
||||
## proto_checksums
|
||||
|
||||
- Тип: строка
|
||||
- Значение по умолчанию: payload
|
||||
|
||||
Одно из значений "full", "payload", "gcm" и "none":
|
||||
- "full" означает расчёт и проверку контрольных сумм на транспортном уровне от полных сообщений,
|
||||
включая их заголовки и данные - рекомендуется для кластеров без шифрования.
|
||||
- "payload" включает контрольные суммы только для данных сообщений, но пропускает заголовки -
|
||||
такая настройка рекомендуется для кластеров с включённым шифрованием, потому что в них заголовки
|
||||
и так защищены шифрованием AES-GCM.
|
||||
- "gcm" отключает контрольные суммы и включает шифрование полных сообщений включая заголовки и
|
||||
данные - AES-GCM уже включает в себя MAC, который по сути является криптостойкой контрольной
|
||||
суммой. Такая настройка медленнее и рекомендуется только для недоверенных сетей.
|
||||
- "none" полностью отключает контрольные суммы на транспортном уровне.
|
||||
|
||||
## force_proto_checksums
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Чтобы старые клиенты Vitastor могли подключаться к кластеру с включёнными контрольными
|
||||
суммами, Vitastor OSD по умолчанию разрешают клиентам отключать контрольные суммы
|
||||
данных (proto_checksums). Настройка force_proto_checksums задаёт минимальный уровень
|
||||
безопасности, разрешённый для подключающихся клиентов. Когда шифрование отключено,
|
||||
force_proto_checksums по умолчанию равно none и подключения клиентов без контрольных
|
||||
сумм разрешаются. При включённом шифровании значение по умолчанию force_proto_checksums
|
||||
становится "payload", чтобы блокировать подключения с неаутентифицированными данными.
|
||||
|
||||
## max_cipher_pool_size
|
||||
|
||||
- Тип: целое число
|
||||
- Значение по умолчанию: 256
|
||||
|
||||
Максимальное количество кэшируемых в памяти OSD контекстов шифра OpenSSL, учитываемое
|
||||
отдельно для каждого шифра и для шифрования и расшифровки. Вряд ли требует изменения.
|
||||
|
||||
## vault_url
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Базовый адрес Vault.
|
||||
|
||||
Клиенты Vitastor поддерживают AES-256-XTS шифрование данных образов с отдельными ключами на
|
||||
каждый образ. Данные шифруются клиентами, OSD не имеют доступа к незашифрованным данным.
|
||||
|
||||
Ключи шифрования могут храниться в etcd или, для повышенного уровня безопасности, во внешнем
|
||||
[HashiCorp Vault](https://developer.hashicorp.com/vault/) или [OpenBao](https://openbao.org/).
|
||||
|
||||
Клиенты Vitastor используют [движок секретов v1](https://openbao.org/api-docs/secret/kv/kv-v1/)
|
||||
и [TLS-аутентификацию](https://openbao.org/api-docs/auth/cert/) в Vault.
|
||||
|
||||
В этом случае, только ID ключей хранятся в etcd.
|
||||
|
||||
## vault_secret_api_path
|
||||
|
||||
- Тип: строка
|
||||
- Значение по умолчанию: /v1/secret/
|
||||
|
||||
Путь к API секретов v1 для использования клиентами.
|
||||
|
||||
## vault_client_cert
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Клиентский TLS сертификат для подключений к Vault на тот случай, если вы не хотите использовать
|
||||
общий сертификат клиента Vitastor [cert](#cert), используемый для подключений к Vault по умолчанию.
|
||||
|
||||
## vault_client_key
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Закрытый ключ для сертификата vault_client_cert.
|
||||
|
||||
## vault_ca
|
||||
|
||||
- Тип: строка
|
||||
|
||||
Доверенный корневой TLS-сертификат для проверки сертификата сервера Vault.
|
||||
Может быть путём к файлу, директории или просто строкой с сертификатом в
|
||||
формате PEM.
|
||||
|
||||
## vault_timeout_ms
|
||||
|
||||
- Тип: целое число
|
||||
- Значение по умолчанию: 5000
|
||||
|
||||
Максимально время выполнения Vault-запросов в миллисекундах.
|
||||
|
||||
## vault_error_timeout_sec
|
||||
|
||||
- Тип: целое число
|
||||
- Значение по умолчанию: 60
|
||||
|
||||
Время (в секундах) для ожидания перед повторной попыткой при получении ошибки от Vault.
|
||||
|
||||
## vault_refresh_leeway_sec
|
||||
|
||||
- Тип: целое число
|
||||
- Значение по умолчанию: 60
|
||||
|
||||
Зазор времени (в секундах), чтобы обновлять токены Vault чуть раньше их реального
|
||||
lease_timeout, на случай "ухода" системных часов.
|
||||
Reference in New Issue
Block a user