Vault with k8s v2: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
Строка 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> |
Версия 12:07, 9 февраля 2022
Авторизация K8S POD в Vault
Постановка задачи
- Получать "секреты" из Vault при этом не передавая в POD пароли, токены или другую секретную информацию
Предварительны условия
- Установлен и настроен Vault
(базовая настройка - https://noname.com.ua/mediawiki/index.php/Vault_Basic_Setup)
- кластер Kubernetes установлен и настроен
Принципы работы
- Создается один или несколько Service Account
- POD запускается в определенном Service Account
- POD может воспользоваться токеном этого Service Account
- В качестве входных данных POD получает НЕ СЕКРЕТНУЮ информацию
- Адрес Vault в переменной окружения VAULT_ADDR
- Имя роли в переменной окружения VAULT_K8S_ROLE
- POD авторизуется в VAULT под ролью переданной в переменной VAULT_K8S_ROLE используя для этого JWT принадлежащий Service Account
- Vault настроен на проверку прав токена PODs в API K8S (Сам процесс VAULT использует ДРУГОЙ сервисный аккаунт, отличный от того под которым запускается POD для проверки токена PODa)
- После успешной авторизации POD может читать "секреты" из VAULT согласно политик которые привязаны к роле (политики и роли тут - это объекты в Vault)
Настройка Vault
Настройка со стороны k8s
Сервисный аккаунт
Это аккаунт с которым Vault подключается к API k8s для валидации JWT
Этот аккаунт отличается от того который используется для запуска POD
--- apiVersion: v1 kind: ServiceAccount metadata: name: vault-token-review-service-account namespace: kilda