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

Przed rozpoczęciem: Uzyskiwanie poświadczeń usługi Azure Cosmos DB

Przed rozpoczęciem uzyskasz poświadczenia dla istniejącego konta.

  1. Przejdź do strony Azure-Portal dla istniejącego konta usługi Azure Cosmos DB for NoSQL.

  2. Na stronie konta usługi Azure Cosmos DB for NoSQL wybierz opcję Menu nawigacji Klucze .

    Zrzut ekranu przedstawiający stronę konta interfejsu API SQL usługi Azure Cosmos DB. Opcja Klucze jest wyróżniona w menu nawigacji.

  3. Rejestruj wartości z pól Identyfikator URI i KLUCZ PODSTAWOWY . Te wartości będą używane w dalszej części tego samouczka.

    Zrzut ekranu przedstawiający stronę Klucze z różnymi poświadczeniami dla konta interfejsu API SQL usługi Azure Cosmos DB.

Tworzenie zasobu usługi Azure 密钥保管库

Najpierw utwórz nowy magazyn kluczy do przechowywania poświadczeń interfejsu API dla noSQL.

  1. Zaloguj się w witrynie Azure Portal.

  2. Wybierz pozycję Utwórz 密钥保管库 zabezpieczeń > zasobów>.

  3. 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.
  4. Pozostaw wartości domyślne pozostałych ustawień.

  5. Wybierz pozycję Przejrzyj i utwórz.

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

  1. Wybierz pozycję Przejdź do zasobu, aby przejść do strony zasobów usługi Azure 密钥保管库.

  2. Na stronie zasobów usługi Azure 密钥保管库 wybierz opcję menu nawigacji Wpisy tajne.

  3. Wybierz pozycję Generuj/Importuj z menu.

    Zrzut ekranu przedstawiający opcję Generuj/Importuj w menu magazynu kluczy.

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

    Zrzut ekranu przedstawiający okno dialogowe Tworzenie wpisu tajnego w Azure-Portal ze szczegółami wpisu tajnego identyfikatora URI.

  5. Wybierz pozycję Utwórz, aby utworzyć nowy wpis tajny cosmos-endpoint .

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

    Zrzut ekranu przedstawiający okno dialogowe Tworzenie wpisu tajnego w Azure-Portal ze szczegółami klucza podstawowego.

  7. Wybierz pozycję Utwórz, aby utworzyć nowy klucz tajny cosmos-readwrite-key .

  8. Po utworzeniu wpisów tajnych wyświetl je na liście wpisów tajnych na stronie Wpisy tajne .

    Zrzut ekranu przedstawiający listę wpisów tajnych magazynu kluczy.

  9. 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 to https://msdocs-key-vault.vault.azure.net/secrets/cosmos-readwrite-key/83b995e363d947999ac6cf487ae0e12e.

    Zrzut ekranu przedstawiający identyfikator wpisu tajnego dla wpisu tajnego magazynu kluczy o nazwie cosmos-readwrite-key.

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 密钥保管库.

  1. Utwórz nowe repozytorium GitHub przy użyciu szablonu cosmos-db-nosql-dotnet-sample-web-environment-variables.

  2. W Azure-Portal wybierz pozycję Utwórz zasób > Web > Web App.

  3. 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.
  4. Pozostaw wartości domyślne pozostałych ustawień.

  5. Wybierz pozycję Dalej: Wdrożenie.

  6. 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.
  7. Wybierz pozycję Przejrzyj i utwórz.

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

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

    Zrzut ekranu przedstawiający aplikację internetową w stanie domyślnym bez poświadczeń.

  10. Wybierz opcję Menu nawigacji Tożsamości .

  11. Na stronie Tożsamość wybierz pozycję Włączone dla tożsamości zarządzanej przypisanej przez system , a następnie wybierz pozycję Zapisz.

    Zrzut ekranu przedstawiający włączoną tożsamość zarządzaną przypisaną przez system na stronie Tożsamość.

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.

  1. Wróć do strony magazynu kluczy w Azure-Portal. Wybierz pozycję Zasady dostępu z menu nawigacji.

  2. Na stronie Zasady dostępu wybierz pozycję Utwórz z menu.

    Zrzut ekranu przedstawiający opcję Utwórz w menu Zasady dostępu.

  3. Na karcie Uprawnienia na stronie Tworzenie zasad dostępu wybierz opcję Pobierz w sekcji Uprawnienia tajne . Wybierz opcję Dalej.

    Zrzut ekranu przedstawiający uprawnienie Pobierz włączone dla uprawnień wpisu tajnego.

  4. Na karcie Podmiot zabezpieczeń wybierz nazwę aplikacji internetowej utworzonej wcześniej w tym samouczku. Wybierz opcję Dalej.

    Zrzut ekranu przedstawiający tożsamość zarządzaną aplikacji internetowej przypisaną do uprawnienia.

    Uwaga

    Na tym przykładowym zrzucie ekranu aplikacja internetowa nosi nazwę msdocs-dotnet-web.

  5. Wybierz ponownie pozycję Dalej , aby pominąć kartę Aplikacja . Na karcie Przeglądanie i tworzenie przejrzyj podane ustawienia, a następnie wybierz pozycję Utwórz.

  6. Wróć do strony aplikacji internetowej w Azure-Portal. Wybierz pozycję Konfiguracja z menu nawigacji.

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

    Zrzut ekranu przedstawiający okno dialogowe Dodawanie/edytowanie ustawienia aplikacji z nowym ustawieniem aplikacji odwołującem się do wpisu tajnego magazynu kluczy.

  8. Wybierz przycisk OK , aby utrwały nowe ustawienie aplikacji

  9. 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>).
  10. Po powrocie na stronę Konfiguracja wybierz pozycję Zapisz , aby zaktualizować ustawienia aplikacji dla aplikacji internetowej.

    Zrzut ekranu przedstawiający opcję Zapisz w menu strony Konfiguracja.

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

    Zrzut ekranu przedstawiający oznaczenie Odwołanie magazynu kluczy w dwóch ustawieniach aplikacji internetowej.

  12. Wybierz pozycję Przegląd z menu nawigacji. Wybierz pozycję Przeglądaj, aby wyświetlić aplikację z wypełnionymi poświadczeniami.

    Zrzut ekranu aplikacji internetowej z prawidłowymi poświadczeniami konta usługi Azure Cosmos DB for NoSQL.

Następne kroki