Samouczek: używanie przypisanej przez system tożsamości zarządzanej maszyny wirtualnej systemu Windows w celu uzyskania dostępu do usługi Azure Key Vault

Tożsamości zarządzane dla zasobów platformy Azure to funkcja identyfikatora Entra firmy Microsoft. Każda usługa platformy Azure obsługująca tożsamości zarządzane dla zasobów platformy Azure ma własną oś czasu. Pamiętaj, aby przed rozpoczęciem sprawdzić stan dostępności tożsamości zarządzanych dla swojego zasobu i znane problemy.

W tym samouczku pokazano, jak maszyna wirtualna z systemem Windows może używać przypisanej przez system tożsamości zarządzanej w celu uzyskania dostępu do usługi Azure Key Vault. Usługa Key Vault umożliwia aplikacji klienckiej używanie wpisu tajnego do uzyskiwania dostępu do zasobów, które nie są zabezpieczone przez identyfikator Entra firmy Microsoft. Tożsamości zarządzane są automatycznie zarządzane przez platformę Azure. Umożliwiają one uwierzytelnianie w usługach obsługujących uwierzytelnianie firmy Microsoft Entra bez uwzględniania informacji uwierzytelniania w kodzie.

Dowiedz się, jak odbywa się:

  • Udzielanie maszynie wirtualnej dostępu do wpisu tajnego przechowywanego w usłudze Key Vault
  • Uzyskiwanie tokenu dostępu przy użyciu tożsamości maszyny wirtualnej oraz używanie go do pobrania wpisu tajnego z usługi Key Vault

Wymagania wstępne

Tworzenie usługi Key Vault

Napiwek

Kroki opisane w tym artykule mogą się nieznacznie różnić w zależności od portalu, od którego zaczynasz.

W tej sekcji pokazano, jak udzielić maszynie wirtualnej dostępu do wpisu tajnego przechowywanego w usłudze Key Vault. W przypadku korzystania z tożsamości zarządzanych dla zasobów platformy Azure kod może uzyskać tokeny dostępu do uwierzytelniania w zasobach obsługujących uwierzytelnianie firmy Microsoft Entra.  Jednak nie wszystkie usługi platformy Azure obsługują uwierzytelnianie firmy Microsoft Entra. Aby użyć tożsamości zarządzanych dla zasobów platformy Azure z tymi usługami, zapisz poświadczenia usługi w usłudze Azure Key Vault, a następnie użyj tożsamości zarządzanej maszyny wirtualnej, aby uzyskać dostęp do usługi Key Vault i pobrać te poświadczenia.

Najpierw musimy utworzyć usługę Key Vault i udzielić przypisanej przez system tożsamości zarządzanej naszej maszyny wirtualnej dostępu do usługi Key Vault.

  1. Zaloguj się do witryny [Azure Portal]portal](https://portal.azure.com/).

  2. W górnej części lewego paska nawigacyjnego wybierz pozycję Utwórz zasób.

  3. W polu Wyszukaj w witrynie Marketplace wpisz ciąg Key Vault i naciśnij klawisz Enter.

  4. Wybierz pozycję Key Vault z wyników.

  5. Wybierz pozycję Utwórz.

  6. Podaj nazwę nowego magazynu kluczy.

    Tworzenie ekranu magazynu kluczy.

  7. Wypełnij wszystkie wymagane informacje. Upewnij się, że wybrano subskrypcję i grupę zasobów używaną na potrzeby tego samouczka.

  8. Wybierz pozycję Przejrzyj i utwórz

  9. Wybierz pozycję Utwórz

Utwórz klucz tajny

Następnie dodaj wpis tajny do usługi Key Vault, aby móc pobrać go później przy użyciu kodu uruchomionego na maszynie wirtualnej. W tym samouczku używamy programu PowerShell, ale te same pojęcia dotyczą dowolnego kodu wykonywanego na tej maszynie wirtualnej.

  1. Przejdź do nowo utworzonego magazynu kluczy.

  2. Wybierz pozycję Wpisy tajne i wybierz pozycję Dodaj.

  3. Wybieranie pozycji Generuj/Importuj

  4. Na ekranie Tworzenie wpisu tajnego w obszarze Opcje przekazywania pozostaw wybraną opcję Ręczne .

  5. Wprowadź nazwę i wartość wpisu tajnego.  Wartość może być dowolna. 

  6. Pozostaw pustą datę aktywacji i datę wygaśnięcia oraz zostaw opcję Włączone ustawioną na wartość Tak

  7. Wybierz pozycję Utwórz , aby utworzyć wpis tajny.

    Zrzut ekranu przedstawiający sposób tworzenia wpisu tajnego.

Udzielanie dostępu

Tożsamość zarządzana używana przez maszynę wirtualną musi mieć dostęp do odczytu wpisu tajnego, który będzie przechowywany w usłudze Key Vault.

  1. Przejdź do nowo utworzonej usługi Key Vault

  2. Wybierz pozycję Zasady dostępu z menu po lewej stronie.

  3. Wybierz pozycję Dodaj zasady dostępu

    Zrzut ekranu przedstawiający ekran zasad dostępu do magazynu kluczy.

  4. W sekcji Dodawanie zasad dostępu w obszarze Konfigurowanie z szablonu (opcjonalnie) wybierz pozycję Zarządzanie wpisami tajnymi z menu rozwijanego.

  5. Wybierz opcję Wybierz podmiot zabezpieczeń, a następnie w polu wyszukiwania wprowadź nazwę wcześniej utworzonej maszyny wirtualnej.  Wybierz maszynę wirtualną z listy wyników, a następnie wybierz pozycję Wybierz.

  6. Wybierz Dodaj

  7. Wybierz pozycję Zapisz.

Uzyskiwanie dostępu do danych

W tej sekcji pokazano, jak uzyskać token dostępu przy użyciu tożsamości maszyny wirtualnej i użyć go do pobrania wpisu tajnego z usługi Key Vault. Jeśli nie masz zainstalowanego programu PowerShell 4.3.1 (lub nowszej wersji), musisz pobrać i zainstalować najnowszą wersję.

Najpierw użyjemy przypisanej przez system tożsamości zarządzanej maszyny wirtualnej, aby uzyskać token dostępu do uwierzytelniania w usłudze Key Vault:

  1. W portalu przejdź do pozycji Maszyny wirtualne i przejdź do maszyny wirtualnej z systemem Windows, a następnie w obszarze Przegląd wybierz pozycję Połączenie.
  2. Wprowadź nazwę użytkownika i hasło dodane podczas tworzenia maszyny wirtualnej z systemem Windows.
  3. Po utworzeniu Połączenie pulpitu zdalnego z maszyną wirtualną otwórz program PowerShell w sesji zdalnej.
  4. W programie PowerShell wywołaj żądanie internetowe w dzierżawie, aby uzyskać token dla hosta lokalnego w konkretnym porcie dla maszyny wirtualnej.

Żądanie programu PowerShell:

$Response = Invoke-RestMethod -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -Method GET -Headers @{Metadata="true"} 

Możesz zobaczyć, jak wygląda odpowiedź poniżej:

Zrzut ekranu przedstawiający żądanie z odpowiedzią na token.

Następnie wyodrębnij token dostępu z odpowiedzi.

   $KeyVaultToken = $Response.access_token

Na koniec użyj polecenia Invoke-WebRequest programu PowerShell, aby pobrać wpis tajny utworzony wcześniej w usłudze Key Vault, przekazując token dostępu w nagłówku autoryzacji.  Będziesz potrzebować adresu URL usługi Key Vault, który znajduje się w sekcji Podstawowe elementy na stronie Przegląd usługi Key Vault.

Invoke-RestMethod -Uri https://<your-key-vault-URL>/secrets/<secret-name>?api-version=2016-10-01 -Method GET -Headers @{Authorization="Bearer $KeyVaultToken"}

Odpowiedź będzie wyglądać następująco:

  value       id                                                                                    attributes
  -----       --                                                                                    ----------
  'My Secret' https://mi-lab-vault.vault.azure.net/secrets/mi-test/50644e90b13249b584c44b9f712f2e51 @{enabled=True; created=16…

Po pobraniu wpisu tajnego z usługi Key Vault możesz użyć go do uwierzytelnienia w usłudze wymagającej nazwy i hasła.

Czyszczenie zasobów

Jeśli chcesz wyczyścić zasoby, zaloguj się do witryny Azure Portal, wybierz pozycję Grupy zasobów, znajdź i wybierz grupę zasobów utworzoną w procesie tego samouczka (na przykład mi-test), a następnie użyj polecenia Usuń grupę zasobów.

Możesz również wyczyścić zasoby za pomocą programu PowerShell lub interfejsu wiersza polecenia

Następne kroki

W tym samouczku przedstawiono sposób używania przypisanej przez system tożsamości zarządzanej maszyny wirtualnej z systemem Windows w celu uzyskania dostępu do usługi Azure Key Vault. Aby dowiedzieć się więcej o usłudze Azure Key Vault, zobacz: