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

Bitwarden Secrets Manager

Извлекайте ключи API из Bitwarden Secrets Manager при запуске процесса вместо хранения их в открытом виде внутри ~/.vibeos/.env. Один бутстрап-секрет (токен доступа машинной учётной записи) заменяет N ключей для каждого провайдера, а ротация учётных данных сводится к одному изменению в веб-приложении Bitwarden.

Как это работает​

  1. Вы создаёте машинную учётную запись в Bitwarden Secrets Manager, даёте ей доступ на чтение к проекту и генерируете токен доступа.
  2. VibeOS сохраняет этот единственный токен в ~/.vibeos/.env как BWS_ACCESS_TOKEN.
  3. Каждый раз при запуске vibeos (или шлюза, или cron-задачи), после загрузки ~/.vibeos/.env, VibeOS вызывает bws secret list <project_id> и устанавливает полученные ключи в os.environ`.
  4. По умолчанию VibeOS переопределяет значения, уже присутствующие в окружении, поэтому Bitwarden является источником истины — поверните ключ один раз в веб-приложении, и каждый процесс VibeOS подхватит его при следующем запуске. Установите override_existing: false в конфиге, если хотите, чтобы .env имел приоритет.

Бинарный файл bws автоматически загружается в ~/.vibeos/bin/ при первом использовании — никаких apt, brew или sudo.

Зачем нужны машинные учётные записи (и почему нет запроса 2FA)​

Bitwarden Secrets Manager спроектирован для неинтерактивных рабочих нагрузок: машинные учётные записи не могут быть защищены 2FA, потому что в цикле нет человека. Токен доступа и есть учётные данные. Любой, кто им владеет, может прочитать все секреты, к которым имеет доступ машинная учётная запись, поэтому относитесь к нему как к высокоценному bearer-токену — храните в .env (не в config.yaml), и отзывайте + перегенерируйте из веб-приложения Bitwarden в случае утечки.

Вы настраиваете машинную учётную запись в веб-приложении, где действует ваша обычная 2FA. После этого токен работает автономно.

Настройка​

1. Создайте машинную учётную запись и токен доступа​

В веб-приложении Bitwarden (или vault.bitwarden.eu для аккаунтов из ЕС):

  1. Переключитесь на Secrets Manager через переключатель продуктов.
  2. Создайте или выберите Проект (например, «Ключи VibeOS»).
  3. Добавьте ключи ваших провайдеров как секреты. Имя секрета становится именем переменной окружения — используйте OPENROUTER_API_KEY, ANTHROPIC_API_KEY и т.д.
  4. Машинные учётные записи → Новая машинная учётная запись → My VibeOS machine → вкладка Проекты → предоставьте доступ на чтение к вашему проекту.
  5. Вкладка Токены доступа → Создать токен доступа → Никогда (или выберите дату) → скопируйте токен (начинается с 0.). Bitwarden не сможет показать его снова — сохраните копию.

Secrets Manager входит в бесплатный тариф Bitwarden с ограничениями; платный план не требуется, чтобы попробовать эту функцию.

2. Запустите мастер​

vibeos secrets bitwarden setup

Он выполнит следующее:

  1. Загрузит и проверит bws v2.0.0 в ~/.vibeos/bin/bws.
  2. Запросит токен доступа (ввод скрыт). Сохраняется в ~/.vibeos/.env как BWS_ACCESS_TOKEN.
  3. Спросит, к какому региону Bitwarden относится ваша машинная учётная запись — US Cloud, EU Cloud или самостоятельный хостинг / собственный URL. Сохраняется в config.yaml как secrets.bitwarden.server_url и передаётся в bws как BWS_SERVER_URL.
  4. Покажет проекты, которые видит машинная учётная запись; выберите один. Сохраняется в config.yaml как secrets.bitwarden.project_id.
  5. Выполнит тестовую загрузку секретов проекта и покажет, какие переменные окружения будут разрешены.
  6. Установит secrets.bitwarden.enabled: true.

Неинтерактивная настройка также поддерживается через флаги:

vibeos secrets bitwarden setup \
--access-token "$BWS_ACCESS_TOKEN" \
--server-url https://vault.bitwarden.eu \
--project-id <project-uuid>

3. Подтвердите​

vibeos secrets bitwarden status

Теперь каждый запуск vibeos будет получать свежие секреты при старте. Вы увидите однострочную сводку в stderr при первом применении секретов в процессе.

CLI​

КомандаЧто делает
vibeos secrets bitwarden setupИнтерактивный мастер (установка бинарного файла, запрос токена, выбор проекта, тестовая загрузка)
vibeos secrets bitwarden statusПоказывает конфигурацию + версию бинарного файла + наличие токена
vibeos secrets bitwarden syncПробный запуск: загрузить секреты сейчас и показать, что будет применено
vibeos secrets bitwarden sync --applyЗагрузить и экспортировать в окружение текущей оболочки
vibeos secrets bitwarden installПросто загрузить фиксированную версию bws (аутентификация не требуется)
vibeos secrets bitwarden disableУстановить enabled: false; токен и ID проекта остаются на месте

Конфигурация​

Значения по умолчанию в ~/.vibeos/config.yaml:

secrets:
bitwarden:
enabled: false
access_token_env: BWS_ACCESS_TOKEN
project_id: ""
server_url: ""
cache_ttl_seconds: 300
override_existing: true
auto_install: true
КлючПо умолчаниюЧто делает
enabledfalseГлавный выключатель. Если false, Bitwarden никогда не опрашивается.
access_token_envBWS_ACCESS_TOKENИмя переменной окружения, содержащей бутстрап-токен. Измените, если BWS_ACCESS_TOKEN уже используется для чего-то другого.
project_id""UUID проекта для синхронизации.
server_url""Регион Bitwarden или эндпоинт самостоятельного хостинга. Пусто = значение по умолчанию bws (US Cloud, https://vault.bitwarden.com). Установите https://vault.bitwarden.eu для EU Cloud или свой URL для самостоятельного хостинга. Передаётся в подпроцесс bws как BWS_SERVER_URL.
cache_ttl_seconds300Как долго повторно используется результат загрузки в рамках процесса. Установите 0 для отключения кэширования. Кэш действует в рамках процесса; новые запуски vibeos начинают с чистого листа.
override_existingtrueЕсли true, значения из Bitwarden перезаписывают всё, что уже есть в окружении (чтобы ротация в веб-приложении действительно вступала в силу). Установите false, если хотите, чтобы .env / экспорт из оболочки имели локальный приоритет.
auto_installtrueЕсли true, bws автоматически загружается в ~/.vibeos/bin/ при первом использовании.

Режимы отказа​

Bitwarden никогда не блокирует запуск VibeOS. Если что-то пошло не так, вы увидите однострочное предупреждение в stderr, и VibeOS продолжит работу с теми учётными данными, которые уже были в .env:

СимптомПричинаИсправление
BWS_ACCESS_TOKEN is not setВключено в конфиге, но токен удалён из .envПовторно запустите vibeos secrets bitwarden setup
bws exited 1: invalid access tokenТокен отозван или неверенСгенерируйте новый токен, повторно запустите настройку
[400 Bad Request] {"error":"invalid_client"}Токен относится к другому региону Bitwarden, чем тот, который вызывает bws (например, токен EU попадает на эндпоинт идентификации US)Повторно запустите настройку и выберите правильный регион, или установите secrets.bitwarden.server_url в https://vault.bitwarden.eu (или ваш URL самостоятельного хостинга)
bws timed outСеть заблокирована или API Bitwarden медленныйПроверьте связь с api.bitwarden.com (или вашим server_url)
bws binary not availableauto_install: false и bws нет в PATHУстановите вручную с github.com/bitwarden/sdk-sm/releases или снова включите auto_install
Checksum mismatchЗагрузка повреждена или измененаПовторите попытку; если проблема сохраняется, создайте issue

Замечания по безопасности​

  • Бутстрап-токен (BWS_ACCESS_TOKEN) сам по себе чувствителен — любой, кто им владеет, может прочитать все секреты, к которым имеет доступ машинная учётная запись. Относитесь к нему так же, как к любому другому API-ключу.
  • VibeOS откажется позволять Bitwarden перезаписывать сам бутстрап-токен, даже при override_existing: true. Если вы храните BWS_ACCESS_TOKEN как секрет внутри проекта, он молча пропускается при применении.
  • Загрузка бинарного файла bws проверяется по опубликованной контрольной сумме SHA-256 из того же релиза на GitHub. Несовпадение прерывает установку.
  • Фиксированная версия (bws v2.0.0 на момент написания) обновляется через PR в этом репозитории — VibeOS не обновляет bws до «последней» версии автоматически, поскольку форма релизов может меняться.

Когда НЕ следует это использовать​

  • Одномашинные личные настройки, где ~/.vibeos/.env вполне подходит. Вы меняете одни учётные данные на другие и добавляете сетевую зависимость при запуске.
  • Изолированные среды, которые не могут подключиться к api.bitwarden.com.
  • CI/CD, где уже настроен существующий механизм внедрения секретов (секреты GitHub Actions, Vault и т.д.) — выберите один путь, а не два.

Хороший сценарий для этого — парки из нескольких машин, общие dev-боксы, шлюзовые VPS или любые настройки, где требуется централизованная ротация и отзыв доступа на нескольких установках VibeOS.