Samouczek: używanie przypisanej przez system tożsamości zarządzanej maszyny wirtualnej z systemem Linux do uzyskiwania 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 Linux 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życie wpisu tajnego w celu uzyskania dostępu do zasobów, które nie są zabezpieczone przez identyfikator Entra firmy Microsoft. Tożsamości usługi zarządzanej są automatycznie zarządzane przez platformę Azure i umożliwiają uwierzytelnianie w usługach obsługujących uwierzytelnianie firmy Microsoft Entra bez uwzględniania informacji o uwierzytelnianiu 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 i używanie go do pobierania 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. Korzystając z tożsamości zarządzanych dla zasobów platformy Azure, kod może uzyskać tokeny dostępu w celu uwierzytelnienia 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 maszyny wirtualnej dostępu do usługi Key Vault.

  1. Zaloguj się w witrynie Azure Portal.

  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.

    Zrzut ekranu przedstawiający ekran tworzenia usługi Azure Key Vault.

  7. Wypełnij wszystkie wymagane informacje, upewniając się, że wybrano subskrypcję i grupę zasobów, w której utworzono maszynę wirtualną 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 z opcji Przekazywania pozostaw wybraną opcję Ręcznie.

  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 tworzenie wpisu tajnego.

Udzielanie dostępu

Tożsamość zarządzana używana przez maszynę wirtualną musi mieć dostęp do odczytu wpisu tajnego przechowywanego 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 tworzenie zasad dostępu w magazynie 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

Aby wykonać te kroki, potrzebujesz klienta SSH.  Jeśli używasz systemu Windows, możesz użyć klienta SSH w pozycji Podsystem Windows dla systemu Linux. Jeżeli potrzebujesz pomocy w konfigurowaniu kluczy klienta SSH, zobacz Jak używać kluczy SSH z systemem Windows na platformie Azure lub Jak utworzyć i użyć parę publicznego i prywatnego klucza SSH dla maszyn wirtualnych z systemem Linux na platformie Azure.

Ważne

Wszystkie zestawy SDK platformy Azure obsługują bibliotekę Azure.Identity, która ułatwia uzyskiwanie tokenów firmy Microsoft w celu uzyskania dostępu do usług docelowych. Dowiedz się więcej o zestawach AZURE SDK i skorzystaj z biblioteki Azure.Identity.

  1. W portalu przejdź do maszyny wirtualnej z systemem Linux, a następnie w obszarze Przegląd wybierz pozycję Połączenie. 

  2. Połącz się z maszyną wirtualną przy użyciu wybranego klienta SSH. 

  3. W oknie terminalu użyj narzędzia CURL, aby wysłać żądanie do lokalnego punktu końcowego tożsamości zarządzanych dla zasobów platformy Azure w celu uzyskania tokenu dostępu dla usługi Azure Key Vault.    

    Żądanie programu CURL dla tokenu dostępu znajduje się poniżej.  

    curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -H Metadata:true  
    

    Odpowiedź zawiera token dostępu wymagany do uzyskania dostępu do usługi Resource Manager. 

    Odpowiedzi:

    {"access_token":"eyJ0eXAi...",
    "refresh_token":"",
    "expires_in":"3599",
    "expires_on":"1504130527",
    "not_before":"1504126627",
    "resource":"https://vault.azure.net",
    "token_type":"Bearer"} 
    

    Możesz użyć tego tokenu dostępu, aby przeprowadzić uwierzytelnianie do usługi Azure Key Vault.  Kolejne żądanie programu CURL przedstawia sposób odczytu wpisu tajnego z usługi Key Vault przy użyciu programu CURL i interfejsu API REST usługi Key Vault.  Potrzebny jest adres URL usługi Key Vault, który znajduje się w sekcji Podstawy na stronie Przeglądusługi Key Vault.  Potrzebny jest również token dostępu uzyskany podczas poprzedniego wywołania. 

    curl 'https://<YOUR-KEY-VAULT-URL>/secrets/<secret-name>?api-version=2016-10-01' -H "Authorization: Bearer <ACCESS TOKEN>" 
    

    Odpowiedź wygląda następująco:

    {"value":"p@ssw0rd!","id":"https://mytestkeyvault.vault.azure.net/secrets/MyTestSecret/7c2204c6093c4d859bc5b9eff8f29050","attributes":{"enabled":true,"created":1505088747,"updated":1505088747,"recoveryLevel":"Purgeable"}} 
    

Po pobraniu wpisu tajnego z usługi Key Vault możesz użyć go do uwierzytelniania 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.

Alternatywnie możesz to zrobić 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 Linux w celu uzyskania dostępu do usługi Azure Key Vault. Dowiedz się więcej o usłudze Azure Key Vault: