Použití služby Azure Key Vault k ochraně tajných kódů v produkčním čase
Tip
Tento obsah je výňatek z eBooku, architektury mikroslužeb .NET pro kontejnerizované aplikace .NET, které jsou k dispozici na .NET Docs nebo jako zdarma ke stažení PDF, které lze číst offline.
Tajné kódy uložené jako proměnné prostředí nebo uložené nástrojem Secret Manager jsou stále uložené místně a nešifrované na počítači. Bezpečnější možností ukládání tajných kódů je Služba Azure Key Vault, která poskytuje zabezpečené centrální umístění pro ukládání klíčů a tajných kódů.
Balíček Azure.Extensions.AspNetCore.Configuration.Secrets umožňuje aplikaci ASP.NET Core číst informace o konfiguraci ze služby Azure Key Vault. Pokud chcete začít používat tajné kódy ze služby Azure Key Vault, postupujte takto:
Zaregistrujte aplikaci jako aplikaci Azure AD. (Přístup k trezorům klíčů spravuje Azure AD.) Můžete to provést prostřednictvím portálu pro správu Azure.\
Pokud chcete, aby se vaše aplikace ověřila pomocí certifikátu místo hesla nebo tajného klíče klienta, můžete použít rutinu PowerShellu New-AzADApplication . Certifikát, který zaregistrujete ve službě Azure Key Vault, potřebuje jenom váš veřejný klíč. Vaše aplikace bude používat privátní klíč.
Vytvoření nového instančního objektu udělí zaregistrované aplikaci přístup k trezoru klíčů. Můžete to provést pomocí následujících příkazů PowerShellu:
$sp = New-AzADServicePrincipal -ApplicationId "<Application ID guid>" Set-AzKeyVaultAccessPolicy -VaultName "<VaultName>" -ServicePrincipalName $sp.ServicePrincipalNames[0] -PermissionsToSecrets all -ResourceGroupName "<KeyVault Resource Group>"
Do aplikace zahrňte trezor klíčů jako zdroj konfigurace voláním metody rozšíření AzureKeyVaultConfigurationExtensions.AddAzureKeyVault při vytváření IConfigurationRoot instance.
Upozorňujeme, že volání AddAzureKeyVault
vyžaduje ID aplikace, které bylo zaregistrováno a uděleno přístup k trezoru klíčů v předchozích krocích. Nebo můžete nejprve spustit příkaz Azure CLI: az login
a pak pomocí přetížení AddAzureKeyVault
, které převezme DefaultAzureCredential místo klienta.
Důležité
Doporučujeme zaregistrovat službu Azure Key Vault jako posledního zprostředkovatele konfigurace, aby mohl přepsat hodnoty konfigurace od předchozích poskytovatelů.
Další materiály
Použití Azure Key Vault k ochraně tajných klíčů aplikace
https://learn.microsoft.com/azure/architecture/multitenant-identityBezpečné úložiště tajných částí aplikace při vývoji
https://learn.microsoft.com/aspnet/core/security/app-secretsKonfigurace ochrany dat
https://learn.microsoft.com/aspnet/core/security/data-protection/configuration/overviewSpráva a životnost klíčů ochrany dat v ASP.NET Core
https://learn.microsoft.com/aspnet/core/security/data-protection/configuration/default-settings