This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
управление_секретами_в_сети_предприятия [2026/02/10 10:40] val [Управление секретами в сети предприятия] |
управление_секретами_в_сети_предприятия [2026/02/26 08:44] (current) val [Подготовка к вебинару] |
||
|---|---|---|---|
| Line 21: | 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 62: | 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 89: | 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 107: | Line 86: | ||
| ===== Подготовка к вебинару ===== | ===== Подготовка к вебинару ===== | ||
| - | * Удалить HashiCorp Vault | + | * Восстановить снимок, или Удалить проект в GitLab и все остальное |
| - | * Удалить проект в GitLab и в файловой системе | + | |
| - | * Удалить jq на server | + | |
| - | * Удалить sops на server | + | |
| <code> | <code> | ||
| docker stop my-vault | docker stop my-vault | ||
| + | docker rm my-vault | ||
| - | rm -rf /root/openvpn1/ /tmp/openvpn1/ | + | rm -rf /tmp/openvpn1/ |
| rm /usr/local/bin/sops | rm /usr/local/bin/sops | ||
| - | apt purge jq | + | apt purge jq python3-hvac git-filter-repo |
| </code> | </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> | ||
| + | |||