Криптовалютные инструменты

 

В рамках текущей серии мы глубоко погружаемся в структуру, использование и преимущества различных криптовальных инструментов для DevOps.  Самая сложная часть любой системы управления секретами, использовать ее последовательно.  Разработчики часто записывают учетные данные во временный файл, забывают об этом и передают секрет в репозиторий.  В других ситуациях они могут повторно использовать учетные данные или просто использовать слишком слабый пароль для обеспечения реальной безопасности.  Учетная информация — это только значимая безопасность, если она правильно и последовательно управляется.  Это включает проверку учетных данных, чтобы отозвать пропущенные или стареющие ключи и управлять доступом, когда разработчики или системы выходят в сеть или выходят в автономный режим.  Сохранение  секретных данных сложнее, чем просто использование шифрования;  Здесь появляются инструменты вроде Vault от HashiCorp.

HashiCorp Vault

В отличие от Credstash или git-crypt, HashiCorp Vault — это инструмент для управления гораздо более простым секретом.  Vault также поддерживает отмену ключей, восстановление учетных данных, доступ к аудиту и «лизинг» учетных данных в течение ограниченного периода времени.  Кроме того, Vault поддерживает создание учетных данных непосредственно в защищенных ресурсах.  На практике это означает, что Vault может управлять и создавать учетные данные AWS, базы данных SQL и пароли, ключи SSH и т. д.  Как и другие инструменты, которые мы рассмотрели до сих пор, Vault является полностью открытым исходным кодом.  Вы можете разместить его в своей собственной инфраструктуре и полностью управлять средой.

 

DevOps Use Case

HashiCorp Vault — настоящий швейцарский армейский нож для управления учетными данными для DevOps.  Vault может управлять учетными данными для ресурсов AWS, HashiCorp Consul, RabbitMQ и различными механизмами баз данных.  Он также может управлять учетными данными SSH в режимах, которые позволяют использовать ключи с централизованной подпиской, учетные данные с возможностью динамического сдачи в аренду (и _expiring_) или даже ключи в паре с одноразовым паролем.  В хранилище хранятся все учетные данные, зашифрованные;  Они безопасно защищены и должны быть разблокированы по требованию либо разработчиками, либо потребителями.  Чтобы разблокировать учетные данные, разработчик или служба должны пройти аутентификацию в Vault с использованием одного из своих сконфигурированных серверов Auth (т. Е. Роли экземпляра EC2, сертификата TLS или пары имени пользователя / пароля).  Наконец, Vault регистрирует каждый запрос на сервере внутри страны.  Менеджеры могут создавать журналы аудита для отслеживания, когда члены команды создают, изменяют или используют учетные данные.  Для простоты Vault поставляется с несколькими бэкэндами для аудита питания.  Менеджеры могут просматривать файлы напрямую или записывать журналы в централизованную службу, например Datadog.

Хорошее и плохое.

Самое большое преимущество Vault — также его самый большой недостаток: сложность.  Vault — это масштабный проект, который поддерживает гибкость в плане реализации.  Вы можете обеспечить несколько форм секретов, включить различные рабочие процессы аутентификации и интегрировать их с разрозненными базами данных.  С одной стороны, это дает вам возможность построить систему, которая отлично работает для вашей команды.  С другой стороны, это означает, что вы только когда-либо используете подмножество функций, доступных с инструментом.  Даже если вы никогда не ссылаетесь на все функциональные возможности Vault, все остальные серверы, интерфейсы и точки доступа все еще существуют.  Неправильная конфигурация на вашем конце может легко привести к тому, что эти неиспользуемые элементы хранилища могут быть недоступны людям, которым не нужно иметь доступ.  Кроме того, Vault имеет ту же самую основную слабость, что и другие инструменты управления криптосистемами: вам нужен способ отправки «секретного нуля» на сервер для настройки начальной загрузки.  Vault делает некоторые попытки решить эту проблему с помощью аутентификации «AppRole», но этот подход не обязательно подходит для сред, требующих сильной секретности.

Если вы знакомы с HashiCorp, вы знаете, что они распространяют несколько инструментов, все из которых направлены на то, чтобы сделать отладки более удобными.  Vagrant поддерживает местное развитие.  Consul поддерживает обнаружение сервисов.  Terraform поддерживает автоматическое предоставление ресурсов в облаке.  Vault — еще один компонент обширной экосистемы, которая хорошо интегрируется с существующими инструментами HashiCorp.  Если вы уже используете свою платформу и утилиты, используйте HashiCorp Vault.  В зависимости от того, где вы используете Vault, могут быть и другие варианты.  Ansible также имеет продукт под названием Vault, который может использоваться для распространения секретов во время подготовки сервера.  Docker имеет несколько вариантов управления контейнерными учетными данными — Docker Swarm имеет свою собственную секретовую инфраструктуру, как и Kubernetes.  В конечном счете, выбор инструмента зависит полностью от созданного вами приложения и среды, в которую вы развернули.  С этой целью на следующей неделе мы поговорим о менее связанных приложениях и рассмотрим, как секреты управляются локально в Java Keystore.

 

Поделиться с друзьями

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *