В современной корпоративной среде количество паролей и ключей стремительно увеличивается, и управление секретами становится одной из основных задач в области кибербезопасности. По своей сути, управление секретами — это набор правил и инструментов, позволяющих контролировать доступ к конфиденциальной информации.
В более точном определении, это процесс централизованного хранения, управления и ротации конфиденциальных данных, которые приложения и сервисы используют для доступа к критически важным ресурсам. К таким секретам относятся пароли, SSH-ключи, API-ключи и ключи шифрования, токены доступа, сертификаты и любые другие параметры, обеспечивающие безопасность инфраструктуры.
По мере роста бизнеса ИТ-отделы и DevOps-команды сталкиваются с ситуацией, когда секретов становится слишком много, их сложно структурировать, контролировать и защищать. В реальных проектах секреты живут в конфиг-файлах, переменных окружения, скриптах, иногда в открытых репозиториях.
В этой статье мы расскажем, как на практике решали эти задачи с помощью Пассворка, и как теперь автоматизируем всё: от ротации до интеграции с пайплайнами.
Почему это важно
Защита конфиденциальной информации — ключевой приоритет для любого бизнеса. Секреты требуют строгого контроля на каждом этапе жизненного цикла: от создания до удаления. Современная система управления секретами даёт бизнесу реальную защиту и удобство работы с критичными данными.
Что получает компания с такой системой:
Централизованное хранение. Все пароли, ключи и токены сохраняются в едином защищённом хранилище, что предотвращает их попадание в открытые документы, скрипты или исходники, снижая риск утечек и несанкционированного доступа.
Гибкое управление доступом. Система позволяет индивидуально определять, кто и к каким секретам может обращаться — будь то отдельные сотрудники, группы или сервисные аккаунты. Это помогает реализовать принцип минимально необходимого доступа (least privilege) и уменьшает потенциальные точки атаки.
Полный контроль и прозрачность операций. Каждый запрос фиксируется: можно отследить, кто, когда и какие действия совершал. Аудит облегчает выполнение требований регуляторов и делает процессы безопасности максимально прозрачными.
Автоматизация ротации. Пароли и ключи регулярно обновляются автоматически — по расписанию или при обнаружении угрозы. Это экономит ресурсы ИТ-отдела и снижает вероятность использования устаревших или скомпрометированных данных.
Бесшовная интеграция с инфраструктурой и DevOps. Доступ к секретам осуществляется через API, CLI, SDK и плагины, что упрощает подключение системы к CI/CD пайплайнам, облачным платформам, контейнерам и базам данных.
Оперативное реагирование на инциденты. Централизованный подход позволяет быстро отозвать или заменить уязвимые секреты, минимизируя последствия инцидентов и предотвращая распространение угроз внутри компании.
При отсутствии единого решения секреты часто «гуляют» по конфигурационным файлам и исходному коду, что усложняет их обновление и повышает риск компрометации. Корпоративные менеджеры паролей решают эту задачу, однако не все из них поддерживают необходимую автоматизацию для современных DevOps-процессов.
Пассворк: больше, чем менеджер паролей
Пассворк начинался как корпоративный менеджер паролей — простой и удобный инструмент для хранения учётных данных. Но современным ИТ-командам этого мало: нужна автоматизация, интеграция, программный доступ к секретам. С выходом 7-й версии возможности Пассворка значительно расширились и вышли за рамки привычного «хранения паролей». Благодаря открытому API, Пассворк трансформировался в полноценную систему управления секретами.
В основе Пассворка лежат принципы и философия API-first. Это означает, что любая функция, доступная в пользовательском интерфейсе, также доступна и через REST API. Интерфейс API Пассворка открывает программный доступ ко всем функциям системы: управлению паролями, сейфами, папками, пользователями, ролями, ярлыками, вложенными файлами и журналом событий. Через API удобно автоматизировать выдачу и отзыв прав, обновлять пароли, интегрировать Пассворк в CI/CD-процессы и экспортировать логи.
Другими словами, Пассворк теперь сочетает в себе два полноценных продукта и направления:
Менеджер паролей — удобный пользовательский интерфейс для безопасного хранения и совместного использования учётных данных внутри команды.
-
Система управления секретами — программный доступ для разработчиков и администраторов через 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-коннектор, пример:
Получаем текущий пароль из Пассворка (get_item)
Генерируем новый безопасный пароль
Меняем пароль в базе данных (ALTER USER)
Обновляем запись в Пассворке (update_item)
Уведомляем команду о завершении
Псевдокод:
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: все пароли и сервисные ключи собираются в одной системе с единым интерфейсом. Это снижает затраты на поддержку, упрощает ротацию и делает безопасность прозрачной для ИТ-команд и разработки. Используя Пассворк как платформу управления секретами, компании получают защищённую и удобную инфраструктуру для своих приложений и сервисов.
densan
По процессу импортозамещения пришлось перейти а passboot на passwork.
Минусы:
в passbolt acl действует на уровне пароля, в passwork - на уровне сейфа/папки и это очень критично.
в passwork 7 добавили api, стало возможным выполнять административные функции через api, но почему-то в passwork-cli на Windows не работает обновление токена. Задал вопрос в проекте на гитхабе - без объяснений тикет закрыли.
не хватает подробностей по шифрации чтобы реализовать работу через api в своих проектах. В оф. манах написано или используй cli или коннектор.