Samouczek: przechowywanie i używanie poświadczeń usługi Azure Cosmos DB w usłudze Azure Key Vault
DOTYCZY: NoSQL MongoDB Kasandra Gremlin Stół
Ważne
Zaleca się, aby uzyskać dostęp do usługi Azure Cosmos DB, jest użycie przypisanej przez system tożsamości zarządzanej. Jeśli rozwiązanie tożsamości zarządzanej i rozwiązanie oparte na certyfikatach nie spełniają Twoich potrzeb, skorzystaj z rozwiązania usługi Azure Key Vault w tym artykule.
Jeśli używasz usługi Azure Cosmos DB jako bazy danych, połączysz się z bazami danych, kontenerem i elementami przy użyciu zestawu SDK, punktu końcowego interfejsu API i klucza podstawowego lub pomocniczego.
Dobrym rozwiązaniem nie jest przechowywanie identyfikatora URI punktu końcowego i poufnych kluczy odczytu i zapisu bezpośrednio w kodzie aplikacji lub pliku konfiguracji. W idealnym przypadku te dane są odczytywane ze zmiennych środowiskowych na hoście. W usłudze aplikacja systemu Azure ustawienia aplikacji umożliwiają wprowadzanie poświadczeń środowiska uruchomieniowego dla konta usługi Azure Cosmos DB bez konieczności przechowywania tych poświadczeń przez deweloperów w sposób niezabezpieczony tekst.
Usługa Azure Key Vault iteruje to najlepsze rozwiązanie, umożliwiając bezpieczne przechowywanie tych poświadczeń przy jednoczesnym zapewnieniu usługom takim jak aplikacja systemu Azure Service zarządzany dostęp do poświadczeń. aplikacja systemu Azure Service bezpiecznie odczytuje poświadczenia z usługi Azure Key Vault i wprowadza te poświadczenia do uruchomionej aplikacji.
Dzięki temu najlepszym rozwiązaniem deweloperzy mogą przechowywać poświadczenia dla narzędzi, takich jak emulator usługi Azure Cosmos DB, lub wypróbuj bezpłatnie usługę Azure Cosmos DB podczas programowania. Następnie zespół operacyjny może upewnić się, że prawidłowe ustawienia produkcyjne są wstrzykiwane w czasie wykonywania.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Tworzenie wystąpienia usługi Azure Key Vault
- Dodawanie poświadczeń usługi Azure Cosmos DB jako wpisów tajnych do magazynu kluczy
- Tworzenie i rejestrowanie zasobu usługi aplikacja systemu Azure i udzielanie uprawnień "klucz do odczytu"
- Wstrzykiwanie wpisów tajnych magazynu kluczy do zasobu usługi App Service
Uwaga
W tym samouczku i przykładowej aplikacji jest używane konto usługi Azure Cosmos DB for NoSQL. Wiele z tych samych kroków można wykonać przy użyciu innych interfejsów API.
Wymagania wstępne
- Istniejące konto usługi Azure Cosmos DB for NoSQL.
- Jeśli masz subskrypcję platformy Azure, utwórz nowe konto.
- Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
- Alternatywnie możesz wypróbować usługę Azure Cosmos DB bezpłatnie przed zatwierdzeniem.
- Konto usługi GitHub.
Przed rozpoczęciem: pobieranie poświadczeń usługi Azure Cosmos DB
Przed rozpoczęciem uzyskasz poświadczenia dla istniejącego konta.
Przejdź do strony witryny Azure Portal dla istniejącego konta usługi Azure Cosmos DB for NoSQL.
Na stronie konta usługi Azure Cosmos DB for NoSQL wybierz opcję menu nawigacji Klucze .
Rejestruj wartości z pól Identyfikator URI i KLUCZ PODSTAWOWY. Te wartości będą używane w dalszej części tego samouczka.
Tworzenie zasobu usługi Azure Key Vault
Najpierw utwórz nowy magazyn kluczy do przechowywania poświadczeń interfejsu API dla noSQL.
Zaloguj się w witrynie Azure Portal.
Wybierz pozycję Utwórz zasób > Security > Key Vault.
Na stronie Tworzenie magazynu kluczy wprowadź następujące informacje:
Ustawienie opis Subskrypcja Wybierz subskrypcję platformy Azure, której chcesz użyć dla tego konta usługi Azure Cosmos. Grupa zasobów: Wybierz grupę zasobów lub wybierz pozycję Utwórz nową, a następnie wprowadź unikatową nazwę nowej grupy zasobów. Nazwa magazynu kluczy Wprowadź globalnie unikatową nazwę magazynu kluczy. Region Wybierz lokalizację geograficzną, w której będzie hostowane konto usługi Azure Cosmos DB. Użyj lokalizacji znajdującej się najbliżej Twoich użytkowników, aby zapewnić im najszybszy dostęp do danych. Warstwa cenowa Wybierz opcję Standardowa. Pozostaw wartości domyślne pozostałych ustawień.
Wybierz pozycję Przejrzyj i utwórz.
Przejrzyj podane ustawienia, a następnie wybierz pozycję Utwórz. Utworzenie konta trwa kilka minut. Przed przejściem poczekaj na wyświetlenie strony portalu, aby wyświetlić Wdrożenie zostało ukończone .
Dodawanie kluczy dostępu usługi Azure Cosmos DB do usługi Key Vault
Teraz zapisz poświadczenia usługi Azure Cosmos DB jako wpisy tajne w magazynie kluczy.
Wybierz pozycję Przejdź do zasobu , aby przejść do strony zasobów usługi Azure Key Vault.
Na stronie zasobu usługi Azure Key Vault wybierz opcję menu nawigacji Wpisy tajne .
Wybierz pozycję Generuj/Importuj z menu.
Na stronie Tworzenie wpisu tajnego wprowadź następujące informacje:
Ustawienie opis Opcje przekazywania Ręczne Nazwa/nazwisko cosmos-endpoint Wartość wpisu tajnego Wprowadź identyfikator URI skopiowany wcześniej w tym samouczku. Wybierz pozycję Utwórz , aby utworzyć nowy wpis tajny punktu końcowego cosmos-endpoint .
Ponownie wybierz pozycję Generuj/Importuj z menu. Na stronie Tworzenie wpisu tajnego wprowadź następujące informacje:
Ustawienie opis Opcje przekazywania Ręczne Nazwa/nazwisko cosmos-readwrite-key Wartość wpisu tajnego Wprowadź klucz PODSTAWOWY skopiowany wcześniej w tym samouczku. Wybierz pozycję Utwórz , aby utworzyć nowy klucz tajny cosmos-readwrite-key .
Po utworzeniu wpisów tajnych wyświetl je na liście wpisów tajnych na stronie Wpisy tajne.
Wybierz każdy klucz, wybierz najnowszą wersję, a następnie skopiuj identyfikator wpisu tajnego. W dalszej części tego samouczka użyjesz identyfikatora dla wpisów tajnych cosmos-endpoint i cosmos-readwrite-key .
Napiwek
Identyfikator wpisu tajnego będzie mieć następujący format
https://<key-vault-name>.vault.azure.net/secrets/<secret-name>/<version-id>
. Jeśli na przykład nazwa magazynu kluczy to msdocs-key-vault, nazwa klucza to cosmos-readwrite-key, a wersja 83b995e363d947999ac6cf487ae0e12e, a następnie identyfikator wpisu tajnego tohttps://msdocs-key-vault.vault.azure.net/secrets/cosmos-readwrite-key/83b995e363d947999ac6cf487ae0e12e
.
Tworzenie i rejestrowanie aplikacji internetowej platformy Azure za pomocą usługi Azure Key Vault
W tej sekcji utwórz nową aplikację internetową platformy Azure, wdróż przykładową aplikację, a następnie zarejestruj tożsamość zarządzaną aplikacji internetowej w usłudze Azure Key Vault.
Utwórz nowe repozytorium GitHub przy użyciu szablonu cosmos-db-nosql-dotnet-sample-web-environment-variables.
W witrynie Azure Portal wybierz pozycję Utwórz zasób > Web > App.
Na stronie Tworzenie aplikacji internetowej i karcie Podstawy wprowadź następujące informacje:
Ustawienie opis Subskrypcja Wybierz subskrypcję platformy Azure, której chcesz użyć dla tego konta usługi Azure Cosmos. Grupa zasobów: Wybierz grupę zasobów lub wybierz pozycję Utwórz nową, a następnie wprowadź unikatową nazwę nowej grupy zasobów. Nazwa/nazwisko Wprowadź globalnie unikatową nazwę aplikacji internetowej. Publikowanie Wybierz pozycję Kod. Stos środowiska uruchomieniowego Wybierz pozycję .NET 6 (LTS). System operacyjny Wybierz pozycję Windows. Region Wybierz lokalizację geograficzną, w której będzie hostowane konto usługi Azure Cosmos DB. Użyj lokalizacji znajdującej się najbliżej Twoich użytkowników, aby zapewnić im najszybszy dostęp do danych. Pozostaw wartości domyślne pozostałych ustawień.
Wybierz pozycję Dalej: Wdrożenie.
Na karcie Wdrożenie wprowadź następujące informacje:
Ustawienie opis Ciągłe wdrażanie Wybierz opcję Włącz. Konto usługi GitHub Wybierz pozycję Autoryzuj. Postępuj zgodnie z monitami autoryzacji konta usługi GitHub, aby udzielić uprawnień platformy Azure do odczytu nowo utworzonego repozytorium GitHub. Organizacja Wybierz organizację dla nowego repozytorium GitHub. Repozytorium Wybierz nazwę nowego repozytorium GitHub. Gałąź Wybierz pozycję main. Wybierz pozycję Przejrzyj i utwórz.
Przejrzyj podane ustawienia, a następnie wybierz pozycję Utwórz. Utworzenie konta trwa kilka minut. Przed przejściem poczekaj na wyświetlenie strony portalu, aby wyświetlić Wdrożenie zostało ukończone .
Może być konieczne odczekenie kilku dodatkowych minut, zanim aplikacja internetowa zostanie początkowo wdrożona w aplikacji internetowej. Na stronie zasobu aplikacji internetowej platformy Azure wybierz pozycję Przeglądaj , aby wyświetlić domyślny stan aplikacji.
Wybierz opcję Menu nawigacji tożsamości.
Na stronie Tożsamość wybierz pozycję Włączone w polu Tożsamość zarządzana przypisana przez system, a następnie wybierz pozycję Zapisz.
Wstrzykiwanie wpisów tajnych usługi Azure Key Vault jako ustawień aplikacji internetowej platformy Azure
Na koniec wprowadź wpisy tajne przechowywane w magazynie kluczy jako ustawienia aplikacji w aplikacji internetowej. Ustawienia aplikacji z kolei wprowadzają poświadczenia do aplikacji w czasie wykonywania bez przechowywania poświadczeń w postaci zwykłego tekstu.
Wróć do strony magazynu kluczy w witrynie Azure Portal. Wybierz pozycję Zasady dostępu z menu nawigacji.
Na stronie Zasady dostępu wybierz pozycję Utwórz z menu.
Na karcie Uprawnienia na stronie Tworzenie zasad dostępu wybierz opcję Pobierz w sekcji Uprawnienia tajne. Wybierz Dalej.
Na karcie Principal (Podmiot zabezpieczeń) wybierz nazwę aplikacji internetowej utworzonej wcześniej w tym samouczku. Wybierz Dalej.
Uwaga
Na tym przykładowym zrzucie ekranu aplikacja internetowa nosi nazwę msdocs-dotnet-web.
Ponownie wybierz przycisk Dalej , aby pominąć kartę Aplikacja . Na karcie Przeglądanie i tworzenie przejrzyj podane ustawienia, a następnie wybierz pozycję Utwórz.
Wróć do strony aplikacji internetowej w witrynie Azure Portal. Wybierz pozycję Konfiguracja z menu nawigacji.
Na stronie Konfiguracja wybierz pozycję Nowe ustawienie aplikacji. W oknie dialogowym Dodawanie/edytowanie ustawienia aplikacji wprowadź następujące informacje:
Ustawienie opis Nazwa/nazwisko CREDENTIALS__ENDPOINT
Klawisz Pobierz identyfikator wpisu tajnego dla wpisu tajnego cosmos-endpoint w magazynie kluczy utworzonym wcześniej w tym samouczku. Wprowadź identyfikator w następującym formacie: @Microsoft.KeyVault(SecretUri=<secret-identifier>)
.Napiwek
Upewnij się, że zmienna środowiskowa ma podwójną wartość podkreślenia (
__
) zamiast pojedynczego podkreślenia. Podwójne podkreślenie jest kluczowym ogranicznikiem obsługiwanym przez platformę .NET na wszystkich platformach. Aby uzyskać więcej informacji, zobacz konfiguracja zmiennych środowiskowych.Uwaga
Jeśli na przykład identyfikator wpisu tajnego to
https://msdocs-key-vault.vault.azure.net/secrets/cosmos-endpoint/69621c59ef5b4b7294b5def118921b07
, odwołaniem będzie@Microsoft.KeyVault(SecretUri=https://msdocs-key-vault.vault.azure.net/secrets/cosmos-endpoint/69621c59ef5b4b7294b5def118921b07)
.Wybierz przycisk OK , aby utrwały nowe ustawienie aplikacji
Ponownie wybierz pozycję Nowe ustawienie aplikacji. W oknie dialogowym Dodawanie/edytowanie ustawienia aplikacji wprowadź następujące informacje, a następnie wybierz przycisk OK:
Ustawienie opis Nazwa/nazwisko CREDENTIALS__KEY
Klawisz Pobierz identyfikator wpisu tajnego dla wpisu tajnego cosmos-readwrite-key w magazynie kluczy utworzonym wcześniej w tym samouczku. Wprowadź identyfikator w następującym formacie: @Microsoft.KeyVault(SecretUri=<secret-identifier>)
.Na stronie Konfiguracja wybierz pozycję Zapisz, aby zaktualizować ustawienia aplikacji internetowej.
Poczekaj kilka minut na ponowne uruchomienie aplikacji internetowej przy użyciu nowych ustawień aplikacji. W tym momencie nowe ustawienia aplikacji powinny wskazywać, że są odwołaniami do magazynu kluczy.
Wybierz pozycję Przegląd z menu nawigacji. Wybierz pozycję Przeglądaj , aby wyświetlić aplikację z wypełnionymi poświadczeniami.
Następne kroki
- Aby skonfigurować zaporę dla usługi Azure Cosmos DB, zobacz artykuł dotyczący obsługi zapory.
- Aby skonfigurować punkt końcowy usługi sieci wirtualnej, zobacz artykuł Bezpieczny dostęp przy użyciu punktu końcowego usługi sieci wirtualnej.