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
- Podstawowa wiedza na temat tożsamości zarządzanych. Jeśli nie znasz funkcji tożsamości zarządzanych dla zasobów platformy Azure, zobacz to omówienie.
- Konto platformy Azure, utwórz bezpłatne konto.
- Uprawnienia "Właściciel" w odpowiednim zakresie (subskrypcja lub grupa zasobów) do wykonania wymaganych kroków tworzenia zasobów i zarządzania rolami. Jeśli potrzebujesz pomocy dotyczącej przypisywania ról, zobacz Przypisywanie ról platformy Azure w celu zarządzania dostępem do zasobów subskrypcji platformy Azure.
- Potrzebna jest również maszyna wirtualna z systemem Linux z włączonymi tożsamościami zarządzanymi przypisanymi przez system.
- Jeśli musisz utworzyć maszynę wirtualną na potrzeby tego samouczka, możesz skorzystać z artykułu zatytułowanego Tworzenie maszyny wirtualnej z systemem Linux przy użyciu witryny Azure Portal
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.
Zaloguj się w witrynie Azure Portal.
W górnej części lewego paska nawigacyjnego wybierz pozycję Utwórz zasób.
W polu Wyszukaj w witrynie Marketplace wpisz ciąg Key Vault i naciśnij klawisz Enter.
Wybierz pozycję Key Vault z wyników.
Wybierz pozycję Utwórz.
Podaj nazwę nowego magazynu kluczy.
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.
Wybierz pozycję Przejrzyj i utwórz
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.
Przejdź do nowo utworzonego magazynu kluczy.
Wybierz pozycję Wpisy tajne i wybierz pozycję Dodaj.
Wybieranie pozycji Generuj/Importuj
Na ekranie Tworzenie wpisu tajnego z opcji Przekazywania pozostaw wybraną opcję Ręcznie.
Wprowadź nazwę i wartość wpisu tajnego. Wartość może być dowolna.
Pozostaw pustą datę aktywacji i datę wygaśnięcia oraz zostaw opcję Włączone ustawioną na wartość Tak.
Wybierz pozycję Utwórz , aby utworzyć wpis tajny.
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.
Przejdź do nowo utworzonej usługi Key Vault
Wybierz pozycję Zasady dostępu z menu po lewej stronie.
Wybierz pozycję Dodaj zasady dostępu
W sekcji Dodawanie zasad dostępu w obszarze Konfigurowanie z szablonu (opcjonalnie) wybierz pozycję Zarządzanie wpisami tajnymi z menu rozwijanego.
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.
Wybierz Dodaj
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.
W portalu przejdź do maszyny wirtualnej z systemem Linux, a następnie w obszarze Przegląd wybierz pozycję Połączenie.
Połącz się z maszyną wirtualną przy użyciu wybranego klienta SSH.
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: