Ponowne ładowanie wpisów tajnych i certyfikatów z usługi Key Vault automatycznie
Usługa App Configuration i Key Vault to usługi uzupełniające używane obok siebie w wielu aplikacjach. Usługa App Configuration pomaga używać usług razem, tworząc klucze w magazynie usługi App Configuration, które odwołują się do wpisów tajnych lub certyfikatów przechowywanych w usłudze Key Vault. Ponieważ usługa Key Vault przechowuje parę kluczy publicznych i prywatnych certyfikatu jako wpisu tajnego, aplikacja może pobrać dowolny certyfikat jako wpis tajny z usługi Key Vault.
W ramach dobrej praktyki w zakresie zabezpieczeń wpisy tajne i certyfikaty powinny być okresowo obracane. Po obróceniu ich w usłudze Key Vault chcesz, aby aplikacja pobierała najnowsze wartości wpisów tajnych i certyfikatów. Istnieją dwa sposoby osiągnięcia tego celu bez ponownego uruchamiania aplikacji:
- Zaktualizuj wartość klucza usługi Sentinel, aby wyzwolić odświeżanie całej konfiguracji, co spowoduje ponowne załadowanie wszystkich wpisów tajnych i certyfikatów usługi Key Vault. Aby uzyskać więcej informacji, zobacz, jak używać konfiguracji dynamicznej w aplikacji ASP.NET Core.
- Okresowo ponownie załaduj niektóre lub wszystkie wpisy tajne i certyfikaty z usługi Key Vault.
W pierwszej opcji należy zaktualizować wartość klucza sentinel w usłudze App Configuration za każdym razem, gdy wymieniasz wpisy tajne i certyfikaty w usłudze Key Vault. Takie podejście działa dobrze, gdy chcesz wymusić natychmiastowe ponowne ładowanie wpisów tajnych i certyfikatów w aplikacji. Jeśli jednak wpisy tajne i certyfikaty są automatycznie obracane w usłudze Key Vault, aplikacja może napotkać błędy, jeśli nie zaktualizujesz wartości klucza usługi Sentinel w czasie. Druga opcja pozwala całkowicie zautomatyzować ten proces. Aplikację można skonfigurować do ponownego ładowania wpisów tajnych i certyfikatów z usługi Key Vault w dopuszczalnym opóźnieniu od czasu rotacji. Ten samouczek przeprowadzi Cię przez drugą opcję.
Wymagania wstępne
W tym samouczku pokazano, jak skonfigurować aplikację do automatycznego ponownego ładowania wpisów tajnych i certyfikatów z usługi Key Vault. Jest on oparty na samouczku dotyczącym implementowania odwołań usługi Key Vault w kodzie. Przed kontynuowaniem zakończ samouczek : najpierw użyj odwołań usługi Key Vault w aplikacji ASP.NET Core.
Pakiet Microsoft.Azure.AppConfiguration.AspNetCore w wersji 4.4.0 lub nowszej.
Dodawanie automatycznie obracającego się certyfikatu do usługi Key Vault
Postępuj zgodnie z instrukcjami z samouczka: Konfigurowanie automatycznego obracania certyfikatów w usłudze Key Vault w celu dodania automatycznie obracającego się certyfikatu o nazwie ExampleCertificate do usługi Key Vault utworzonej w poprzednim samouczku.
Dodawanie odwołania do certyfikatu usługi Key Vault w usłudze App Configuration
W witrynie Azure Portal wybierz pozycję Wszystkie zasoby, a następnie wybierz wystąpienie sklepu App Configuration utworzone w poprzednim samouczku.
Wybierz pozycję Eksplorator konfiguracji.
Wybierz pozycję + Utwórz>odwołanie do magazynu kluczy, a następnie określ następujące wartości:
- Klucz: wybierz pozycję TestApp:Settings:KeyVaultCertificate.
- Etykieta: pozostaw tę wartość pustą.
- Subskrypcja, grupa zasobów i magazyn kluczy: wprowadź wartości odpowiadające usłudze Key Vault utworzonej w poprzednim samouczku.
- Wpis tajny: wybierz wpis tajny o nazwie ExampleCertificate utworzony w poprzedniej sekcji.
- Wersja wpisu tajnego: najnowsza wersja.
Uwaga
Jeśli odwołujesz się do określonej wersji, ponowne załadowanie wpisu tajnego lub certyfikatu z usługi Key Vault zawsze zwróci tę samą wartość.
Aktualizowanie kodu w celu ponownego załadowania wpisów tajnych i certyfikatów usługi Key Vault
W pliku Program.cs zaktualizuj AddAzureAppConfiguration
metodę , aby skonfigurować interwał odświeżania certyfikatu SetSecretRefreshInterval
usługi Key Vault przy użyciu metody . Dzięki tej zmianie aplikacja ponownie załaduje parę kluczy publicznych-prywatnych dla parametru ExampleCertificate co 12 godzin.
config.AddAzureAppConfiguration(options =>
{
options.Connect(settings["ConnectionStrings:AppConfig"])
.ConfigureKeyVault(kv =>
{
kv.SetCredential(new DefaultAzureCredential());
kv.SetSecretRefreshInterval("TestApp:Settings:KeyVaultCertificate", TimeSpan.FromHours(12));
});
});
Pierwszym argumentem metody SetSecretRefreshInterval
jest klucz odwołania usługi Key Vault w usłudze App Configuration. Ten argument jest opcjonalny. Jeśli parametr klucza zostanie pominięty, interwał odświeżania będzie stosowany do wszystkich tych wpisów tajnych i certyfikatów, które nie mają poszczególnych interwałów odświeżania.
Interwał odświeżania określa częstotliwość, z jaką wpisy tajne i certyfikaty zostaną ponownie załadowane z usługi Key Vault, niezależnie od zmian ich wartości w usłudze Key Vault lub usłudze App Configuration. Jeśli chcesz ponownie załadować wpisy tajne i certyfikaty, gdy ich wartość zmieni się w usłudze App Configuration, możesz je monitorować przy użyciu ConfigureRefresh
metody . Aby uzyskać więcej informacji, zobacz, jak używać konfiguracji dynamicznej w aplikacji ASP.NET Core.
Wybierz interwał odświeżania zgodnie z dopuszczalnym opóźnieniem po zaktualizowaniu wpisów tajnych i certyfikatów w usłudze Key Vault. Ważne jest również, aby wziąć pod uwagę limity usługi Key Vault, aby uniknąć ograniczania przepustowości.
Czyszczenie zasobów
Jeśli nie chcesz nadal korzystać z zasobów utworzonych w tym artykule, usuń utworzoną tutaj grupę zasobów, aby uniknąć naliczania opłat.
Ważne
Usunięcie grupy zasobów jest nieodwracalne. Grupa zasobów i wszystkie zasoby w niej są trwale usuwane. Upewnij się, że nie usuniesz przypadkowo nieprawidłowej grupy zasobów ani zasobów. Jeśli zasoby dla tego artykułu zostały utworzone w grupie zasobów zawierającej inne zasoby, które chcesz zachować, usuń każdy zasób oddzielnie z odpowiedniego okienka zamiast usuwać grupę zasobów.
- Zaloguj się do witryny Azure Portal i wybierz pozycję Grupy zasobów.
- W polu Filtruj według nazwy wprowadź nazwę grupy zasobów.
- Na liście wyników wybierz nazwę grupy zasobów, aby wyświetlić przegląd.
- Wybierz pozycję Usuń grupę zasobów.
- Zobaczysz prośbę o potwierdzenie usunięcia grupy zasobów. Wprowadź nazwę grupy zasobów, aby potwierdzić, a następnie wybierz pozycję Usuń.
Po kilku chwilach grupa zasobów i wszystkie jej zasoby zostaną usunięte.
Następne kroki
W tym samouczku przedstawiono sposób konfigurowania aplikacji w celu automatycznego ponownego ładowania wpisów tajnych i certyfikatów z usługi Key Vault. Aby dowiedzieć się, jak używać tożsamości zarządzanej w celu usprawnienia dostępu do usługi App Configuration i Key Vault, przejdź do następnego samouczka.