This is an old revision of the document!
Управление секретами в сети предприятия
Реклама
Что бы хранить что-то в секрете, или управлять доступом, нужно знать другой секрет. Но, как это сделать в автоматизированных системах предприятия? Вот откуда берутся пароли в файлах конфигурации/скриптах и не зашифрованные приватные ключи. Теперь все это окажется в прошлом, как решить дилемму “курицы и яйца”, при использовании чувствительных данных в пайплайнах предприятия, Вы узнаете на нашем вебинаре
Техническое задание
Развернуть HashiCorp Vault и Mozilla Sops для работы с секретами предприятия
Интегрировать их с пайплайнами Ansible, Gitlab и Kubernetes
Запись вебинара
Шаг 1. Что у нас есть, для начала
Шаг 2. ansible-vault
vagrant@nodeN:~$ sudo less /etc/ssl/private/server.key
Недостатки:
если сменится пароль на узлы, надо перешифровывать значения в inventory
ключ шифрования используется в “явном” виде и может быть “украден”
~/openvpn1# ansible-vault decrypt openvpn1/files/server.key
Шаг 3. Hashicorp Vault KV secrets engine
Недостатки:
логин/пароль “лежат” в Vault в “открытом” виде (и передается в нашей инсталляции тоже:)
зная токен, их можно “украсть” с любой системы, откуда доступен Vault
Шаг 4. Hashicorp Vault Vault auth token role
-
Проводим curl тестирование из 3-го шага с server и gate
Удаляем “небезопасный” токен
Можно расширить bound_cidrs для auth/token/roles/ansible-openvpn1-role и убедиться, что это не повлияет на существующий токен
-
Шаг 5. Hashicorp Vault Transit secrets engine
Шаг 6. Удаление чувствительных данных (паролей, ключей) из репозитория
Подготовка к вебинару
docker stop my-vault
? rm -rf /root/openvpn1/ /tmp/openvpn1/
rm /usr/local/bin/sops
apt purge jq
Черновик
kubeN вместо nodeN
server:~/openvpn1# cat openvpn1/tasks/main.yml
- name: Ping
ping:
- name: Copy file server.key
copy:
src: server.key
dest: /etc/ssl/private/server.key
mode: '0600'
server:~/openvpn1# cat inventory.yaml
...
ansible_ssh_user: student
ansible_ssh_pass: password
ansible_sudo_pass: password
...
server:~/openvpn1# cat openvpn1.yaml
...
#when: node_nets...