управление_секретами_в_сети_предприятия

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
управление_секретами_в_сети_предприятия [2026/02/09 14:07]
val
управление_секретами_в_сети_предприятия [2026/02/26 08:44] (current)
val [Подготовка к вебинару]
Line 5: Line 5:
   * [[https://​www.civo.com/​learn/​managing-ssh-access-with-hashicorp-vault|Managing SSH access with Hashicorp Vault]]   * [[https://​www.civo.com/​learn/​managing-ssh-access-with-hashicorp-vault|Managing SSH access with Hashicorp Vault]]
   * [[https://​habr.com/​ru/​companies/​magnit/​articles/​745814/​|Как создавать Kubernetes секреты из Vault, используя external-secrets-operator]]   * [[https://​habr.com/​ru/​companies/​magnit/​articles/​745814/​|Как создавать Kubernetes секреты из Vault, используя external-secrets-operator]]
 +  * [[https://​habr.com/​ru/​companies/​nixys/​articles/​545188/​|Инъекция секретов из Vault в поды используя сайдкары Kubernetes]]
   * [[https://​habr.com/​ru/​articles/​653927/​|Используем Hashicorp Vault для хранения секретов]]   * [[https://​habr.com/​ru/​articles/​653927/​|Используем Hashicorp Vault для хранения секретов]]
  
Line 20: Line 21:
  
   * Тэги: ​   * Тэги: ​
- 
-===== Шаг 0. Инфраструктура ===== 
- 
-  * GitLab 
-  * Runner (shell ansible) на server 
  
 ===== Шаг 1. Что у нас есть, для начала ===== ===== Шаг 1. Что у нас есть, для начала =====
  
 +  * [[DevOps1. Основные инструменты]]:​ DNS + Vagrant (nodeN), GitLab + Runner + Ansible
   * [[Сервис Ansible#​Роль OpenVPN сервера]]   * [[Сервис Ansible#​Роль OpenVPN сервера]]
-<​code>​ +  ​* GitLab ​CI/CD [[Инструмент GitLab#​Пример shell ansible]]
-server:​~/​openvpn1#​ cat openvpn1/​tasks/​main.yml +
-</​code><​code>​ +
-- name: Ping +
-  ping: +
- +
-- name: Copy file server.key +
-  copy: +
-    src: server.key +
-    dest: /​etc/​ssl/​private/​server.key +
-    mode: '​0600'​ +
-</​code><​code>​ +
-server:​~/​openvpn1#​ cat inventory.yaml +
-</​code><​code>​ +
-... +
-    ansible_ssh_user:​ student +
-    ansible_ssh_pass:​ password +
-    ansible_sudo_pass:​ password +
-... +
-</​code><​code>​ +
-server:​~/​openvpn1#​ cat openvpn1.yaml +
-</​code><​code>​ +
-... +
-      #when: node_nets... +
-</​code>​ +
- +
-  ​* GitLab [[Инструмент GitLab#​Пример shell ansible]]+
  
 ===== Шаг 2. ansible-vault ===== ===== Шаг 2. ansible-vault =====
Line 61: Line 32:
   * [[Сервис Ansible#​ansible-vault]]   * [[Сервис Ansible#​ansible-vault]]
   * GitLab [[Инструмент GitLab#​Пример shell ansible]]   * GitLab [[Инструмент GitLab#​Пример shell ansible]]
 +
 +<​code>​
 +vagrant@nodeN:​~$ sudo rm /​etc/​ssl/​private/​server.key
 +
 +vagrant@nodeN:​~$ sudo less /​etc/​ssl/​private/​server.key
 +</​code>​
  
 Недостатки: ​ Недостатки: ​
Line 81: Line 58:
  
 Недостатки: ​ Недостатки: ​
-  - логин/​пароль "​лежат"​ в Vault в "​открытом"​ виде+  - логин/​пароль "​лежат"​ в Vault в "​открытом"​ виде ​(и передается в нашей инсталляции тоже:)
   - зная токен, их можно "​украсть"​ с любой системы,​ откуда доступен Vault   - зная токен, их можно "​украсть"​ с любой системы,​ откуда доступен Vault
  
Line 88: Line 65:
     * [[Hashicorp Vault#Vault auth token role]]     * [[Hashicorp Vault#Vault auth token role]]
     * Проводим curl тестирование из 3-го шага с server и gate     * Проводим curl тестирование из 3-го шага с server и gate
-    * Удаляем "​небезопасный" ​токен+    * Удаляем "​небезопасный" ​[[Hashicorp Vault#Vault token]]
     * Можно расширить bound_cidrs для auth/​token/​roles/​ansible-openvpn1-role и убедиться,​ что это не повлияет на существующий токен     * Можно расширить bound_cidrs для auth/​token/​roles/​ansible-openvpn1-role и убедиться,​ что это не повлияет на существующий токен
     * Используем этот токнен в inventory решения [[Сервис Ansible#​Ansible и Hashicorp Vault]]     * Используем этот токнен в inventory решения [[Сервис Ansible#​Ansible и Hashicorp Vault]]
 +
 +Недостатки: ​
 +  - файл с приватным ключом остался в открытом виде
  
 ===== Шаг 5. Hashicorp Vault Transit secrets engine ===== ===== Шаг 5. Hashicorp Vault Transit secrets engine =====
Line 99: Line 79:
  
   * GitLab [[Инструмент GitLab#​Пример shell ansible]]   * GitLab [[Инструмент GitLab#​Пример shell ansible]]
 +
 +===== Шаг 6. Удаление чувствительных данных (паролей,​ ключей) из репозитория =====
 +
 +  * [[Сервис Git#​Удаление чувствительных данных (паролей,​ ключей) из репозитория]]
  
 ===== Подготовка к вебинару ===== ===== Подготовка к вебинару =====
  
-  * Удалить проект в GitLab +  * Восстановить снимок,​ или ​Удалить проект в GitLab и все остальное 
-  * Удалить jq на gate и server + 
-  ​* Удалить sops на server+<​code>​ 
 +docker stop my-vault 
 +docker rm my-vault 
 + 
 +rm -rf /​tmp/​openvpn1/​ 
 + 
 +rm /​usr/​local/​bin/​sops 
 + 
 +apt purge jq python3-hvac git-filter-repo 
 +</​code>​ 
 + 
 + 
 +===== Черновик  ===== 
 + 
 +==== kubeN вместо nodeN ==== 
 +<​code>​ 
 +server:​~/​openvpn1#​ cat openvpn1/​tasks/​main.yml 
 +</​code><​code>​ 
 +- name: Ping 
 +  ​ping: 
 + 
 +- name: Copy file server.key 
 +  copy: 
 +    src: server.key 
 +    dest: /​etc/​ssl/​private/​server.key 
 +    mode: '​0600'​ 
 +</​code><​code>​ 
 +server:​~/​openvpn1#​ cat inventory.yaml 
 +</​code><​code>​ 
 +... 
 +    ansible_ssh_user:​ student 
 +    ansible_ssh_pass:​ password 
 +    ansible_sudo_pass:​ password 
 +... 
 +</​code><​code>​ 
 +server:​~/​openvpn1#​ cat openvpn1.yaml 
 +</​code><​code>​ 
 +... 
 +      #when: node_nets... 
 +</​code>​ 
 + 
управление_секретами_в_сети_предприятия.1770635257.txt.gz · Last modified: 2026/02/09 14:07 by val