В современной корпоративной среде количество паролей и ключей стремительно увеличивается, и управление секретами становится одной из основных задач в области кибербезопасности. По своей сути, управление секретами — это набор правил и инструментов, позволяющих контролировать доступ к конфиденциальной информации. 

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

По мере роста бизнеса ИТ-отделы и DevOps-команды сталкиваются с ситуацией, когда секретов становится слишком много, их сложно структурировать, контролировать и защищать. В реальных проектах секреты живут в конфиг-файлах, переменных окружения, скриптах, иногда в открытых репозиториях.

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

Почему это важно

Защита конфиденциальной информации — ключевой приоритет для любого бизнеса. Секреты требуют строгого контроля на каждом этапе жизненного цикла: от создания до удаления. Современная система управления секретами даёт бизнесу реальную защиту и удобство работы с критичными данными.

Что получает компания с такой системой:

  • Централизованное хранение. Все пароли, ключи и токены сохраняются в едином защищённом хранилище, что предотвращает их попадание в открытые документы, скрипты или исходники, снижая риск утечек и несанкционированного доступа.

  • Гибкое управление доступом. Система позволяет индивидуально определять, кто и к каким секретам может обращаться — будь то отдельные сотрудники, группы или сервисные аккаунты. Это помогает реализовать принцип минимально необходимого доступа (least privilege) и уменьшает потенциальные точки атаки.

  • Полный контроль и прозрачность операций. Каждый запрос фиксируется: можно отследить, кто, когда и какие действия совершал. Аудит облегчает выполнение требований регуляторов и делает процессы безопасности максимально прозрачными.

  • Автоматизация ротации. Пароли и ключи регулярно обновляются автоматически — по расписанию или при обнаружении угрозы. Это экономит ресурсы ИТ-отдела и снижает вероятность использования устаревших или скомпрометированных данных.

  • Бесшовная интеграция с инфраструктурой и DevOps. Доступ к секретам осуществляется через API, CLI, SDK и плагины, что упрощает подключение системы к CI/CD пайплайнам, облачным платформам, контейнерам и базам данных.

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

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

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

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

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

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

  1. Менеджер паролей — удобный пользовательский интерфейс для безопасного хранения и совместного использования учётных данных внутри команды.

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

    Инструменты автоматизации

    Python-коннектор

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

    Пример использования:

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'])

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

  • Все операции через простые методы вроде create_item, get_item, create_vault, что избавляет от ручной работы с HTTP-запросами

  • Криптография на клиенте, мастер-ключ не покидает вашу среду

  • Коннектор автоматически сохраняет и восстанавливает токены, а также обновляет истекший accessToken через refreshToken

  • Универсальный метод call() позволяет обращаться к любым эндпоинтам, даже если они не покрыты стандартными методами коннектора

Python-коннектор — это быстрый старт автоматизации и интеграции без лишних сложностей.

CLI-утилита

Для автоматизации в shell-скриптах и CI/CD мы разработали Passwork CLI — универсальный инструмент с двумя режимами работы:

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

  • api — Позволяет вызывать любой метод API Пассворка и получать ответ в JSON.

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

  • Пароли подставляются через переменные окружения и не хранятся на диске

  • Секреты автоматически подгружаются в пайплайне

  • Временные переменные позволяют выполнять задачи от имени сервисных учётных записей

  • Легко интегрируется с Ansible, Terraform, Jenkins и другими инструментами

Примеры использования

Резервное копирование 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

Запуск скрипта с несколькими секретами:

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 поддерживает фильтрацию по тегам и папкам, работу с пользовательскими полями, обновление токенов и гибкую настройку под ваши задачи.

Docker-контейнер

Для интеграции с CI/CD мы создали официальный Docker-образ passwork/passwork-cli. Он позволяет быстро запускать Passwork 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, docker-compose

  • Секреты легко пробрасываются между контейнерами

Как мы автоматизируем ротацию паролей

Регулярная смена паролей — базовое требование безопасности, но в ручном режиме это всегда риск и потеря времени. Пассворк позволяет полностью автоматизировать процесс ротации через 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: сервер никогда не получает доступ к секретам в открытом виде. Даже администратор с правами доступа к инфраструктуре не сможет прочитать ваши данные.

  • Серверное шифрование — все секреты хранятся в зашифрованном виде.

  • Клиентское шифрование (CSE) — для критичных данных. Секреты шифруются на клиенте, на сервер уходит только шифротекст. Мастер-ключ генерируется из мастер-пароля пользовател��.

Если Пассворк развёрнут в облаке или нужны жёсткие требования по безопасности — включайте CSE. Для внутренней сети и стандартных задач достаточно серверного шифрования.

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

API Пассворка использует пару токенов: accessToken и refreshToken.

  • Access-токен действует ограниченное время и нужен для запросов к API

  • Refresh-токен позволяет получить новый access-токен без повторной авторизации

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

Как повысить безопасность:

  • Создавайте отдельных технических пользователей для интеграций — минимальные права, только нужные сейфы и папки.

  • Ротируйте токены регулярно и ограничивайте срок их действия.

  • Храните токены в переменных окружения или секрет-хранилищах

  • Всегда используйте HTTPS

Выводы

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

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

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

Комментарии (1)


  1. densan
    27.09.2025 06:43

    По процессу импортозамещения пришлось перейти а passboot на passwork.

    Минусы:

    • в passbolt acl действует на уровне пароля, в passwork - на уровне сейфа/папки и это очень критично.

    • в passwork 7 добавили api, стало возможным выполнять административные функции через api, но почему-то в passwork-cli на Windows не работает обновление токена. Задал вопрос в проекте на гитхабе - без объяснений тикет закрыли.

    • не хватает подробностей по шифрации чтобы реализовать работу через api в своих проектах. В оф. манах написано или используй cli или коннектор.