Рубрики
Uncategorized

Если вы не используете секретный инструмент управления, вы делаете это неправильно

Мнение об использовании секретов с помощью хранилища Hashicorp. Помечено DevOps, инфраструктурой, секретами, безопасности.

Управление 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»