0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: etcd, безопасность, kubernetes, application security</p>
1
<p>Теги: etcd, безопасность, kubernetes, application security</p>
2
<p>В этой статье поговорим о последнем уровне из<a>набора по безопасности</a>Kubernetes. Тут уместно ещё раз вспомнить "первую заповедь" докеровода: "Не храните secrets в докер-файлах". Но даже если мы не храним их в докер-images, мы храним их где-нибудь в Kubernetes, что тоже небезопасно.</p>
2
<p>В этой статье поговорим о последнем уровне из<a>набора по безопасности</a>Kubernetes. Тут уместно ещё раз вспомнить "первую заповедь" докеровода: "Не храните secrets в докер-файлах". Но даже если мы не храним их в докер-images, мы храним их где-нибудь в Kubernetes, что тоже небезопасно.</p>
3
<p>По умолчанию Kubernetes Secrets не шифруются, они просто кодируются, следовательно, любой человек может их прочитать, забрать себе и получить доступ к базе уже со своего компьютера. Но есть и хорошая новость: начиная с релиза 1.13, в Kubernetes стало поддерживаться шифрование secrets в etcd. Но если у вас есть не только Kubernetes, а какое-то ещё решение/приложение то возникает другая проблема: в etcd оно уже не полезет.</p>
3
<p>По умолчанию Kubernetes Secrets не шифруются, они просто кодируются, следовательно, любой человек может их прочитать, забрать себе и получить доступ к базе уже со своего компьютера. Но есть и хорошая новость: начиная с релиза 1.13, в Kubernetes стало поддерживаться шифрование secrets в etcd. Но если у вас есть не только Kubernetes, а какое-то ещё решение/приложение то возникает другая проблема: в etcd оно уже не полезет.</p>
4
<p>Да, у нас есть стандартный инструмент<strong>etcd</strong>, который: - давно на рынке; - безопасен; - поддерживает Dynamic secrets, о которых можно говорить долго.</p>
4
<p>Да, у нас есть стандартный инструмент<strong>etcd</strong>, который: - давно на рынке; - безопасен; - поддерживает Dynamic secrets, о которых можно говорить долго.</p>
5
<p>Но есть одно но:<strong>дружба Vault с Кубером чисто формальная</strong>. Главная проблема - автоматизация доставки Vault Secrets в поды (приходится это делать вручную). В принципе, проблема решаема, для чего существуют два паттерна: 1.<strong>Sidecar containers</strong>. Создаётся Sidecar-контейнер, запускаемый при инициализации подов. Паттерн не очень удобен тем, что нужно для каждого пода писать команды. 2.<strong>Custom resource definitions</strong>. Создаётся специальный IP-объект Vault Secret, который уже расшифровывается. Фактически, он динамически получает Secret из Vault’а и записывает его в нужные папки в поде.</p>
5
<p>Но есть одно но:<strong>дружба Vault с Кубером чисто формальная</strong>. Главная проблема - автоматизация доставки Vault Secrets в поды (приходится это делать вручную). В принципе, проблема решаема, для чего существуют два паттерна: 1.<strong>Sidecar containers</strong>. Создаётся Sidecar-контейнер, запускаемый при инициализации подов. Паттерн не очень удобен тем, что нужно для каждого пода писать команды. 2.<strong>Custom resource definitions</strong>. Создаётся специальный IP-объект Vault Secret, который уже расшифровывается. Фактически, он динамически получает Secret из Vault’а и записывает его в нужные папки в поде.</p>
6
<p>Вот, в принципе, и всё, осталось предложить вам список ссылок с полезными проектами для интеграции с Vault:</p>
6
<p>Вот, в принципе, и всё, осталось предложить вам список ссылок с полезными проектами для интеграции с Vault:</p>
7
<p>Читайте также по этой теме: •<a>Безопасность в Kubernetes. Docker Image Security</a>; •<a>Безопасность в Kubernetes: Host Level Security</a>; •<a>Безопасность в Kubernetes: Container Runtime Security</a>; •<a>Сетевая безопасность в Kubernetes</a>; •<a>Внутренняя безопасность в Kubernetes</a>.</p>
7
<p>Читайте также по этой теме: •<a>Безопасность в Kubernetes. Docker Image Security</a>; •<a>Безопасность в Kubernetes: Host Level Security</a>; •<a>Безопасность в Kubernetes: Container Runtime Security</a>; •<a>Сетевая безопасность в Kubernetes</a>; •<a>Внутренняя безопасность в Kubernetes</a>.</p>
8
8