Większe wykorzystanie technologii, większe potencjalne zagrożenie dla bezpieczeństwa. Typowa konfiguracja Ansible wymaga podania „Sekretów”. Tymi sekretami mogą być dosłownie wszystko, hasła, tokeny API, klucze publiczne lub prywatne SSH, certyfikaty SSL itp. Jak zapewniamy bezpieczeństwo tych tajemnic? Ansible udostępnia funkcję o nazwie Ansible Vault.
Na tym blogu pokażę, jak korzystać z Ansible Vault i poznaję sprawdzone metody zapewniania bezpieczeństwa danych.
Tematy poruszane na tym blogu:
- Co to jest Ansible Vault?
- Dlaczego warto korzystać z Ansible Vault?
- Tworzenie zaszyfrowanego pliku
- Edycja zaszyfrowanych plików
- Przeglądanie zaszyfrowanego pliku
- Ponowne wprowadzanie hasła do skarbca
- Szyfrowanie niezaszyfrowanych plików
- Odszyfrowywanie zaszyfrowanych plików
- Szyfrowanie określonych zmiennych
- Odszyfrowywanie zaszyfrowanych plików w czasie wykonywania
- Korzystanie z Vault Id
Jeśli chcesz opanować DevOps, ' Oczywiście byłaby twoją opcją.
Co to jest Ansible Vault?
Posiadanie infrastruktury jako kodu może stanowić zagrożenie ujawnienia wrażliwych danych światu, prowadząc do niepożądanych problemów z bezpieczeństwem. Ansible Vault to funkcja, która pozwala zachować wszystkie swoje sekrety. Może szyfrować całe pliki, całe playbooki YAML lub nawet kilka zmiennych. Zapewnia narzędzie, w którym można nie tylko szyfrować poufne dane, ale także integrować je ze swoimi playbookami.
Vault jest zaimplementowany z szczegółowością na poziomie plików, gdzie pliki są całkowicie zaszyfrowane lub całkowicie niezaszyfrowane. Używa tego samego hasła do szyfrowania i odszyfrowywania plików, co sprawia, że korzystanie z Ansible Vault jest bardzo przyjazne dla użytkownika.
Dlaczego warto korzystać z Ansible Vault?
Ponieważ Ansible jest używany do automatyzacji, istnieje duże prawdopodobieństwo, że podręczniki zawierają określone poświadczenia, certyfikaty SSL lub inne poufne dane. Zapisywanie tak wrażliwych danych jako zwykłego tekstu to zły pomysł. Jedno błędne popełnienie kradzieży GitHub lub laptopa może spowodować ogromną stratę dla organizacji. Tutaj pojawia się skarbiec Ansible. To świetny sposób na posiadanie infrastruktury w postaci kodu, bez narażania bezpieczeństwa.
Załóżmy, że mamy Playbook, który obsługuje Twoją instancję EC2 w AWS. Musisz podać identyfikator klucza dostępu AWS i tajny klucz AWS w podręczniku. Nie udostępniasz tych kluczy innym osobom z oczywistych powodów. Jak utrzymujesz je w stanie niewidocznym? Istnieją dwa sposoby - zaszyfruj te dwie zmienne i umieść je w playbooku lub zaszyfruj cały playbook.
To był tylko jeden ze scenariuszy, w których można użyć skarbca ansibla. Możemy zaszyfrować całe pliki lub po prostu zaszyfrować kilka zmiennych, które mogą zawierać poufne dane, a następnie Ansible automatycznie odszyfrowuje je podczas działania. Teraz możemy bezpiecznie przekazać te wartości do GitHub.
Tworzenie zaszyfrowanego pliku
Aby utworzyć zaszyfrowany plik, użyj rozszerzenia tworzenie skarbca ansibla polecenie i przekaż nazwę pliku.
$ ansible-vault create filename.yaml
Zostaniesz poproszony o utworzenie hasła, a następnie potwierdź je, wpisując je ponownie.
Po potwierdzeniu hasła zostanie utworzony nowy plik i otworzy się okno edycji. Domyślnym edytorem Ansible Vault jest vi. Możesz dodać dane, zapisać i wyjść.
do czego służy nauka o danych
Edycja zaszyfrowanych plików
Jeśli chcesz edytować zaszyfrowany plik, możesz go edytować za pomocą edytuj sklepienie ansibli Komenda.
$ ansible-vault edytuj secrets.txt
Gdzie secrets.txt to już utworzony, zaszyfrowany plik.
Zostaniesz poproszony o wpisanie hasła do skarbca. Plik (wersja odszyfrowana) otworzy się w edytorze vi i wtedy będziesz mógł wprowadzić wymagane zmiany.
Jeśli sprawdzisz dane wyjściowe, zobaczysz, że tekst zostanie zaszyfrowany automatycznie po zapisaniu i zamknięciu.
Przeglądanie zaszyfrowanego pliku
Jeśli chcesz po prostu wyświetlić zaszyfrowany plik, możesz użyć rozszerzenia widok skarbca ansibla Komenda.
$ ansible-vault view filename.yml
Ponownie zostaniesz poproszony o podanie hasła.
Ponowne wprowadzanie hasła do skarbca
Oczywiście są chwile, w których będziesz chciał zmienić hasło do skarbca. Możesz użyć aktualizacja klucza skarbca ansibla Komenda.
$ ansible-vault rekey secrets.txt
Zostaniesz poproszony o podanie aktualnego hasła skarbca, a następnie nowego hasła i na koniec potwierdzenie nowego hasła.
Szyfrowanie niezaszyfrowanych plików
Załóżmy, że masz plik, który chcesz zaszyfrować, możesz użyć rozszerzenia Szyfrowanie skarbca ansible Komenda.
$ ansible-vault encrypt filename.txt
Zostaniesz poproszony o wpisanie i potwierdzenie hasła, a plik zostanie zaszyfrowany.
Teraz, gdy spojrzysz na zawartość pliku, wszystko jest zaszyfrowane.
Odszyfrowywanie zaszyfrowanych plików
Jeśli chcesz odszyfrować zaszyfrowany plik, możesz użyć odszyfrowanie skarbca ansibla Komenda.
$ ansible-vault decrypt filename.txt
Jak zwykle pojawi się monit o wprowadzenie i potwierdzenie hasła do skarbca.
Szyfrowanie określonych zmiennych
Najlepszą praktyką podczas korzystania z Ansible Vault jest szyfrowanie tylko poufnych danych. W przykładzie wyjaśnionym powyżej zespół programistów nie chce udostępniać swojego hasła zespołowi produkcyjnemu i pomostowemu, ale może potrzebować dostępu do pewnych danych, aby wykonać własne zadanie. W takich przypadkach należy szyfrować tylko te dane, których nie chcesz udostępniać innym, pozostawiając resztę bez zmian.
Ansible Vault umożliwia szyfrowanie tylko określonych zmiennych. Możesz użyć ansible-vault encrypt_string polecenie za to.
$ ansible-vault encrypt_string
Zostaniesz poproszony o wpisanie i potwierdzenie hasła do skarbca. Następnie możesz rozpocząć wstawianie wartości ciągu, którą chcesz zaszyfrować. Naciśnij ctrl-d, aby zakończyć wprowadzanie. Teraz możesz przypisać to zaszyfrowanewartośćdo ciągu w poradniku.
Możesz również osiągnąć to samo w jednej linii.
$ ansible-vault encrypt_string 'string' --name 'nazwa_zmiennej'
Odszyfrowywanie zaszyfrowanych plików w czasie wykonywania
Jeśli chcesz odszyfrować plik w czasie wykonywania, możesz użyć –Ask-vault-pass flaga.
$ ansible-playbook launch.yml --ask-vault-pass
Spowoduje to odszyfrowanie wszystkich zaszyfrowanych plików, które są używane do wykonania tego playbooka launch.yml. Jest to również możliwe tylko wtedy, gdy wszystkie pliki są zaszyfrowane tym samym hasłem.
Monity o hasło mogą być denerwujące. Cel automatyzacji staje się bezcelowy. Jak możemy to ulepszyć? Ansible ma funkcję zwaną „plikiem haseł”, która odwołuje się do pliku zawierającego hasło. Następnie możesz po prostu przekazać ten plik z hasłami w czasie wykonywania, aby go zautomatyzować.
$ ansible-playbook launch.yml --vault-password-file ~ / .vault_pass.txt
Możliwe jest również posiadanie oddzielnego skryptu, który określa hasła. Musisz upewnić się, że plik skryptu jest wykonywalny, a hasło jest drukowane na standardowe wyjście, aby działał bez irytujących błędów.
$ ansible-playbook launch.yml --vault-password-file ~ / .vault_pass.py
Korzystanie z Vault Id
Vault Id to sposób na dostarczenie identyfikatora do określonego hasła skarbca. Vault ID pomaga w szyfrowaniu różnych plików za pomocą różnych haseł, do których można się odwoływać w playbooku. Ta funkcja Ansible pojawiła się wraz z wydaniem Ansible 2.4. Wcześniej w każdym wykonaniu playbooka ansibla można było używać tylko jednego hasła skarbca.
Więc teraz, jeśli chcesz uruchomić Playbook Ansible, który używa wielu plików zaszyfrowanych różnymi hasłami, możesz użyć Vault Id.
$ ansible-playbook --vault-id vault-pass1 --vault-id vault-pass2 nazwa_pliku.yml
W ten sposób dochodzimy do końca tego bloga Ansible Vault. Wspaniale jest dogonić technologię i wykorzystać ją w pełni, ale nie rezygnując z bezpieczeństwa. Jest to jeden z najlepszych sposobów posiadania infrastruktury jako kodu (IaC).
Jeśli uznasz ten artykuł za pomocny, zapoznaj się z ' oferowane przez Edureka. Obejmuje wszystkie narzędzia, które uczyniły branżę IT inteligentniejszą.
Masz do nas pytanie? Proszę opublikuj to na a my skontaktujemy się z Tobą.