Aktywne Wpisy

Polejmnie +285
źródło: 1000018869
Pobierz
4x80 +195
Jak rozpoznać faszystę:
- Ma swój samochód
- Nie głosuje na PO ani trzecie nogi
- Je mięso
- Lata na urlop
źródło: GWyjarXW4AA5I7J
PobierzSkopiuj link
Skopiuj link
źródło: 1000018869
Pobierz
Jak rozpoznać faszystę:
- Ma swój samochód
- Nie głosuje na PO ani trzecie nogi
- Je mięso
- Lata na urlop
źródło: GWyjarXW4AA5I7J
PobierzWykop.pl
Dostałem zadanie przechowanie loginu i hasła do bazy mysql w Azure Vault zamiast w lokalnym configu.
Nie wiem czy w ogóle da się to zrobić, ale osobiście nie widzę w tym żadnego sensu. Przecież atakujący po uzyskaniu dostępu do VM na którym jest aplikacja może dostać się do hasła bazy danych, nieważne gdzie jest przechowywane. Czy to przez debug kodu, czy uzyskania hasła z azure vault bo przecież jest na zaufanym VM.
Czy nie jest sensowniej po prostu zabezpieczyć usera bazy pozwalając na połączenie tylko z jednego IP w podsieci?
Ew. można też zaszyfrować hasło w symfony, ale to też żadne zabezpieczenie.
A może da się do tematu bezpieczeństwa hasła do bazy podejść inaczej?
usług: https://auth0.com/ , czy cognito, czy chyba active directory na azure.
Oni zajmą się bezpieczeństwem logowania, a ty rób appke.
@gajowy_marucha: co do tego:
@aso824: ahhh racja xD
Do OPA:
Gdzie byś trzymał config? Na serwerze? A co się stanie, gdy serwer będziesz musiał postawić od
No można zaszyfrować hasło i mieć je nawet w repo. Poza repo jest tylko klucz prywatny. Symfony ma to od wersji 4.x badajże.
No ok, ale jak to ogarnąć w symfony bo nawet nie wiem gdzie zacząć :/
Hasło powinno być pobierane podczas stawiania instancji, i pozniej co godzine pobierane :)
"Perfect world".
Możesz w PHP zrobić fetcher. Pobierasz hasło z vault gdy nie istnieje w cache, zapisujesz do lokalnego cache na 1h, np. pliku, a pozniej przekazujesz do doctrine/dbal
no ok, ale widzę tu tylko sens z punktu widzenia zarządzania hasłami, przecież skoro fetcher zapisuje hasło lokalnie to gdzie tu różnica w
@gajowy_marucha: aby na to odpowiedzieć, muszę się zapytać jak dotychczas zarządzałeś hasłami, wtedy będę mógł powiedzieć jakie profity.
Będzie manager haseł, czyli teoretycznie żeby postawić nową instancję uprawniona osoba pobiera je z managera (czy to będzie azure czy coś innego) i zapisuje w config, dodatkowo w postaci zaszyfrowanej.
Nie widzę różnicy między tym a automatycznym pobieraniem z vault i zapisywaniem w config (lub cache).
Nie upieram się
W twojej sytuacji vault to overkill bo wykorzystujesz chmure jako zwykły "VPS", nie masz kilku serwerów z swoją aplikacją, gdzie manualne ustawiania np. dla 100 serwerów jest czasochłonne.
Nie masz autoscalingu - czyli tworzenie nowych instancji w ramach obciążenia serwera.
vault to manager haseł, gdzie trzymasz hasła. Następnie zezwalasz serwerom by miały dostęp do konkretnych haseł, by w momencie "powstawania" serwera wiedziały skąd
No i to ma sens, czyli byłaby to raczej część deployment, a nie że apka jak chce odpytać serwer to pyta vault o hasło, a tego ktoś ode mnie wymaga:)
Bo jak chce sobie później ustawić rotację haseł, to bardzo dobry krok w przód.
Ja np. nie wiem jakie teraz mamy hasło do bazy danych. Codziennie się one zmienia. Dlatego jak mnie zwolnią - to uja będę mógł "zaszkodzić" firmie, bo moje hasła będą przestarzałe :) Wszystkie dane bezpieczeństwa zmieniają się
Ale czy to nie powinien być proces automatyczny, jakiś proces zapisuje hasło lokalnie - cyklicznie. A nie że apka za każdym razem pyta o hasło przy każdym
@gajowy_marucha: tak nie powinno być, bo
1. spowalniasz aplikacje. Każdy http request to dodatkowe 10ms
2. Nie wypłacicie się, bo za każdy request się płaci
Jeśli masz chwilę mógłbyś mi naświetlić z grubsza w jaki sposób działa taki proces zmiany hasła?
Rozumiem że vault sam w sobie nie zmienia hasła w bazie mysql?
Czy np taki proces byłby na serwerze gdzie jest db? Np 1) zmień hasło w bazie 2) zmień hasło w vault?
W jaki sposób VMy dowiadują się o zmianie hasła? Jakaś flaga, np
Nasza aws lambda zmienia hasło do bazy danych, zostawiając stare hasło przez następną godzinę. Czyli 2 hasła działają przez następną godzinę.
Po następnym uruchomieniu lambdy, stare hasło jest usuwane, nowe hasło staje się starym, a nowe hasło jest wygenerowane.
Do tego nasze aplikacje synchronizują to co jest w SecretManager co 1godzine.
Super, dzięki.
Musi się robić kompilacja plików env jakoś czy po prostu plaintekstem są zapisywane do jakiegoś customowego pliku env?