diff --git a/content/documentation/release-notes/v1.2.0.ru.md b/content/documentation/release-notes/v1.2.0.ru.md new file mode 100644 index 0000000..b997f70 --- /dev/null +++ b/content/documentation/release-notes/v1.2.0.ru.md @@ -0,0 +1,20 @@ +--- +title: v1.2.0 +weight: 970 +--- + +## Новые возможности + +### Хранение учётных данных в Vault + +Добавлена возможность выбора Vault в качестве места хранения учётных данных пользователей. При создании или редактировании типа учётных данных можно указать место хранения: база данных (по умолчанию) или Vault. + +**Настройка Vault:** + +Перед использованием Vault необходимо настроить подключение в разделе администрирования: + +- URL сервера Vault +- Role ID и Secret ID для аутентификации через AppRole +- Base Path и Mount Path для KV2 хранилища (по умолчанию: `ddp` и `secret`) + +После настройки и включения Vault опция выбора Vault становится доступной при создании типов учётных данных. При отключении Vault все типы учётных данных автоматически переключаются на хранение в базе данных. diff --git a/content/documentation/user/credentials.ru.md b/content/documentation/user/credentials.ru.md index c151124..b961182 100644 --- a/content/documentation/user/credentials.ru.md +++ b/content/documentation/user/credentials.ru.md @@ -18,9 +18,58 @@ moduleStatus: experimental ### Обязательные поля - **Название** -- **Идентификатор** +- **Идентификатор** +- **Backend для хранения** (если доступен больше чем 1) -Поле **"Описание"** является опциональным. Его содержимое будет выводиться в профиле пользователя в качестве подсказки к конкретному типу учетных данных. +Поле **"Описание"** является опциональным. Его содержимое будет выводиться в профиле пользователя в качестве подсказки к конкретному типу учетных данных. + +### Backend для хранения + +При создании или редактировании типа учетных данных можно выбрать место хранения. В данный момент доступно: + +- **База данных** (по умолчанию) — учетные данные хранятся в базе данных платформы +- **Vault** — учетные данные хранятся в HashiCorp Vault + +Опция выбора Vault доступна только после настройки и включения Vault. + +## Хранение учетных данных в Vault + +Платформа поддерживает использование HashiCorp Vault в качестве хранилища для учетных данных пользователей. Это обеспечивает дополнительный уровень безопасности. + +### Настройка Vault + +Перед использованием Vault необходимо настроить подключение в разделе **`Администрирование / Учетные данные`** (кнопка "Настройки Vault"): + +- **URL** — адрес сервера Vault +- **Role ID** — идентификатор роли для аутентификации через AppRole +- **Secret ID** — секретный идентификатор для аутентификации через AppRole +- **Base Path** — базовый путь в KV2 хранилище (по умолчанию: `ddp`) +- **Mount Path** — путь монтирования KV2 хранилища (по умолчанию: `secret`) + +Доступна функция тестирования подключения без сохранения настроек. + +`Role ID` и `Secret ID` шифруются перед сохранением в базе данных платформы. + +{{< alert level="warning" >}} +При отключении Vault все типы учетных данных, использующие Vault, автоматически переключаются на хранение в базе данных. +{{< /alert >}} + +### Структура хранения в Vault + +Учетные данные хранятся в Vault KV2 (Key-Value версии 2) по следующему пути: + +```text +{mountPath}/data/{basePath}/users/{user_uuid}/credentials/{credential_uuid} +``` + +Где: + +- `mountPath` — путь монтирования KV2 хранилища (по умолчанию `secret`) +- `basePath` — базовый путь (по умолчанию `ddp`) +- `user_uuid` — UUID пользователя +- `credential_uuid` — UUID типа учетных данных + +Каждая запись хранится как отдельный секрет в Vault. ## Учетные данные пользователя @@ -28,8 +77,13 @@ moduleStatus: experimental Например, если администратор создал тип учетных данных **"Kubernetes token"**, то пользователь в своем профиле сможет добавить персональный токен для доступа в Kubernetes. -Все учетные данные шифруются перед сохранением в базе данных и расшифровываются непосредственно при запросе к конкретной инфраструктурной системе. -Ключ для шифрования задаётся в конфигурации DDP в поле **`security.secretKey`**. +### Шифрование учетных данных + +Все учетные данные шифруются перед сохранением (в базе данных или Vault) и расшифровываются непосредственно при запросе к конкретной инфраструктурной системе. + +Шифрование происходит с использованием алгоритма **AES-GCM** (Advanced Encryption Standard в режиме Galois/Counter Mode). Ключ для шифрования задаётся в конфигурации DDP в поле **`security.secretKey`**. + +Место хранения (база данных или Vault) определяется администратором при создании типа учетных данных. {{< alert level="warning" >}} При изменении ключа шифрования в конфигурации все текущие учетные данные станут невалидными.