
Содержание
- Что такое управление секретами
- Пассворк: больше, чем менеджер паролей
- API как основа интеграции
- Инструменты для разработчиков и DevOps
- Шифрование и модель Zero Knowledge
- Авторизация и токены
- Бизнес-кейсы
- Итоги
Что такое управление секретами
Управление секретами (secrets management) — это процесс централизованного хранения, управления и ротации конфиденциальных данных, которые приложения и сервисы используют для доступа к критически важным ресурсам. К таким секретам относятся пароли, SSH-ключи, API-ключи и ключи шифрования, токены доступа, сертификаты и любые другие параметры, обеспечивающие безопасность вашей инфраструктуры.
Почему это важно для бизнеса?
- Безопасное централизованное хранение секретов. Все конфиденциальные данные хранятся в едином защищённом репозитории, что исключает риск их размещения в открытых файлах, скриптах или исходном коде и минимизирует вероятность несанкционированного доступа и утечек.
- Гибкое управление доступом и делегирование прав. Система позволяет детально настраивать права доступа к каждому секрету на уровне пользователей, групп или сервисных аккаунтов, обеспечивая принцип минимальных привилегий (least privilege) и сокращая поверхность атаки за счёт ограничения доступа.
- Аудит и мониторинг обращений к секретам. Все операции с секретами фиксируются: кто, когда и к чему обращался, какие изменения были внесены. Это облегчает соответствие требованиям регуляторов и прозрачность процессов безопасности.
- Автоматизация ротации и обновления секретов. Регулярная автоматическая смена паролей, ключей и других секретов по заданному расписанию или при возникновении событий (например, компрометации) экономит время ИТ-специалистов.
- Интеграция с DevOps-процессами и инфраструктурными компонентами. Секреты доступны через API, CLI, SDK и плагины, что позволяет интегрировать систему управления секретами с CI/CD пайплайнами, облачными сервисами, контейнерными платформами и базами данных.
- Снижение рисков утечки и компрометации данных. Централизованный контроль и автоматизация процессов позволяют оперативно реагировать на инциденты, быстро отзывать и обновлять уязвимые секреты, предотвращая распространение угроз внутри корпоративной среды.
Без централизованного управления секреты часто оказываются в коде или файлах конфигураций, что резко повышает риск утечек и усложняет их ротацию. Корпоративные менеджеры паролей решают эту проблему, но не все из них поддерживают автоматизацию и программный доступ, необходимый для современных DevOps-процессов.
Пассворк: больше, чем менеджер паролей
Пассворк давно зарекомендовал себя как корпоративный менеджер паролей, но с выходом 7-й версии его возможности значительно расширились и вышли за рамки привычного «хранения паролей». Благодаря открытому API, Пассворк трансформировался в полноценную систему управления секретами.
Интерфейс API Пассворка обеспечивает программный доступ ко всем функциям веб-платформы: управлению паролями, сейфами, папками, пользователями и ролями, ярлыками, вложенными файлами, а также журналом событий. С помощью API можно автоматизировать процессы выдачи и отзыва прав доступа, обновления паролей, интеграции с CI/CD-процессами, а также экспортировать логи.
Другими словами, Пассворк теперь сочетает в себе два полноценных продукта и направления:
- Менеджер паролей — удобный пользовательский интерфейс для безопасного хранения и совместного использования учётных данных внутри команды.
- Система управления секретами — программный доступ для разработчиков и администраторов через REST-API, Python-коннектор, CLI и Docker-контейнер, позволяющие автоматизировать работу с секретами в скриптах, сервисах и DevOps-процессах.
Появление полноценного API выводит Пассворк на уровень специализированных систем управления секретами, таких как HashiCorp Vault. Теперь администраторы и разработчики могут использовать единое решение для хранения и управления паролями и секретами — нет необходимости поддерживать два разных продукта (отдельный менеджер паролей и отдельный Vault). При этом остаются привычные интерфейсы Пассворка: веб-клиент, мобильные приложения и браузерные расширения для пользователей, и мощный API — для разработчиков.
API как основа интеграции
API позволяет интегрировать Пассворк с внутренними системами компании, обеспечивая полный доступ ко всем функциям платформы. Всё, что можно выполнить через веб-интерфейс, доступно программно: создание, получение и обновление секретов, управление хранилищами, настройка пользователей и групп, работа с вложениями и просмотр журналов событий.
Для разработчиков и администраторов это означает максимальную гибкость: можно автоматически создавать сейфы для новых сотрудников, выполнять запланированную ротацию паролей сервисных учётных записей или интегрировать Пассворк с сервис-деском для выдачи временных доступов.
Инструменты для разработчиков и DevOps
Python-коннектор
Официальный Python-коннектор Пассворка избавляет разработчиков от необходимости погружаться в детали низкоуровневого взаимодействия с API и криптографией.
Ключевые преимущества:
- Простота интеграции. Все базовые операции сведены к методам вроде
create_item
,get_item
,create_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.
Режимы работы:
- exec — извлекает секреты, создаёт для них переменные окружения и запускает указанный процесс. Пароли нигде не сохраняются и доступны только во время выполнения.
- 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 получает пароль к базе данных без необходимости хранить его в коде или конфигурационных файлах.
Пример:
- В Пассворке создаётся запись
DB_PASSWORD
- В пайплайне запускается команда:
passwork-cli exec --password-id "<id_секрета>" --cmd "node server.js"
- CLI создаёт переменную
DB_PASSWORD
и запускаетnode server.js
. Приложение читает пароль изprocess.env.DB_PASSWORD
.
Аналогично можно передавать несколько секретов. Переменные окружения существуют только внутри процесса — после завершения они исчезают.
Автоматизация ротации паролей
Регулярная смена паролей снижает риск компрометации. Сценарий автоматизации с 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: сервер никогда не видит секреты в открытом виде. Существует два уровня защиты:
- Серверное шифрование — всё содержимое баз данных шифруется на сервере и защищено даже от администраторов.
- Клиентское шифрование (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-администраторов и разработчиков. Используя Пассворк в качестве менеджера секретов, компании получают простую и безопасную основу для своих приложений и сервисов.
Читайте также


