tło
- Korzystamy z Ansible w celu udostępniania infrastruktury Azure i zarządzania nią. W tej chwili uruchamiamy Ansible „ręcznie”, tj. Ręcznie wykonujemy podręczniki dla różnych zautomatyzowanych zadań. Brak infrastruktury CI.
- Prawdopodobnie nie dotyczy, ale zarządzamy naszymi zasobami za pomocą dynamicznego skryptu
azure_rm.py
. - Zachęcamy do jak największego bezpieczeństwa, tj
- Nie przechowuj haseł Vault
~/.vault_pass
w żadnym pliku lokalnym - Nie przechowuj tajemnic platformy Azure
~/.azure/credentials
- Nie przechowuj niczego w bezpieczny sposób
.bashrc
.
- Nie przechowuj haseł Vault
W takim scenariuszu mam problem z opracowaniem spójnej strategii zapewniającej dostęp do moich tajemnic platformy Azure zgodnie z powyższymi wytycznymi.
Pytanie
Jak mogę uniknąć przechowywania poświadczeń Vault i Azure na plikach, zapewniając jednocześnie dostęp do nich przez moje podręczniki?
Co próbowałem
Do tej pory wymyśliłem taki skrypt
- pyta użytkownika o hasło do Vault
- Wykorzystuje to do odszyfrowania skryptu Vaulted Shell
- Ocenia skrypt, który ładuje zmienne środowiskowe platformy Azure do środowiska;
- Uruchamia playbook na ustawionym w ten sposób środowisku.
Jakieś lepsze (bardziej eleganckie, mniej skomplikowane, bardziej „Ansible”) rozwiązania?