Samouczek: przechowywanie i używanie poświadczeń usługi Azure Cosmos DB z usługą Azure 密钥保管库
DOTYCZY: Nosql Mongodb Cassandra Gremlin Tabeli
Ważne
Zaleca się dostęp do usługi Azure Cosmos DB w celu korzystania z przypisanej przez system tożsamości zarządzanej. Jeśli zarówno rozwiązanie tożsamości zarządzanej, jak 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, łączysz się z bazami danych, kontenerami i elementami przy użyciu zestawu SDK, punktu końcowego interfejsu API i klucza podstawowego lub pomocniczego.
Nie jest dobrym rozwiązaniem do przechowywania 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 Служба приложений Azure ustawienia aplikacji umożliwiają wstrzykiwanie 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 密钥保管库 iteruje dalsze najlepsze rozwiązanie, umożliwiając bezpieczne przechowywanie tych poświadczeń przy jednoczesnym udostępnianiu usług takich jak Служба приложений Azure zarządzany dostęp do poświadczeń. Служба приложений Azure bezpiecznie odczyta poświadczenia z usługi Azure 密钥保管库 i wstrzykuje 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 bezpłatnie wypróbować usługę Azure Cosmos DB podczas programowania. Następnie zespół operacyjny może upewnić się, że w czasie wykonywania są wprowadzane poprawne ustawienia produkcyjne.
Ten samouczek zawiera informacje na temat wykonywania następujących czynności:
- Tworzenie wystąpienia usługi Azure 密钥保管库
- Dodawanie poświadczeń usługi Azure Cosmos DB jako wpisów tajnych do magazynu kluczy
- Tworzenie i rejestrowanie zasobu Служба приложений Azure i udzielanie uprawnień "klucz do odczytu"
- Wstrzykiwanie wpisów tajnych magazynu kluczy do zasobu Serviço de Aplicativo
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ć bezpłatną usługę Azure Cosmos DB przed zatwierdzeniem.
- Konto usługi GitHub.
Przed rozpoczęciem: Uzyskiwanie poświadczeń usługi Azure Cosmos DB
Przed rozpoczęciem uzyskasz poświadczenia dla istniejącego konta.
Przejdź do strony 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 密钥保管库
Najpierw utwórz nowy magazyn kluczy do przechowywania poświadczeń interfejsu API dla noSQL.
Zaloguj się w witrynie Azure Portal.
Wybierz pozycję Utwórz 密钥保管库 zabezpieczeń > zasobów>.
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 pozycję 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 Ukończenie wdrożenia .
Dodawanie kluczy dostępu usługi Azure Cosmos DB do 密钥保管库
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 密钥保管库.
Na stronie zasobów usługi Azure 密钥保管库 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 cosmos-endpoint Wartość wpisu tajnego Wprowadź identyfikator URI skopiowany wcześniej w tym samouczku. Wybierz pozycję Utwórz, aby utworzyć nowy wpis tajny 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 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 .
Porada
Identyfikator wpisu tajnego będzie w tym formacie
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, jeśli 83b995e363d94799ac6cf487ae0e12e; następnie identyfikator wpisu tajnego tohttps://msdocs-key-vault.vault.azure.net/secrets/cosmos-readwrite-key/83b995e363d947999ac6cf487ae0e12e
.
Tworzenie i rejestrowanie aplikacji internetowej platformy Azure przy użyciu usługi Azure 密钥保管库
W tej sekcji utwórz nową aplikację internetową platformy Azure, wdróż przykładową aplikację, a następnie zarejestruj tożsamość zarządzaną aplikacji internetowej za pomocą usługi Azure 密钥保管库.
Utwórz nowe repozytorium GitHub przy użyciu szablonu cosmos-db-nosql-dotnet-sample-web-environment-variables.
W Azure-Portal wybierz pozycję Utwórz zasób > Web > Web App.
Na stronie Tworzenie aplikacji internetowej i na 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 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 Wdrażanie wprowadź następujące informacje:
Ustawienie Opis Ciągłe wdrażanie Wybierz pozycję Włącz. Konto usługi GitHub Wybierz pozycję Autoryzuj. Postępuj zgodnie z monitami o autoryzację konta usługi GitHub, aby udzielić platformy Azure uprawnień 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 Ukończenie wdrożenia .
Może być konieczne odczekanie 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 dla tożsamości zarządzanej przypisanej przez system , a następnie wybierz pozycję Zapisz.
Wstrzykiwanie wpisów tajnych usługi Azure 密钥保管库 jako ustawień aplikacji internetowej platformy Azure
Na koniec wstrzyknąć wpisy tajne przechowywane w magazynie kluczy jako ustawienia aplikacji w aplikacji internetowej. Ustawienia aplikacji z kolei wstrzykują poświadczenia do aplikacji w czasie wykonywania bez przechowywania poświadczeń w postaci zwykłego tekstu.
Wróć do strony magazynu kluczy w 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 opcję Dalej.
Na karcie Podmiot zabezpieczeń wybierz nazwę aplikacji internetowej utworzonej wcześniej w tym samouczku. Wybierz opcję Dalej.
Uwaga
Na tym przykładowym zrzucie ekranu aplikacja internetowa nosi nazwę msdocs-dotnet-web.
Wybierz ponownie pozycję 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 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 CREDENTIALS__ENDPOINT
Klucz 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>)
.Porada
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łanie to@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 CREDENTIALS__KEY
Klucz Pobierz identyfikator wpisu tajnego dla wpisu tajnegocosmos-readwrite-key w magazynie kluczy utworzonym wcześniej w tym samouczku. Wprowadź identyfikator w następującym formacie: @Microsoft.KeyVault(SecretUri=<secret-identifier>)
.Po powrocie na stronę Konfiguracja wybierz pozycję Zapisz , aby zaktualizować ustawienia aplikacji dla 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ą one odwołaniem 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ł pomocy technicznej 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.