Пассворк: управление секретами и автоматизация доступа

Содержание

Что такое управление секретами

Управление секретами (secrets management) — это процесс централизованного хранения, управления и ротации конфиденциальных данных, которые приложения и сервисы используют для доступа к критически важным ресурсам. К таким секретам относятся пароли, SSH-ключи, API-ключи и ключи шифрования, токены доступа, сертификаты и любые другие параметры, обеспечивающие безопасность вашей инфраструктуры.

Почему это важно для бизнеса?

  • Безопасное централизованное хранение секретов. Все конфиденциальные данные хранятся в едином защищённом репозитории, что исключает риск их размещения в открытых файлах, скриптах или исходном коде и минимизирует вероятность несанкционированного доступа и утечек.
  • Гибкое управление доступом и делегирование прав. Система позволяет детально настраивать права доступа к каждому секрету на уровне пользователей, групп или сервисных аккаунтов, обеспечивая принцип минимальных привилегий (least privilege) и сокращая поверхность атаки за счёт ограничения доступа.
  • Аудит и мониторинг обращений к секретам. Все операции с секретами фиксируются: кто, когда и к чему обращался, какие изменения были внесены. Это облегчает соответствие требованиям регуляторов и прозрачность процессов безопасности.
  • Автоматизация ротации и обновления секретов. Регулярная автоматическая смена паролей, ключей и других секретов по заданному расписанию или при возникновении событий (например, компрометации) экономит время ИТ-специалистов.
  • Интеграция с DevOps-процессами и инфраструктурными компонентами. Секреты доступны через API, CLI, SDK и плагины, что позволяет интегрировать систему управления секретами с CI/CD пайплайнами, облачными сервисами, контейнерными платформами и базами данных.
  • Снижение рисков утечки и компрометации данных. Централизованный контроль и автоматизация процессов позволяют оперативно реагировать на инциденты, быстро отзывать и обновлять уязвимые секреты, предотвращая распространение угроз внутри корпоративной среды.

Без централизованного управления секреты часто оказываются в коде или файлах конфигураций, что резко повышает риск утечек и усложняет их ротацию. Корпоративные менеджеры паролей решают эту проблему, но не все из них поддерживают автоматизацию и программный доступ, необходимый для современных DevOps-процессов.

Пассворк: больше, чем менеджер паролей

Пассворк давно зарекомендовал себя как корпоративный менеджер паролей, но с выходом 7-й версии его возможности значительно расширились и вышли за рамки привычного «хранения паролей». Благодаря открытому API, Пассворк трансформировался в полноценную систему управления секретами.

Интерфейс API Пассворка обеспечивает программный доступ ко всем функциям веб-платформы: управлению паролями, сейфами, папками, пользователями и ролями, ярлыками, вложенными файлами, а также журналом событий. С помощью API можно автоматизировать процессы выдачи и отзыва прав доступа, обновления паролей, интеграции с CI/CD-процессами, а также экспортировать логи.

Другими словами, Пассворк теперь сочетает в себе два полноценных продукта и направления:

  1. Менеджер паролей — удобный пользовательский интерфейс для безопасного хранения и совместного использования учётных данных внутри команды.
  2. Система управления секретами — программный доступ для разработчиков и администраторов через REST-API, Python-коннектор, CLI и Docker-контейнер, позволяющие автоматизировать работу с секретами в скриптах, сервисах и DevOps-процессах.

Появление полноценного API выводит Пассворк на уровень специализированных систем управления секретами, таких как HashiCorp Vault. Теперь администраторы и разработчики могут использовать единое решение для хранения и управления паролями и секретами — нет необходимости поддерживать два разных продукта (отдельный менеджер паролей и отдельный Vault). При этом остаются привычные интерфейсы Пассворка: веб-клиент, мобильные приложения и браузерные расширения для пользователей, и мощный API — для разработчиков.

API как основа интеграции

API позволяет интегрировать Пассворк с внутренними системами компании, обеспечивая полный доступ ко всем функциям платформы. Всё, что можно выполнить через веб-интерфейс, доступно программно: создание, получение и обновление секретов, управление хранилищами, настройка пользователей и групп, работа с вложениями и просмотр журналов событий.

Для разработчиков и администраторов это означает максимальную гибкость: можно автоматически создавать сейфы для новых сотрудников, выполнять запланированную ротацию паролей сервисных учётных записей или интегрировать Пассворк с сервис-деском для выдачи временных доступов.

Инструменты для разработчиков и DevOps

Python-коннектор

Официальный Python-коннектор Пассворка избавляет разработчиков от необходимости погружаться в детали низкоуровневого взаимодействия с API и криптографией.

Ключевые преимущества:

  • Простота интеграции. Все базовые операции сведены к методам вроде create_itemget_itemcreate_vault, что избавляет от ручной работы с HTTP-запросами.
  • Безопасность на клиенте. Шифрование, расшифровка и работа с мастер-ключом выполняются в библиотеке, секреты защищены даже при работе с открытым API.
  • Управление сессиями. Коннектор автоматически сохраняет и восстанавливает токены, а также обновляет истекший accessToken через refreshToken.
  • Гибкость. Универсальный метод call() позволяет обращаться к любым эндпоинтам, даже если они не покрыты стандартными методами коннектора.

Для работы достаточно указать адрес сервера, установить токены и мастер-ключ, после чего можно создавать и получать секреты.

from passwork_client import PassworkClient

client = PassworkClient(host="https://passwork.example.com")
client.set_tokens("ACCESS_TOKEN", "REFRESH_TOKEN")  # передаём токены
client.set_master_key("MASTER_KEY")  # мастер-ключ для расшифровки

# создание хранилища и пароля
vault_id = client.create_vault(vault_name="DevOps", type_id="vault_id_type")
password_data = {
    "Name": "Database PROD", 
    "vaultId": vault_id,
    "title": "DB prod",
    "login": "admin",
    "password": "secure-password",
    "url": "https://db.example.com"
}
password_id = client.create_item(password_data)

# получение и использование пароля
secret = client.get_item(password_id)
print(secret['password'])

Все криптографические операции выполняются локально, а мастер-ключ никогда не покидает вашу среду.

CLI-утилита

Passwork CLI — командная утилита для получения секретов и работы с API из shell-скриптов и CI/CD.

Режимы работы:

  1. exec — извлекает секреты, создаёт для них переменные окружения и запускает указанный процесс. Пароли нигде не сохраняются и доступны только во время выполнения.
  2. api — выполняет произвольные методы API и выводит ответ в JSON.

Полезно для:

  • Безопасного подключения к базам данных и сервисам — пароль подставляется через переменные окружения и не хранится на диске.
  • Автоматизации развёртывания и CI/CD — секреты автоматически подгружаются в пайплайне;
  • Администрирования серверов — временные переменные позволяют выполнять задачи от имени сервисных учётных записей;
  • Интеграции с DevOps-инструментами — легко сочетается с Ansible, Terraform и другими решениями.

Для аутентификации можно использовать флаги (--host, --token, --master-key) либо переменные окружения PASSWORK_HOST, PASSWORK_TOKEN и PASSWORK_MASTER_KEY.

Пример exec
Резервное копирование PostgreSQL. CLI создаст переменную окружения PGPASSWORD и запустит pg_dump:

export PASSWORK_HOST="https://passwork.example.com"
export PASSWORK_TOKEN="your_access_token"
export PASSWORK_MASTER_KEY="your_master_key"

passwork-cli exec --password-id "5f8a7b6c9d0e1f2a3b4c5d6e" \
  pg_dump -h localhost -U username -d database > backup.sql

Пример multi-secret
Запуск скрипта, которому нужны три секрета:

passwork-cli exec \
  --password-id "db123,api456,storage789" \
  deploy.sh --db-pass=$DATABASE_PASSWORD --api-key=$API_KEY --storage-key=$STORAGE_KEY

Пример api
Получить список сейфов:

passwork-cli api --method GET --endpoint "v1/vaults"

CLI поддерживает фильтрацию по тегам и папкам, работу с пользовательскими полями, обновление токенов, временную деактивацию SSL-проверки (только для тестовой среды с флагом --no-ssl-verify).

Docker-контейнер

Для CI/CD подготовлен Docker-образ passwork/passwork-cli. Он содержит предустановленный CLI и запускается от непривилегированного пользователя.

Укажите переменные окружения и запустите команду:

docker run -it --rm \
  -e PASSWORK_HOST="https://passwork.example.com" \
  -e PASSWORK_TOKEN="your_access_token" \
  -e PASSWORK_MASTER_KEY="your_master_key" \
  passwork-cli exec --password-id "db_password_id" mysql -h db_host -u admin -p $DB_PASSWORD db_name

Образ удобен в пайплайнах Bitbucket или GitLab — достаточно указать переменные окружения и выполнить команду passwork-cli exec. Можно использовать docker-compose и пробрасывать секреты другим контейнерам.

Использование секретов в приложениях

CLI передаёт секреты через переменные окружения. Это упрощает интеграцию: веб-приложение на Node.js получает пароль к базе данных без необходимости хранить его в коде или конфигурационных файлах.

Пример:

  1. В Пассворке создаётся запись DB_PASSWORD
  2. В пайплайне запускается команда:
passwork-cli exec --password-id "<id_секрета>" --cmd "node server.js"
  1. CLI создаёт переменную DB_PASSWORD и запускает node server.js. Приложение читает пароль из process.env.DB_PASSWORD.

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

Автоматизация ротации паролей

Регулярная смена паролей снижает риск компрометации. Сценарий автоматизации с Python-коннектором:

  1. Получить текущий пароль из Пассворка (get_item)
  2. Сгенерировать новый пароль
  3. Изменить пароль в базе данных (ALTER USER)
  4. Обновить запись в Пассворке (update_item)
  5. Уведомить команду о завершении

Псевдокод:

from passwork_client import PassworkClient
import secrets
import psycopg2

def rotate_db_password(passwork_host, accessToken, refreshToken, master_key, password_id, db_params):
    client = PassworkClient(passwork_host)
    client.set_tokens(accessToken, refreshToken)
    client.set_master_key(master_key)
    
    secret = client.get_item(password_id)
    current_password = secret['password']
    new_password = secrets.token_urlsafe(32)
    
    conn = psycopg2.connect(
        dbname=db_params['db'], 
        user=db_params['user'],
        password=current_password, 
        host=db_params['host']
    )
    
    with conn.cursor() as cur:
        cur.execute(f"ALTER USER {db_params['user']} WITH PASSWORD '{new_password}'")
    conn.commit()
    
    client.update_item(password_id, {"password": new_password})
    print("Пароль успешно ротирован и обновлён в Пассворке")

Шифрование и модель Zero Knowledge

Пассворк реализует схему шифрования, соответствующую принципу Zero Knowledge: сервер никогда не видит секреты в открытом виде. Существует два уровня защиты:

  1. Серверное шифрование — всё содержимое баз данных шифруется на сервере и защищено даже от администраторов.
  2. Клиентское шифрование (client-side encryption, CSE) — можно включить для критичных данных: секреты шифруются на стороне клиента библиотеке клиента, на сервер отправляется только шифротекст. При включённом CSE пользователь вводит мастер-пароль, из него генерируется мастер-ключ, которым расшифровываются ключи сейфов и отдельных записей; благодаря этому даже компрометация сервера не раскрывает содержимое сейфов.

Если Пассворк развёрнут в изолированной сети, можно оставить лишь серверное шифрование. Важно помнить, что CSE стоит включать, если вы размещаете Пассворк в облаке или должны соответствовать строгим стандартам безопасности.

Авторизация и токены

API использует пару токенов — accessToken и refreshToken. Access-токен действует ограниченное время, refresh-токен позволяет получить новый access-токен без повторной аутентификации — Python-коннектор делает это автоматически.

Для безопасности рекомендуется:

  • Создавать отдельных пользователей для интеграций API и выдавать им только необходимые права (минимальные привилегии)
  • Назначать сервисным учёткам роль с доступом только к нужным сейфам и папкам
  • Регулярно ротировать токены и ограничивать срок их действия
  • Хранить токены в переменных окружения или секрет-хранилищах
  • Использовать HTTPS для всех запросов

Бизнес-кейсы

СценарийЦель/выгода
CI/CD и DevOpsАвтоматическая подстановка секретов в пайплайны GitLab/Bitbucket/Jenkins. Нет секретов в репозиториях, централизованная ротация.
Онбординг/оффбордингСоздание сейфов и выдача временного доступа новым сотрудникам; отзыв прав и смена паролей при увольнении.
Микросервисы и контейнерыКаждый сервис получает только нужные ему секреты через отдельную учётку. Масштабирование без копирования паролей.
Базы данныхПериодическая ротация паролей и ключей доступа; исключение статических паролей из конфигов.
Серверное администрированиеСкрипты Ansible или Terraform получают временные пароли через CLI, выполняют настройку и не сохраняют секреты.
Сервис-деск и временный доступAPI создаёт временные ссылки на пароли для подрядчиков; доступ автоматически отзывается.

Итоги

Пассворк эволюционировал из менеджера паролей в платформу управления секретами. Открытый API и сопровождающие инструменты (Python-коннектор, CLI и Docker-образ) позволяют получить программный доступ ко всем функциям и строить гибкую инфраструктуру, где секреты хранятся централизованно и выдаются по принципу минимальных привилегий.

Для администраторов — это удобное хранилище и инструмент автоматизации. Для разработчиков и DevOps — API и готовые решения для безопасной работы с конфиденциальными данными.

Пассворк может заменить отдельную систему Vault: теперь все пароли и сервисные секреты хранятся в одной системе с единым интерфейсом. Это снижает издержки на сопровождение, упрощает ротацию и делает безопасность понятной для IT-администраторов и разработчиков. Используя Пассворк в качестве менеджера секретов, компании получают простую и безопасную основу для своих приложений и сервисов.

Готовы попробовать и убедиться, насколько просто и безопасно можно управлять секретами? Протестируйте Пассворк бесплатно — оцените удобство контроля доступов и автоматизации работы с конфиденциальными данными.

Читайте также

Персональные данные 2025: новые правила для бизнеса
Новые правила 152-ФЗ и изменения 2025. Как бизнесу защитить персональные данные, избежать штрафов и соблюдать требования Роскомнадзора.
Пассворк 7.1: типы сейфов
Содержание * Что такое типы сейфов? * Как это работает? * Базовые типы сейфов * Преимущества типов сейфов * Управление типами сейфов * Миграция с предыдущих версий * Почему это важно Типы сейфов В Пассворк 7.1 управление доступом стало гибче благодаря системе типов сейфов. Типы сейфов решают главную проблему администраторов — как контролировать доступ к данным и
Почему бизнес выбирает расширенную версию Пассворка
Расширенная версия Пассворка — основа управления доступом. Она создана для компаний, которым важно не просто хранить пароли, а организовать безопасность, масштабирование и автоматизацию на уровне всей структуры. В расширенную версию включены все ключевые возможности: интеграция с корпоративными сервисами, централизованное управление ролями и правами, разделение доступа по типам сейфов, настройка репликации и