Używanie usługi Azure Key Vault do ochrony wpisów tajnych w czasie produkcyjnym
Napiwek
Ta zawartość jest fragmentem książki eBook, architektury mikrousług platformy .NET dla konteneryzowanych aplikacji platformy .NET dostępnych na platformie .NET Docs lub jako bezpłatnego pliku PDF, który można odczytać w trybie offline.
Wpisy tajne przechowywane jako zmienne środowiskowe lub przechowywane przez narzędzie Secret Manager są nadal przechowywane lokalnie i nieszyfrowane na maszynie. Bezpieczniejszą opcją przechowywania wpisów tajnych jest usługa Azure Key Vault, która zapewnia bezpieczną, centralną lokalizację do przechowywania kluczy i wpisów tajnych.
Pakiet Azure.Extensions.AspNetCore.Configuration.Secrets umożliwia aplikacji ASP.NET Core odczytywanie informacji o konfiguracji z usługi Azure Key Vault. Aby rozpocząć korzystanie z wpisów tajnych z usługi Azure Key Vault, wykonaj następujące kroki:
Zarejestruj aplikację jako aplikację usługi Azure AD. (Dostęp do magazynów kluczy jest zarządzany przez usługę Azure AD). Można to zrobić za pośrednictwem portalu zarządzania platformy Azure.\
Alternatywnie, jeśli chcesz, aby aplikacja uwierzytelniła się przy użyciu certyfikatu zamiast hasła lub klucza tajnego klienta, możesz użyć polecenia cmdlet programu PowerShell New-AzADApplication . Certyfikat zarejestrowany w usłudze Azure Key Vault wymaga tylko klucza publicznego. Aplikacja będzie używać klucza prywatnego.
Nadaj zarejestrowanej aplikacji dostęp do magazynu kluczy, tworząc nową jednostkę usługi. Można to zrobić przy użyciu następujących poleceń programu PowerShell:
$sp = New-AzADServicePrincipal -ApplicationId "<Application ID guid>" Set-AzKeyVaultAccessPolicy -VaultName "<VaultName>" -ServicePrincipalName $sp.ServicePrincipalNames[0] -PermissionsToSecrets all -ResourceGroupName "<KeyVault Resource Group>"
Dołącz magazyn kluczy jako źródło konfiguracji w aplikacji, wywołując metodę rozszerzenia AzureKeyVaultConfigurationExtensions.AddAzureKeyVault podczas tworzenia IConfigurationRoot wystąpienia.
Należy pamiętać, że wywołanie AddAzureKeyVault
wymaga zarejestrowanego identyfikatora aplikacji i uzyskania dostępu do magazynu kluczy w poprzednich krokach. Możesz też najpierw uruchomić polecenie interfejsu wiersza polecenia platformy Azure: az login
, a następnie użyć przeciążenia AddAzureKeyVault
, które ma wartość DefaultAzureCredential zamiast klienta.
Ważne
Zalecamy zarejestrowanie usługi Azure Key Vault jako ostatniego dostawcy konfiguracji, aby można było zastąpić wartości konfiguracji od poprzednich dostawców.
Dodatkowe zasoby
Korzystanie z usługi Azure Key Vault do ochrony wpisu tajnego aplikacji
https://learn.microsoft.com/azure/architecture/multitenant-identityBezpieczne przechowywanie kluczy tajnych aplikacji w czasie projektowania
https://learn.microsoft.com/aspnet/core/security/app-secretsKonfigurowanie ochrony danych
https://learn.microsoft.com/aspnet/core/security/data-protection/configuration/overviewZarządzanie kluczami ochrony danych i okres istnienia w programie ASP.NET Core
https://learn.microsoft.com/aspnet/core/security/data-protection/configuration/default-settings