Introductie
Als u wilt weten wat er mis kan gaan met het beheren van de configuratiegeheimen van een app, kijkt u niet verder dan het verhaal van Steve, een senior ontwikkelaar.
Steve werkte een paar weken bij een bedrijf voor dierenvoeding. Tijdens het verkennen van de details van de web-app van het bedrijf, een .NET Core-web-app die een Azure SQL-database gebruikte voor het opslaan van ordergegevens en API's van derden voor facturering van creditcards en het toewijzen van klantadressen, plakte Steve per ongeluk de verbindingsreeks voor de orderdatabase in een openbaar forum.
Dagen later merkte de boekhoudafdeling op dat het bedrijf veel huisdierenvoer afleverde waarvoor niet was betaald. Iemand heeft de verbindingsreeks gebruikt om toegang te krijgen tot de database en orders te maken door de database rechtstreeks bij te werken.
Nadat Steve zijn fout besefte, veranderde hij haastig het databasewachtwoord om de aanvaller te vergrendelen. Nadat Steve het wachtwoord heeft gewijzigd, begon de website fouten te retourneren aan gebruikers. De app-server heeft een bijgewerkte configuratie met het nieuwe wachtwoord nodig. Steve meldde zich rechtstreeks aan bij de app-server en wijzigde de app-configuratie in plaats van de app opnieuw te implementeren. Aanvragen bij de server mislukten echter nog steeds.
Steve is vergeten dat meerdere exemplaren van de app op verschillende servers zijn uitgevoerd. Hij heeft alleen de configuratie voor één gewijzigd. Er moest volledig opnieuw worden geïmplementeerd, waardoor er sprake was van nóg 30 minuten downtime.
Gelukkig kon de boekhoudafdeling de fouten snel corrigeren en werd slechts één dag aan orders beïnvloed. Steve is in de toekomst misschien niet zo gelukkig en moet een manier vinden om de beveiliging en onderhoudbaarheid van de app te verbeteren.
Als er een databaseverbindingsreeks, een API-sleutel of een servicewachtwoord lekt, kan dat ernstige gevolgen hebben. Er kunnen gegevens worden gestolen of verwijderd, er kan financiële schade ontstaan, er kan sprake zijn van downtime voor apps én er kan onherstelbare schade optreden aan bedrijfsmiddelen en de reputatie. Geheime waarden moeten echter vaak op meerdere plaatsen tegelijk worden geïmplementeerd en op onhandige momenten worden gewijzigd. En u moet ze wel ergens opslaan! Bekijk hoe Steve risico's kan verminderen en de beveiliging en onderhoudbaarheid van zijn app met Azure Key Vault kan verbeteren.
Leerdoelen
In deze module wordt het volgende behandeld:
- Verkennen welke typen informatie kunnen worden opgeslagen in Azure Key Vault
- Een Azure Key Vault maken en deze gebruiken om geheime configuratiewaarden op te slaan
- Veilige toegang tot Azure Key Vault inschakelen vanuit een Azure-app Service-web-app met beheerde identiteiten voor Azure-resources
- Een web-app implementeren waarmee geheimen worden opgehaald uit Azure Key Vault