Vault with k8s v2: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
Строка 25: Строка 25:
 
=Настройка Vault=
 
=Настройка Vault=
 
==Настройка со стороны k8s==
 
==Настройка со стороны k8s==
  +
===Сервисный аккаунт===
  +
  +
Это аккаунт с которым Vault подключается к API k8s для валидации JWT<BR>
  +
Этот аккаунт отличается от того который используется для запуска POD
  +
  +
<PRE>
  +
---
  +
apiVersion: v1
  +
kind: ServiceAccount
  +
metadata:
  +
name: vault-token-review-service-account
  +
namespace: kilda
  +
</PRE>

Версия 13:07, 9 февраля 2022

Авторизация K8S POD в Vault

Постановка задачи

  • Получать "секреты" из Vault при этом не передавая в POD пароли, токены или другую секретную информацию

Предварительны условия

  • Установлен и настроен Vault

(базовая настройка - https://noname.com.ua/mediawiki/index.php/Vault_Basic_Setup)

  • кластер Kubernetes установлен и настроен

Принципы работы

  1. Создается один или несколько Service Account
  2. POD запускается в определенном Service Account
  3. POD может воспользоваться токеном этого Service Account
  4. В качестве входных данных POD получает НЕ СЕКРЕТНУЮ информацию
    1. Адрес Vault в переменной окружения VAULT_ADDR
    2. Имя роли в переменной окружения VAULT_K8S_ROLE
  5. POD авторизуется в VAULT под ролью переданной в переменной VAULT_K8S_ROLE используя для этого JWT принадлежащий Service Account
  6. Vault настроен на проверку прав токена PODs в API K8S (Сам процесс VAULT использует ДРУГОЙ сервисный аккаунт, отличный от того под которым запускается POD для проверки токена PODa)
  7. После успешной авторизации POD может читать "секреты" из VAULT согласно политик которые привязаны к роле (политики и роли тут - это объекты в Vault)


Настройка Vault

Настройка со стороны k8s

Сервисный аккаунт

Это аккаунт с которым Vault подключается к API k8s для валидации JWT
Этот аккаунт отличается от того который используется для запуска POD

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: vault-token-review-service-account
  namespace: kilda