Files
netology-devops/src/homework/14-kubernetes-security/14.2/readme.md

2.9 KiB
Raw Blame History

Выполнение домашнего задания по теме "14.2. Синхронизация секретов с внешними сервисами. Vault"

Q/A

Задача 1

Работа с модулем Vault.

Запустить модуль Vault конфигураций через утилиту kubectl в установленном minikube

kubectl apply -f config/vault-pod.yml
pod/14.2-netology-vault created

Получить значение внутреннего IP пода

kubectl get pod 14.2-netology-vault -o json | jq -c '.status.podIPs'

Примечание: jq - утилита для работы с JSON в командной строке

[{"ip":"10.233.102.130"}]

Запустить второй модуль для использования в качестве клиента

kubectl run -i --tty fedora --image=fedora --restart=Never -- sh

Установить дополнительные пакеты

dnf -y install pip
pip install hvac
pip list
Package            Version
------------------ ---------
certifi            2022.12.7
charset-normalizer 2.1.1
gpg                1.17.0
hvac               1.0.2
idna               3.4
libcomps           0.1.18
pip                22.2.2
pyhcl              0.4.4
requests           2.28.1
rpm                4.18.0
setuptools         62.6.0
urllib3            1.26.13

Запустить интерпретатор Python и выполнить следующий код, предварительно поменяв IP и токен

import hvac
client = hvac.Client(
    url='http://10.10.133.71:8200',
    token='aiphohTaa0eeHei'
)
client.is_authenticated()

# Пишем секрет
client.secrets.kv.v2.create_or_update_secret(
    path='hvac',
    secret=dict(netology='Big secret!!!'),
)

# Читаем секрет
client.secrets.kv.v2.read_secret_version(
    path='hvac',
)

Предварительно необходимо создать файл vault.py, поместить скрипт в него и запустить:

python3 vault.py

Следующим шагом необходимо проверить, что секрет успешно записался в vault. Для этого будет выполнено два шага:

  • Выполнить port-forward до пода vault:

    kubectl port-forward pods/14.2-netology-vault 8200:8200
    
  • Не выключая консоль зайти в web-версию vault по адресу http://localhost:8200, авторизоваться и просмотреть все секреты в хранилище secrets:

    vault_ui_secret.png