Как упомянул @Rico, разоблачая секреты как в Убежище, так и в Кубернетесе, в первую очередь побеждает цель использования Убежища.
В Vault данные зашифрованы (транзит / отдых), и вы можете обеспечить детальный контроль над доступом к каким данным.Предоставление данных в Vault объекту Kubernetes Secret, который в основном ограничен кодировкой base64, в значительной степени уничтожит величайшее преимущество Vault , которое заключается в защите вашей инфраструктуры и единственной сущности, отвечающей за управление вашими секретами.
Vault - потрясающий инструмент, но, на мой взгляд, он может стать более сложным для конфигураций не-dev, так как вам придется подключать подобные Consul, чтобы вы могли иметь постоянное внутреннее хранилище, поэтомуиспользование архитектурно-распределенного шаблона, такого как шаблон коляски , также может быть крайне излишним и вообще не рекомендуется.
- Но с его помощью вы могли бы создать экземпляр хранилища, «живущий» в том же модуле Pod, что и ваш «основной» контейнер, что позволило бы использовать службу шифрования, предоставляемую Vault, но мы бы связали жизненный цикл Vault.к жизненному циклу стручка.
- При таком подходе нам потребуется иметь экземпляр Vault на каждом модуле на случай, если мы планируем получить доступ к секретной информации, что только сделает систему чрезвычайно сложной.При таком подходе мы могли бы разделить секретную информацию, требуемую для каждого объекта, в нескольких экземплярах хранилища и, следовательно, распространять секретную информацию нашей инфраструктуры в нескольких местах, но мы продолжаем увеличивать сложность управления нашей инфраструктурой.
Так что я определенно понимаю, что попытка найти способ получить секретную информацию, необходимую для стручка рядом с ним, может показаться заманчивой, особенно простым способом, но это определенно нарушит цель, если ее просто оставить полностью незашифрованной.
При этом не нужно просто создавать контроллер Vault, который будет отвечать за взаимодействие с Vault и будет отвечать за запросы Vault для Wrapped Tokens, которые могут временно предоставить доступ к определеннымсекретная информация, после того как она была развернута контейнером init внутри Pod?Это из-за дополнительного времени, необходимого для запуска Pod, так как нам нужно выполнить некоторые ранние вызовы, чтобы получить Wrapped Token?Или это из-за дополнительной задержки выполнения дополнительных вызовов всякий раз, когда необходимо запросить секретные данные из Vault?
Всякий раз, когда я думаю об идее интеграции Kubernetes и Vault, я обычно склоняюсь к мысли оследующий прототип, созданный Келси Хайтауэр, объяснил здесь .