Управление Secrets относится к инструментам и методам управления учетными данными цифровой аутентификации (секретов), включая пароли, ключи, API и токены для использования в приложениях, услугах, привилегированных счетах и других конфиденциальных частях ИТ -экосистемы.
В то время как управление секретами применимо на всем предприятии, термины Секретов и Управление секретами чаще всего упоминаются в ИТ о средах, инструментах и процессах DevOps.
«Три могут хранить секрет, если двое из них мертвы». — Бенджамин Франклин, Almanack Бедного Ричарда
Управление и обмен секретами является сложной задачей. Существуют различные среды со многими услугами, где каждый должен аутентифицировать себя.
Если вы работаете в операционной команде, вы явно столкнулись с секретом, приверженным репозиторию GIT в какой -то момент. Даже если репозиторий является частным, это большой нет-нет. Если кто -то случайно меняет репозиторий, чтобы быть публичным, или раздвинуть файл с секретами общественного репозитория, обратно нет. Секрет будет там в дикой природе.
Прежде чем продолжить, я хочу задать вам несколько вопросов:
Где ваша организация хранит свои конфиденциальные данные? Это в зашифрованном файле? База данных? Общий инструмент, такой как 1Password?
Кто может получить к нему доступ?
Насколько легко добавить новый секрет или обновить существующий?
Вы управляете своими секретами или им управляют?
Hashicorp Vault
Hashicorp Vault-это надежное секретное управление с открытым исходным кодом. Он служит секретным репозиторием с списками управления доступом, аудитом и доступом TTL к секретам. Он также поддерживает различные механизмы аутентификации и бэкэнды для хранения.
Vault сохраняет ваши секреты, зашифрованные на диске и на транзите. У него есть простой API для общения и отличную документацию. Веб-сайт представляет два основных применения использования:
Управление секретами : Центрально храните, доступ и распространять динамические секреты, такие как токены, пароли, сертификаты, клавиши шифрования.
Защита данных : Держите данные приложения безопасными с помощью централизованного управления ключами и простых API для шифрования данных.
Это дает вам центральное место для безопасного хранения секретов. Определите, кто может получить доступ к тому, что с аудитом на операции. Используйте недолговечные токены, чтобы уменьшить воздействие в случае раскрытия секретов. Имеет отличные API, которые вы можете использовать для автоматизации процессов.
Серьезно относится к своему бизнесу серьезно. Его архитектура немного сложна, поэтому давайте быстро рассмотрим компоненты и объясним их простыми терминами.
Секреты пути
Внутри хранилища, секреты, хранящиеся в пути файловой системы, похожей на путь. Каждый секрет структурирован как объект JSON, с парами ключей. Эти файлы версии и сохраняют свою историю (см. Двигатель KV Secrets)
Политика
Vault использует политики для определения мелкозернистого контроля доступа. Политика сделана из списка путей (с поддержкой Regex). Затем к токене прилагается политика и определяет, какие секреты могут получить доступ к токену и какие действия он может выполнять (создать, читать, обновить, удалить).
Аутентификация и разрешение
Мы используем термин аутентификацию для обозначения первой фазы процесса входа в систему. Например, пользователь предоставляет правильное имя пользователя и пароль для аутентификации. Если учетные данные соответствуют, пользователь аутентифицируется.
Адворная часть идет дальше. Он определяет, к чему есть аутентифицированный пользователь.
Чтобы выполнить операции в хранилище, пользователь должен сначала аутентифицировать подлинность. Убежище называет это Аутентификация Бэкэнды Анкет Это список Методы аутентификации Пользователь может использовать для аутентификации.
Самый простой вариант-токен, где вы выполняете операцию входа в систему, используя предварительно определенный токен, чтобы получить доступ. Это плохая идея. Есть лучшие варианты.
В хранилище есть SSO (OIDC) интеграция. Люди в организации могут получить доступ, используя свои учетные записи Azuread или Google. После того, как вы настроите его, каждый, у кого есть учетная запись, может получить доступ к Vault! Вам не нужно управлять учетными данными для каждого человека в отдельности.
Как только пользователь входит в систему, политики, применяемые к его учетной записи или группам в организации, применяются к его токену. Это определяет, что он может сделать в хранилище.
Поток
За исключением аутентификации на основе токенов, все остальные методы работают одинаково. Сначала вы предоставляете свои учетные данные (имя пользователя/пароль, SSO и т. Д.), Чтобы выполнить действие входа в систему. В обмен, хранилище возвращает временный токен Чтобы вы могли использовать в последующих вызовах API. Временный токен определяется его атрибутами — срок службы, он возобновляется и т. Д.
При использовании пользовательского интерфейса или CLI эти вещи происходят за сценой. Тем не менее, если вы используете API HTTP, вам нужно будет выполнить действие входа в систему и взять токен, возвращенный Vault.
Это новая эра. Разработчики теперь могут читать и добавлять секреты сами по себе и беспрепятственно делиться ими. Это увеличивает скорость обеих команд и повышение безопасности в качестве побочного эффекта. Например, когда сотрудник покидает компанию, его доступ легко отменяется. Или использование коротких токенов вместо статических паролей.
CI/CD трубопроводы
Платформа развертывания также должна получить доступ к Vault. Во время сборка и развертывание Процессы, платформа может получить секреты, используя Applole Метод аутентификации. Метод Applole дает вам возможность настроить тип доступа к приложениям. Этот тип должен иметь короткое время Так что это бесполезно после процесса развертывания.
Мы можем сделать еще один шаг вперед. Теперь, когда у нас есть централизованный магазин Secrets с API, мы можем построить работу Дженкинса, которая генерирует секреты и подтолкнуть их к хранилищу. Это формализует процедуру и предотвращает скромные человеческие ошибки, такие как слабые пароли.
Увеличить команды производительность
По мере роста команды разработчиков, без подходящего времени инструмента будет потрачено здесь. Никто не любит ждать что -то, чтобы протестировать что -то только потому, что у них еще нет пароля. Сколько времени здесь проводится? Это может быть решено путем .. с помощью правильного инструмента для работы.
Наличие интерфейса для чтения и добавления секретов удалило бы труд технического обслуживания.
Резюме
Использование инструмента управления секретами имеет многочисленные преимущества, но я полагаю, что большинство из них невидится. На первый взгляд, это облегчает процесс добавления или обновления секрета и управления единым доступом к ним, как Dev, так и OPS. Замена секрета становится легкой задачей для операций.
Это обеспечивает все это при сохранении стандартов высокой безопасности и аудита. Он представляет API для автоматизации пугающего труда управления ими самостоятельно, используя менее сложный механизм, такой как файлы или базу данных.
Он поднимает ваши секреты на следующий уровень, и я не касался более продвинутых возможностей, которые обладает этим инструментом (например, динамические секреты и метод аутентификации AWS). Если вы заинтригованы, проверьте документацию.
Новые возможности, введенные для автоматизации процессов, не должны рассматриваться легко.
Как вы управляете своими секретами?
Оригинал: «https://dev.to/chen/if-you-don-t-use-a-secret-management-tool-you-re-doing-it-wrong-3d4b»