Delen via


Gecentraliseerde configuratie

Tip

Deze inhoud is een fragment uit het eBook, Cloud Native .NET Applications for Azure ontwerpen, beschikbaar op .NET Docs of als een gratis downloadbare PDF die offline kan worden gelezen.

Cloud Native .NET apps for Azure eBook cover thumbnail.

In tegenstelling tot een monolithische app waarin alles binnen één exemplaar wordt uitgevoerd, bestaat een cloudeigen toepassing uit onafhankelijke services die zijn gedistribueerd over virtuele machines, containers en geografische regio's. Het beheren van configuratie-instellingen voor tientallen onderling afhankelijke services kan lastig zijn. Dubbele kopieën van configuratie-instellingen op verschillende locaties zijn foutgevoelig en moeilijk te beheren. Gecentraliseerde configuratie is een essentiële vereiste voor gedistribueerde cloudtoepassingen.

Zoals besproken in hoofdstuk 1, vereisen de aanbevelingen voor twaalf factor-apps strikte scheiding tussen code en configuratie. De configuratie moet extern worden opgeslagen vanuit de toepassing en indien nodig worden gelezen. Het opslaan van configuratiewaarden als constanten of letterlijke waarden in code is een schending. Dezelfde configuratiewaarden worden vaak gebruikt door veel services in dezelfde toepassing. Daarnaast moeten we dezelfde waarden ondersteunen in meerdere omgevingen, zoals ontwikkelen, testen en productie. De aanbevolen procedure is om ze op te slaan in een gecentraliseerd configuratiearchief.

De Azure-cloud biedt verschillende geweldige opties.

Azure App Configuration

Azure-app Configuration is een volledig beheerde Azure-service waarin niet-geheime configuratie-instellingen worden opgeslagen op een veilige, gecentraliseerde locatie. Opgeslagen waarden kunnen worden gedeeld tussen meerdere services en toepassingen.

De service is eenvoudig te gebruiken en biedt verschillende voordelen:

  • Flexibele sleutel-/waardeweergaven en -toewijzingen
  • Taggen met Azure-labels
  • Toegewezen gebruikersinterface voor beheer
  • Versleuteling van gevoelige informatie
  • Query's uitvoeren en batch ophalen

Azure-app Configuration onderhoudt wijzigingen die zijn aangebracht in instellingen voor sleutelwaarden gedurende zeven dagen. Met de functie momentopname van een bepaald tijdstip kunt u de geschiedenis van een instelling reconstrueren en zelfs terugdraaien voor een mislukte implementatie.

App Configuration slaat elke instelling automatisch in de cache op om overmatige aanroepen naar het configuratiearchief te voorkomen. De vernieuwingsbewerking wacht totdat de waarde van een instelling in de cache verloopt om deze instelling bij te werken, zelfs wanneer de waarde ervan in het configuratiearchief wordt gewijzigd. De standaardwaarde voor de vervaltijd van de cache is 30 seconden. U kunt de verlooptijd overschrijven.

App Configuration versleutelt alle configuratiewaarden in transit en at rest. Sleutelnamen en labels worden gebruikt als indexen voor het ophalen van configuratiegegevens en worden niet versleuteld.

Hoewel App Configuration beveiligde beveiliging biedt, is Azure Key Vault nog steeds de beste plek voor het opslaan van toepassingsgeheimen. Key Vault biedt versleuteling op hardwareniveau, gedetailleerd toegangsbeleid en beheerbewerkingen zoals certificaatrotatie. U kunt App Configuration-waarden maken die verwijzen naar geheimen die zijn opgeslagen in een Sleutelkluis.

Azure Key Vault

Key Vault is een beheerde service voor het veilig opslaan en openen van geheimen. Een geheim is alles waartoe u de toegang streng wilt beheren, zoals API-sleutels, wachtwoorden of certificaten. Een kluis is een logische groep geheimen.

Key Vault vermindert de kans dat geheimen per ongeluk worden gelekt aanzienlijk. Bij gebruik van Key Vault hoeven ontwikkelaars van toepassingen geen beveiligingsinformatie meer in de toepassing zelf op te slaan. Deze procedure elimineert de noodzaak om deze informatie in uw code op te slaan. Een toepassing wil bijvoorbeeld verbinding maken met een database. In plaats van de verbindingsreeks op te slaan in de code van de app, kunt u deze veilig bewaren in Key Vault.

Met behulp van URI's hebben uw toepassingen veilig toegang tot de benodigde gegevens. Met deze URI's kunnen de toepassingen specifieke versies van een geheim ophalen. U hoeft geen aangepaste code te schrijven om de geheime gegevens te beveiligen die zijn opgeslagen in Key Vault.

Voor toegang tot Key Vault is de juiste verificatie en autorisatie van bellers vereist. Normaal gesproken maakt elke cloudeigen microservice gebruik van een ClientId/ClientSecret-combinatie. Het is belangrijk om deze referenties buiten broncodebeheer te houden. U kunt ze het beste instellen in de omgeving van de toepassing. Directe toegang tot Key Vault vanuit AKS kan worden bereikt met Key Vault FlexVolume.

Configuratie in eShop

De eShopOnContainers-toepassing bevat lokale toepassingsinstellingenbestanden voor elke microservice. Deze bestanden worden ingecheckt bij broncodebeheer, maar bevatten geen productiegeheimen zoals verbindingsreeks s of API-sleutels. In productie kunnen afzonderlijke instellingen worden overschreven met omgevingsvariabelen per service. Het injecteren van geheimen in omgevingsvariabelen is een veelvoorkomende procedure voor gehoste toepassingen, maar biedt geen centraal configuratiearchief. Om gecentraliseerd beheer van configuratie-instellingen te ondersteunen, bevat elke microservice een instelling om te schakelen tussen het gebruik van lokale instellingen of Azure Key Vault-instellingen.

Verwijzingen