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

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
Строка 16: Строка 16:
 
5 Vault возвращает токе с политиками назначенными на роль <BR>
 
5 Vault возвращает токе с политиками назначенными на роль <BR>
 
5. POD читает из Vault используя полученный токен <BR>
 
5. POD читает из Vault используя полученный токен <BR>
  +
  +
<PRE>
  +
+-------------------------------------------------------------------------------------------------------------------------------+
  +
| Google Cloud Engine |
  +
| |
  +
| |
  +
| +-----------------------------------------------------------+ |
  +
| | K8S Cluster (in GKE) | |
  +
| | | |
  +
| | | |
  +
| | +---------------------------------------------------+ | |
  +
| | | POD | | |
  +
| | | spec: | | |
  +
| | | serviceAccountName: k8s-test-service-account | | |
  +
| | | ... | | |
  +
| | | containers: | | |
  +
| | | - name: container-name | | |
  +
| | | image: ... | | +-------------------+ |
  +
| | | imagePullPolicy: Always | | | VM Instance | |
  +
| | | env: | | | | |
  +
| | | - name: VAULT_K8S_ROLE | | | +------------+ | |
  +
| | | value: k8s-test-role | ---|-->---> Token Request for role ->-->-->---| | Vault | | |
  +
| | +---------------------------------------------------+ | * POD's SA JWT | | Process | | |
  +
| | | * Role Name | | | | |
  +
| | | | | | | |
  +
| | +--------------------+ | Verify POS's Service Account JWT | | | | |
  +
| | | K8S API Endpoint |<--------<--------<----------------|-( auth with Vault's Service Account )-<--| | | | |
  +
| | +--------------------+ | | +------------+ | |
  +
| | | | | |
  +
| +-----------------------------------------------------------+ +-------------------+ |
  +
| |
  +
+-------------------------------------------------------------------------------------------------------------------------------+
  +
</PRE>
   
 
=Ссылки=
 
=Ссылки=

Версия 19:34, 29 января 2019


Авторизация контейнеров/PODов в Hashicorp Vault

Задача - использовать сервисные аккаунты кубернетиса для авторизации а Hashicorp Vault

Схема работы

1. Создается сервисный аккаунт
2. Запускается POD с этим сервисным аккаунтом
3. Под получает адрес Vault (в моем случае - вычитывает из Consul но это не принципиально)
4. Авторизуется в Vault под определенной ролью используя JWT
5 Vault возвращает токе с политиками назначенными на роль
5. POD читает из Vault используя полученный токен

+-------------------------------------------------------------------------------------------------------------------------------+
| Google Cloud Engine                                                                                                           |
|                                                                                                                               |
|                                                                                                                               |
| +-----------------------------------------------------------+                                                                 |
| | K8S Cluster (in GKE)                                      |                                                                 |
| |                                                           |                                                                 |
| |                                                           |                                                                 |
| |  +---------------------------------------------------+    |                                                                 |
| |  | POD                                               |    |                                                                 |
| |  |   spec:                                           |    |                                                                 |
| |  |     serviceAccountName: k8s-test-service-account  |    |                                                                 |
| |  |     ...                                           |    |                                                                 |
| |  |     containers:                                   |    |                                                                 |
| |  |     - name: container-name                        |    |                                                                 |
| |  |       image: ...                                  |    |                                          +-------------------+  |
| |  |       imagePullPolicy: Always                     |    |                                          | VM Instance       |  |
| |  |       env:                                        |    |                                          |                   |  |
| |  |       - name: VAULT_K8S_ROLE                      |    |                                          |    +------------+ |  |
| |  |         value: k8s-test-role                      | ---|-->---> Token Request for role ->-->-->---|    | Vault      | |  |
| |  +---------------------------------------------------+    |   * POD's SA JWT                         |    | Process    | |  |
| |                                                           |   * Role Name                            |    |            | |  |
| |                                                           |                                          |    |            | |  |
| |  +--------------------+                                   |  Verify POS's Service Account JWT        |    |            | |  |
| |  | K8S API Endpoint   |<--------<--------<----------------|-( auth with Vault's Service Account )-<--|    |            | |  |
| |  +--------------------+                                   |                                          |    +------------+ |  |
| |                                                           |                                          |                   |  |
| +-----------------------------------------------------------+                                          +-------------------+  |
|                                                                                                                               |
+-------------------------------------------------------------------------------------------------------------------------------+

Ссылки