По-високото използване на технологията, по-голямата възможна заплаха за сигурността. Типична настройка на Ansible изисква да подадете „Тайни“. Тези тайни могат да бъдат буквално всичко, пароли, API маркери, SSH публични или частни ключове, SSL сертификати и др. Как да опазим тези тайни в безопасност? Ansible предоставя функция, наречена Ansible Vault.
В този блог ще демонстрирам как да използвам Ansible Vault и ще разгледам някои от най-добрите практики за опазване на данните.
Теми, обхванати в този блог:
- Какво е Ansible Vault?
- Защо да използвам Ansible Vault?
- Създаване на шифрован файл
- Редактиране на шифровани файлове
- Преглед на шифрован файл
- Повторно въвеждане на парола за трезора
- Шифроване на нешифровани файлове
- Дешифриране на шифровани файлове
- Криптиране на специфични променливи
- Дешифриране на шифровани файлове по време на изпълнение
- Използване на идентификатор на трезора
Ако искате да овладеете DevOps, ' разбира се ще бъде вашата опция за преминаване.
Какво е Ansible Vault?
Наличието на инфраструктура като код може да представлява заплаха от излагане на вашите чувствителни данни на света, което да доведе до нежелани проблеми със сигурността. Ansible Vault е функция, която ви позволява да запазите всичките си тайни в безопасност. Той може да шифрова цели файлове, цели YAML плейбуци или дори няколко променливи. Той осигурява средство, където можете не само да шифровате чувствителни данни, но и да ги интегрирате във вашите книги за игри.
Vault е реализиран с гранулиране на ниво файл, където файловете са изцяло криптирани или изцяло некриптирани. Той използва същата парола за криптиране, както и за дешифриране на файлове, което прави използването на Ansible Vault много удобно за потребителя.
Защо да използвам Ansible Vault?
Тъй като Ansible се използва за автоматизация, има голяма вероятност книгите за игра да съдържат определени идентификационни данни, SSL сертификати или други чувствителни данни. Запазването на такива чувствителни данни като обикновен текст е лоша идея. Един грешен ангажимент към кражба на GitHub или лаптоп може да причини на организацията огромна загуба. Тук в картината се появява Ansible vault. Това е чудесен начин да имате инфраструктура като код, без да правите компромиси със сигурността.
Да предположим, че имаме книга за игри, която предоставя вашия екземпляр EC2 на AWS. Трябва да предоставите вашия идентификационен номер на ключа за достъп на AWS и секретния ключ на AWS в книгата за игра. Вие не споделяте тези ключове с други по очевидни причини. Как ги поддържате неекспонирани? Има два начина - или шифровайте тези две променливи и ги вградете в книгата за игри, или шифровайте цялата книга за игра.
Това беше само един от сценариите, при които може да се използва ansible vault. Можем или да шифроваме цели файлове, или просто да криптираме няколко променливи, които могат да съдържат чувствителни данни и след това Ansible автоматично ги дешифрира по време на изпълнение. Сега можем спокойно да ангажираме тези стойности с GitHub.
Създаване на шифрован файл
За да създадете шифрован файл, използвайте ansible-vault създаване команда и предайте името на файла.
$ ansible-vault създайте име на файл.yaml
Ще бъдете подканени да създадете парола и след това да я потвърдите, като я въведете отново.
След като паролата ви бъде потвърдена, ще бъде създаден нов файл и ще отвори прозорец за редактиране. По подразбиране редакторът за Ansible Vault е vi. Можете да добавяте данни, да запазвате и да излизате.
какво е hadoop за големи данни
Редактиране на шифровани файлове
Ако искате да редактирате шифрован файл, можете да го редактирате с помощта на ansible-vault редактиране команда.
$ ansible-vault редактиране secrets.txt
Къде Secrets.txt е вече създаден, криптиран файл.
Ще бъдете подканени да въведете паролата за трезора. Файлът (дешифрирана версия) ще се отвори в редактор vi и след това можете да направите необходимите промени.
Ако проверите изхода, ще видите, че текстът ви ще бъде криптиран автоматично, когато запазите и затворите.
Преглед на шифрован файл
Ако искате просто да видите криптиран файл, можете да използвате изглед на анзиб-свод команда.
$ ansible-vault преглед на filename.yml
Отново ще бъдете подканени да въведете парола.
Повторно въвеждане на парола за трезора
Разбира се, има моменти, в които ще искате да промените паролата за трезора. Можете да използвате ansible-vault rekey команда.
$ ansible-vault rekey secrets.txt
Ще бъдете подканени с текущата парола на хранилището и след това с новата парола и накрая ще направите, като потвърдите новата парола.
Шифроване на нешифровани файлове
Да предположим, че имате файл, който искате да шифровате, можете да използвате шифроване на ansible-vault команда.
$ ansible-vault криптиране на filename.txt
Ще бъдете подканени да въведете и потвърдите парола и вашият файл е шифрован.
Сега, когато разглеждате съдържанието на файла, цялото е криптирано.
Дешифриране на шифровани файлове
Ако искате да дешифрирате криптиран файл, можете да използвате дешифриране на анзиб-свод команда.
$ ansible-vault дешифриране на filename.txt
Както обикновено, ще бъдете подканени да въведете и потвърдите паролата за трезора.
Криптиране на специфични променливи
Най-добрата практика при използване на Ansible Vault е да шифровате само чувствителните данни. В примера, обяснен по-горе, екипът за разработка не иска да споделя паролата си с екипа за производство и подготвяне, но може да се нуждае от достъп до определени данни, за да изпълни собствената си задача. В такива случаи трябва да шифровате само данните, които не искате да споделяте с други, оставяйки останалите такива, каквито са.
Ansible Vault ви позволява да шифровате само конкретни променливи. Можете да използвате ansible-vault encrypt_string команда за това.
$ ansible-vault encrypt_string
Ще бъдете подканени да вмъкнете и след това да потвърдите паролата за трезора. След това можете да започнете да вмъквате стойността на низа, която искате да шифровате. Натиснете ctrl-d, за да прекратите въвеждането. Сега можете да зададете това шифрованостойносткъм низ в книгата за игри.
Можете също да постигнете едно и също нещо в един ред.
$ ansible-vault encrypt_string 'string' --name 'имя_променлива'
Дешифриране на шифровани файлове по време на изпълнение
Ако искате да дешифрирате файл по време на изпълнение, можете да използвате –Ask-vault-pass флаг.
$ ansible-playbook launch.yml --ask-vault-pass
Това ще дешифрира всички шифровани файлове, които се използват за изпълнение на тази книга за пускане launch.yml. Освен това това е възможно само ако всички файлове са криптирани с една и съща парола.
Подканите за парола могат да станат досадни. Целта на автоматизацията става безсмислена. Как да направим това по-добро? Ansible има функция, наречена „файл с парола“, която се позовава на файл, съдържащ паролата. След това можете просто да предадете този файл с парола по време на изпълнение, за да го автоматизирате.
$ ansible-playbook launch.yml --vault-password-file ~ / .vault_pass.txt
Наличието на отделен скрипт, който определя паролите, също е възможно. Трябва да се уверите, че скрипт файлът е изпълним и паролата е отпечатана на стандартния изход, за да работи без досадни грешки.
$ ansible-playbook launch.yml --vault-password-file ~ / .vault_pass.py
Използване на идентификатор на трезора
Vault Id е начин за предоставяне на идентификатор на определена парола за трезора. Vault ID помага при криптирането на различни файлове с различни пароли, които да бъдат препращани в книгата за игра. Тази функция на Ansible излезе с пускането на Ansible 2.4. Преди това издание само една парола за трезора можеше да се използва при всяко изпълнение на книгата на ansible playbook.
Така че сега, ако искате да изпълните Ansible playbook, която използва множество файлове, кодирани с различни пароли, можете да използвате Vault Id.
$ ansible-playbook --vault-id vault-pass1 --vault-id vault-pass2 filename.yml
С това стигнахме до края на този блог Ansible Vault. Удивително е да наваксате технологиите и да се възползвате максимално от тях, но не като компрометирате сигурността. Това е един от най-добрите начини да имаме инфраструктура като код (IaC).
Ако намерите тази статия за полезна, разгледайте ' предлага се от Edureka. Той обхваща всички инструменти, които са направили ИТ индустрията по-умна.
Имате въпрос към нас? Моля, публикувайте го на и ние ще се свържем с вас.