Перейти к основному содержимому
Версия: 7.0

Основные концепции

Секрет как запись в Пассворке

В Пассворке нет отдельной сущности «секрет» — любая парольная запись может выступать секретом. Это даёт гибкость: один и тот же интерфейс используется и для пользовательских паролей, и для инфраструктурных секретов.

Где хранить секрет внутри записи

Тип поляЧто хранитьПример
ЛогинУчётные данные с логиномpostgres
ПарольСекреты, пароли, ключs3cr3t-p@ss
Пользовательские поляДополнительные именнованные секерты, поля, токены, ключAPI_KEY, JWT_SECRET, DB_PASSWORD
ОписаниеКонфигурационные фрагменты, JSON, YAMLБлок переменных окружения, JSON с настройками
Рекомендация

Для автоматизации удобне использовать пользовательские поля с понятными именами (DB_PASSWORD, API_KEY). Это упрощает выборку через CLI/SDK и делает записи самодокументируемыми.

Классификация секретов

Для организации и поиска секретов используйте:

  • Теги — логическая группировка: prod, stage, dev, database, api, kubernetes.
  • Название — назначение секрета
  • Дерево папок — группировка секретов

Структурирование секретов

Правильная структура папок — основа автоматизации. Когда секреты организованы предсказуемо, CLI и SDK могут находить и собирать их без ручной настройки.

Принцип организации

Выделите отдельное хранилище (vault) или корневую папку под инфраструктурные секреты. Внутри используйте иерархию по окружениям и категориям:

secrets/
├── prod/
│ ├── databases/
│ │ ├── postgres-main
│ │ └── redis-cache
│ ├── api/
│ │ └── payment-gateway
│ └── kubernetes/
│ └── cluster-config
├── stage/
│ ├── databases/
│ └── api/
└── dev/
└── sandbox/

Как это упрощает автоматизацию

ЗадачаРешение
Получить все секреты productionpasswork-cli exec --folder-id <secrets/prod ID>
Получить только БД-секреты prodpasswork-cli exec --folder-id <secrets/prod/databases ID>
Найти все kubeconfigПоиск по тегу kubernetes

Именование записей

Используйте понятные имена, отражающие назначение:

  • postgres-main, redis-session-store, stripe-api-key
  • password1, new-secret, test123

Хорошее именование позволяет:

  • быстро находить секреты в UI и через поиск CLI;
  • понимать назначение записи без открытия;
  • избежать путаницы при ротации и аудите.

Права доступа

Пассворк поддерживает гранулярное управление доступом на уровне хранилищ и папок:

  • DevOps-команда → полный доступ к secrets/prod и secrets/stage.
  • Разработчики → доступ только к secrets/dev.
  • CI/CD-сервис (технический пользователь) → read-only к secrets/prod для деплоя.

Права наследуются по иерархии папок, но могут быть переопределены на любом уровне.

Как работает аутентификация в API

Любая интеграция с Пассворком работает от лица конкретного пользователя. Для доступа к API необходимо получить пару токенов:

  • Access Token — используется для авторизации запросов к API. Имеет ограниченное время жизни.
  • Refresh Token — используется для получения нового access token без повторного ввода учётных данных.

Токены выпускаются для конкретного пользователя, и все операции через API выполняются с его правами. Это означает:

  • Интеграция видит только те хранилища и папки, к которым у пользователя есть доступ.
  • Операции записи возможны только там, где у пользователя есть соответствующие права.
  • Все действия записываются в журнал аудита от имени этого пользователя.

Сервисные учётные записи для интеграций

Для автоматизации (CI/CD, скрипты ротации, внутренние сервисы) рекомендуем использовать отдельные сервисные учётные записи, а не личные аккаунты сотрудников.

Преимущества:

  • Изоляция доступа — сервисная учётка имеет доступ только к нужным папкам, без лишних прав.
  • Полный аудит — в логах видно, что действие выполнено автоматизацией, а не человеком.
  • Независимость от кадровых изменений — увольнение сотрудника не ломает CI/CD.
  • Гибкие настройки безопасности — для сервисных учёток можно задать отдельные параметры.
Рекомендация

Объедините сервисные учётные записи в отдельную роль (например, Service Accounts или CI/CD Integration). Для этой роли настройте:

  • Время жизни API-токенов — короткие токены для CI/CD, длинные для постоянных сервисов.
  • Политики паролей — можно ослабить требования к «паролю» учётки, если аутентификация идёт только по токену.

Пример структуры сервисных учёток:

Учётная записьНазначениеДоступ
ci-deploy-prodДеплой в productionread-only к secrets/prod
ci-deploy-stageДеплой в stagingread-only к secrets/stage
rotation-botРотация секретовread-write к secrets/prod, secrets/stage
monitoring-svcПроверка целостностиread-only ко всем секретам

Важность с точки зрения ИБ

Архитектура «интеграция = пользователь» даёт ряд преимуществ для информационной безопасности:

  1. Принцип минимальных привилегий — каждая интеграция получает ровно тот доступ, который ей нужен. CI/CD для деплоя не имеет прав на ротацию, а бот ротации не видит секреты dev-окружения.

  2. Прозрачный аудит — все операции логируются с указанием пользователя, времени и типа действия. При инциденте можно точно определить, какая интеграция и когда получила доступ к секрету.

  3. Быстрое реагирование — при компрометации одной интеграции достаточно отозвать токены конкретной сервисной учётки, не затрагивая остальные.

  4. Разделение ответственности — DevOps-команда управляет сервисными учётками для инфраструктуры, а команда разработки — для своих сервисов.

Важно

Все операции с секретами (чтение, изменение, удаление) записываются в журнал аудита Пассворка. Это включает:

  • Кто выполнил операцию (имя пользователя / сервисной учётки)
  • Когда (timestamp)
  • Что именно было сделано (тип операции, ID записи)