Centralizovaná konfigurace

Tip

Tento obsah je výňatek z eBooku, Architekting Cloud Native .NET Applications for Azure, který je k dispozici na webu Docs pro .NET nebo jako soubor PDF zdarma ke stažení, který si můžete přečíst offline.

Cloud Native .NET apps for Azure eBook cover thumbnail.

Na rozdíl od monolitické aplikace, ve které se všechno spouští v rámci jedné instance, se aplikace nativní pro cloud skládá z nezávislých služeb distribuovaných napříč virtuálními počítači, kontejnery a geografickými oblastmi. Správa nastavení konfigurace pro desítky vzájemně závislých služeb může být náročná. Duplicitní kopie nastavení konfigurace v různých umístěních jsou náchylné k chybám a obtížně se spravují. Centralizovaná konfigurace je kritickým požadavkem pro distribuované aplikace nativní pro cloud.

Jak je popsáno v kapitole 1, doporučení dvanáctifaktorové aplikace vyžadují přísné oddělení mezi kódem a konfigurací. Konfigurace musí být uložena externě z aplikace a podle potřeby musí být jen pro čtení. Ukládání hodnot konfigurace jako konstant nebo hodnot literálů v kódu je porušením. Stejné konfigurační hodnoty často používají mnoho služeb ve stejné aplikaci. Kromě toho musíme podporovat stejné hodnoty v různých prostředích, jako jsou vývoj, testování a produkční prostředí. Osvědčeným postupem je uložit je do centralizovaného úložiště konfigurace.

Cloud Azure nabízí několik skvělých možností.

Azure App Configuration

Aplikace Azure Configuration je plně spravovaná služba Azure, která ukládá nastavení konfigurace bez tajného kódu do zabezpečeného centralizovaného umístění. Uložené hodnoty je možné sdílet mezi několika službami a aplikacemi.

Služba je jednoduchá a poskytuje několik výhod:

  • Flexibilní reprezentace a mapování klíč/hodnota
  • Označování pomocí popisků Azure
  • Vyhrazené uživatelské rozhraní pro správu
  • Šifrování citlivých informací
  • Dotazování a dávkové načítání

Aplikace Azure Konfigurace uchovává změny nastavení klíč-hodnota po dobu sedmi dnů. Funkce snímků k určitému bodu v čase umožňuje rekonstruovat historii nastavení a dokonce vrátit zpět pro neúspěšné nasazení.

App Configuration automaticky ukládá každé nastavení do mezipaměti, aby nedocházelo k nadměrným voláním do úložiště konfigurace. Operace aktualizace čeká, dokud nevyprší platnost hodnoty nastavení uložené v mezipaměti, aby se toto nastavení aktualizovalo, i když se jeho hodnota změní v úložišti konfigurace. Výchozí doba vypršení platnosti mezipaměti je 30 sekund. Čas vypršení platnosti můžete přepsat.

App Configuration šifruje všechny hodnoty konfigurace během přenosu a neaktivních uložených dat. Názvy klíčů a popisky se používají jako indexy pro načítání konfiguračních dat a nejsou šifrované.

I když Služba App Configuration poskytuje posílené zabezpečení, azure Key Vault je stále nejlepším místem pro ukládání tajných kódů aplikací. Key Vault poskytuje šifrování na úrovni hardwaru, podrobné zásady přístupu a operace správy, jako je obměny certifikátů. Můžete vytvořit hodnoty konfigurace aplikace, které odkazují na tajné kódy uložené ve službě Key Vault.

Azure Key Vault

Key Vault je spravovaná služba pro bezpečné ukládání tajných kódů a přístup k nim. Tajný klíč je cokoli, k čemu chcete pečlivě kontrolovat přístup, třeba klíče rozhraní API, hesla nebo certifikáty. Trezor je logická skupina tajných kódů.

Key Vault výrazně snižuje riziko nechtěného úniku tajných klíčů. Při použití služby Key Vault už vývojáři aplikací nemusejí ukládat informace o zabezpečení ve svých aplikacích. Tento postup eliminuje potřebu ukládat tyto informace do kódu. Aplikace se například může potřebovat připojit k databázi. Místo uložení připojovací řetězec do kódu aplikace ji můžete bezpečně uložit ve službě Key Vault.

Vaše aplikace můžou bezpečně přistupovat k potřebným informacím pomocí identifikátorů URI. Tyto identifikátory URI umožňují aplikacím načíst konkrétní verze tajného kódu. Není nutné psát vlastní kód pro ochranu jakýchkoli tajných informací uložených ve službě Key Vault.

Přístup ke službě Key Vault vyžaduje správné ověřování a autorizaci volajícího. Každá mikroslužba nativní pro cloud obvykle používá kombinaci ClientId/ClientSecret. Tyto přihlašovací údaje je důležité uchovávat mimo správu zdrojového kódu. Osvědčeným postupem je nastavit je v prostředí aplikace. Přímý přístup ke službě Key Vault z AKS je možné dosáhnout pomocí flexVolume služby Key Vault.

Konfigurace v eShopu

Aplikace eShopOnContainers obsahuje soubory nastavení místní aplikace s každou mikroslužbou. Tyto soubory jsou vráceny do správy zdrojového kódu, ale nezahrnují produkční tajné kódy, jako jsou připojovací řetězec nebo klíče rozhraní API. V produkčním prostředí může být jednotlivá nastavení přepsána proměnnými prostředí pro jednotlivé služby. Vkládání tajných kódů do proměnných prostředí je běžný postup pro hostované aplikace, ale neposkytuje centrální úložiště konfigurace. Aby bylo možné podporovat centralizovanou správu nastavení konfigurace, každá mikroslužba obsahuje nastavení pro přepínání mezi místním nastavením nebo nastavením služby Azure Key Vault.

Reference