Секреты и доступы SKUARO¶
Статус: ХРАНИЛИЩЕ 700; ИСПОЛЬЗУЕМЫЕ DEV/STAGE ФАЙЛЫ 600
Обновлено: 2026-08-22.
Этот файл никогда не содержит значения токенов, паролей, seed phrases, приватных ключей, recovery codes или мастер-паролей.
Каноническое место хранения¶
[LOCAL_SECRET_STORE]
Это внешняя папка для фактических секретов, ключей, логинов и паролей. Она находится вне корня Git-проекта SKUARO.
Владелец выбрал этот путь после предупреждения, что расположение внутри дерева MEGA может приводить к синхронизации секретов. Ограничение «только дополнительно зашифрованные данные» пользователем отклонено.
Текущий режим¶
- Реальных секретов,
.env, закрытых ключей и credentials внутри проекта SKUARO сейчас нет. - Существование внешней папки подтверждено 2026-08-18 без просмотра её содержимого.
- Права папки изменены с
755на700(drwx------) 2026-08-18; владелец —alexzandr. - Значения могут храниться во внешней папке, но не копируются в Git-проект.
.env.exampleсодержит только имена переменных и безопасные пояснения.- Файл доступа к тестовому серверу использован 2026-08-21 по отдельному разрешению; значения не выводились, режим исправлен на
600. - Создан отдельный
config_deploy-skuaro_top.envс database credentials и историческими DEV/STAGE Basic Auth credentials; режим600, значения не копировались в проект. Basic Auth variables не подключаются к runtime по решению 0030. - Gmail-файл
config_skuaro_Email.envпрочитан по разрешению для настройки Auth PoC; права600, адрес и формат Google App Password проверены без вывода значений. DEV runtime secrets записаны только в server.envс режимом600, временный source-файл удалён. - Файл
config_skuaro_SuperAdmin.envпрочитан по разрешению только для bootstrap первой DEV-учётной записи; формат и права600проверены без вывода значений. Временные server-файлы удалены, тестовая сессия отозвана. - Внутренняя структура папки не перечисляется и не проверяется без отдельной явной задачи.
- Для корневой папки применены права
700; для будущих secret-файлов требуются права600.
Карта восстановления¶
| Назначение | Имя переменной или файла | Где восстановить | Ответственный | Статус |
|---|---|---|---|---|
| Доступ к тестовому серверу skuaro.top | config_server-skuaro_top.env |
[LOCAL_SECRET_STORE]/config_server-skuaro_top.env |
Владелец проекта | Проверен и использован по разрешению; 600 |
| DEV/STAGE database credentials и неактивные исторические Basic Auth credentials | config_deploy-skuaro_top.env |
[LOCAL_SECRET_STORE]/config_deploy-skuaro_top.env |
Владелец проекта | Создан; Basic Auth не подключён к runtime; 600 |
| Gmail DEV sender | config_skuaro_Email.env |
[LOCAL_SECRET_STORE]/config_skuaro_Email.env |
Владелец проекта | App Password создан; DEV настроен; SMTP AUTH ожидает открытия исходящего 587; 600 |
| Resend DEV sender | config_skuaro_Resend.env |
[LOCAL_SECRET_STORE]/config_skuaro_Resend.env |
Владелец проекта | Domain mail.skuaro.top verified; key имеет Sending access только для домена; controlled send получил Delivered и подтверждён получателем, DEV Auth flow не выполнен; 600 |
| Первый DEV SuperAdmin | config_skuaro_SuperAdmin.env |
[LOCAL_SECRET_STORE]/config_skuaro_SuperAdmin.env |
Владелец проекта | Bootstrap выполнен в DEV; login/access/revoke проверены; временные файлы удалены; 600 |
| Remote runtime secrets | .env каждого контура |
/opt/skuaro/{dev,stage,edge}/.env на тестовом сервере |
Владелец проекта | Созданы; root-only 600 |
| Production credentials | Пока не определены | Отдельное production-хранилище | Владелец проекта | Production-сервер не готовится в текущей фазе |
Граница доступа AI¶
- Путь можно хранить в документации; значения и содержимое файлов — нельзя.
- AI не меняет права и не просматривает, не перечисляет, не копирует и не изменяет содержимое без отдельной явной задачи.
- Разрешение на server audit должно отдельно назвать файл; чтение ограничивается необходимыми именами параметров, а значения не выводятся.
- Даже при разрешённой работе AI не выводит значения секретов в чат, документы, логи или отчёты.
- В отчёте допустимы только безопасное имя, назначение, путь, владелец, дата и статус.
Защищённые пути внутри проекта¶
.gitignore исключает:
.env,.env.localи другие.env.*, кроме.env.example;- приватные ключи и контейнеры сертификатов:
*.pem,*.key,*.p12,*.pfx; - каталоги
credentials/; - файлы service account и recovery codes.
Внешняя папка находится за пределами репозитория, поэтому правило .gitignore на неё не распространяется.
Проверка перед commit¶
- проверить staged-пути с учётом
.gitignore; - проверить содержимое обычных файлов на очевидные credentials без вывода найденного значения;
- убедиться, что
.env.exampleсодержит только безопасные данные; - не добавлять ссылки или копии файлов из внешней папки в Git;
- при обнаружении секрета остановить commit и сообщить только путь и тип риска.
Если секрет попал в историю, сначала отозвать или заменить credential, затем отдельно согласовать очистку истории. Force push автоматически запрещён.
Recovery codes и 2FA¶
Хранятся во внешней папке по решению владельца. Они не копируются в Git-проект, документацию или чат и не передаются AI.