Udostępnij za pośrednictwem


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.

.NET Microservices Architecture for Containerized .NET Applications eBook cover thumbnail.

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:

  1. 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.

  2. 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>"
    
  3. 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