Zrozum tożsamości obciążenia
Przepływy pracy związane z wdrożeniem, aplikacje i oprogramowanie wymagają specjalnego sposobu uwierzytelniania. W tej lekcji dowiesz się, dlaczego tożsamości obciążeń są ważne dla przepływów pracy wdrażania, sposobu ich dopasowania do modelu zabezpieczeń platformy Azure i sposobu ich działania.
Dlaczego przepływ pracy musi się uwierzytelniać?
Podczas wdrażania pliku Bicep skutecznie poprosisz usługę Azure Resource Manager o utworzenie lub zmodyfikowanie zasobów platformy Azure. W przykładowym scenariuszu utworzyłeś plik Bicep do wdrożenia witryny internetowej swojej firmy zabawek. Plik Bicep deklaruje zasoby, które obejmują plan usługi Azure App Service, aplikację i wystąpienie usługi Application Insights.
Podczas wdrażania pliku usługa Resource Manager sprawdza, czy zasoby istnieją. Jeśli tego nie zrobią, usługa Resource Manager utworzy je. Jeśli jakiekolwiek zasoby już istnieją, usługa Resource Manager gwarantuje, że ich konfiguracja jest zgodna z konfiguracją określoną w pliku Bicep.
Wszystkie te operacje wymagają uprawnień, ponieważ uzyskują dostęp do zasobów platformy Azure i modyfikują je. Określone uprawnienia wymagane do wdrożenia zależą od tego, co zawiera plik Bicep. Aby wdrożyć przykładowy plik dla strony internetowej swojej firmy zabawkarskiej, musisz mieć następujące uprawnienia w grupie zasobów, do której wdrażasz:
- Możliwość tworzenia wdrożeń. Wdrożenia to zasoby o typie
Microsoft.Resources/deployments
. - Możliwość tworzenia i modyfikowania planów i aplikacji usługi App Service.
- Możliwość tworzenia i modyfikowania wystąpień usługi Application Insights.
Do tej pory prawdopodobnie samodzielnie wdrożyłeś(aś) pliki Bicep, używając interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell. W przypadku korzystania z tych narzędzi zwykle używasz własnego konta użytkownika i uwierzytelniasz się za pomocą przeglądarki. Jest to nazywane użyciem własnej tożsamości . Po przesłaniu wdrożenia platforma Azure weryfikuje, czy twoja tożsamość ma niezbędne uprawnienia zgodnie z tym, co określa szablon Bicep.
Po przejściu do przepływu pracy wdrażania w GitHub Actions należy użyć innego typu tożsamości, ponieważ przepływ pracy uruchamia wdrożenia bez twojego bezpośredniego zaangażowania.
Typy tożsamości
Microsoft Entra ID to usługa, która zarządza tożsamościami dla platformy Azure. Niektóre z głównych typów tożsamości to:
- Tożsamości użytkowników: użytkownik reprezentuje człowieka, który zwykle loguje się interaktywnie przy użyciu przeglądarki. Użytkownicy często mają dodatkowe kontrole zabezpieczeń do wykonania podczas logowania, takie jak uwierzytelnianie wieloskładnikowe (MFA) i dostęp warunkowy w oparciu o ich lokalizację lub sieć.
- grupy: grupa reprezentuje kolekcję użytkowników. Grupy nie uwierzytelniają się bezpośrednio, ale zapewniają wygodny sposób przypisywania uprawnień do zestawu użytkowników razem.
- tożsamości obciążeń roboczych: Proces obciążenia to zautomatyzowany proces lub system, który zazwyczaj nie jest uruchamiany bezpośrednio przez człowieka. Aplikacja może zalogować się do Microsoft Entra ID, ale nie wymaga to udziału człowieka w procesie uwierzytelniania. Tożsamości obciążeń roboczych nie mają uwierzytelniania wieloskładnikowego ani podobnych zabezpieczeń, ponieważ te funkcje wymagają, aby osoba wykonała jakieś działanie w celu potwierdzenia tożsamości.
Ten moduł koncentruje się na tożsamościach obciążeń.
Tożsamości zarządzane
Tożsamość zarządzana jest skojarzona z zasobem platformy Azure. Platforma Azure automatycznie zarządza poświadczeniami. Gdy zasób musi uzyskać dostęp do czegoś, platforma Azure automatycznie zaloguje się przy użyciu poświadczeń.
Tożsamości zarządzane są dostępne dla zasobów hostowanych na platformie Azure, takich jak maszyny wirtualne i aplikacje usługi App Service. Są one doskonałym sposobem na uwierzytelnienie zasobów platformy Azure w sytuacjach, takich jak automatyzacja zarządzania platformą Azure, nawiązywanie połączenia z bazami danych i odczytywanie tajnych danych z usługi Azure Key Vault. W innych scenariuszach można też używać tożsamości zarządzanych z usługą Azure Arc.
Podczas pracy z wdrażaniem przepływów pracy zwykle nie używasz tożsamości zarządzanych. Tożsamości zarządzane wymagają, abyś posiadał i zarządzał zasobami platformy Azure, które obsługują twoje wdrożenia. Podczas pracy z funkcją GitHub Actions zwykle korzystasz z udostępnionej infrastruktury udostępnianej przez firmę Microsoft lub GitHub. Jednak gdy używasz tożsamości obciążenia roboczego z funkcją GitHub Actions, możesz uzyskać główną zaletę funkcji tożsamości zarządzanych: nie musisz zarządzać żadnymi poświadczeniami.
Napiwek
W innych częściach rozwiązania, jeśli masz wybór między użyciem tożsamości zarządzanej a użyciem normalnego pryncypału usługi, najlepiej jest wybrać tożsamość zarządzaną. Zarządzane tożsamości są łatwiejsze w użyciu i zwykle bezpieczniejsze.
Dlaczego nie możesz po prostu używać konta użytkownika?
Możesz się zastanawiać, dlaczego musisz utworzyć ten nowy typ obiektu tylko w celu uwierzytelnienia przepływu pracy wdrażania, gdy masz konta użytkowników, które działają doskonale.
Konta użytkowników nie są przeznaczone do użytku nienadzorowanego. Proces uwierzytelniania konta użytkownika często sprawdza, czy użytkownik jest jednostką, która próbuje się zalogować. Coraz częściej organizacje korzystają z dodatkowych kontroli zabezpieczeń podczas uwierzytelniania. Te testy obejmują kontrole MFA, CAPTCHA i inspekcję urządzenia i sieci używanej przez użytkownika w celu zweryfikowania zasadności żądania zalogowania się.
Przepływy pracy są przeznaczone do uruchamiania wdrożeń nawet wtedy, gdy nikt ich nie uruchamia aktywnie. W rzeczywistości większość zalet przepływów pracy wdrażania wynika z faktu, że są one zautomatyzowane i nie wymagają interakcji człowieka.
Jeśli zapiszesz swoją nazwę użytkownika i hasło w przepływie pracy i spróbujesz użyć ich do zalogowania się, prawdopodobnie nie będą działać. Nawet jeśli wydają się działać, mogą łatwo zepsuć się w przyszłości, jeśli Microsoft Entra ID lub administrator w organizacji doda więcej kontroli bezpieczeństwa do procesu uwierzytelniania użytkownika.
Ostrzeżenie
Jest to również zły pomysł, aby zapisać nazwę użytkownika i hasło w dowolnym miejscu, ponieważ ktoś inny może uzyskać do nich dostęp, a następnie użyć ich do personifikacji.
Z tych powodów wbudowane zadania funkcji GitHub Actions, które wchodzą w interakcję z platformą Azure, nie umożliwiają podania poświadczeń konta użytkownika. Wymagają użycia tożsamości przypisanej obciążeniu.
Jak działają tożsamości obciążeń?
Tożsamości obciążeń roboczych są funkcją Microsoft Entra ID, która jest globalną usługą tożsamości. Wiele firm korzysta z Microsoft Entra ID, a każda z tych firm jest nazywana dzierżawcą .
Microsoft Entra ID ma pojęcie aplikacji , która reprezentuje system, element oprogramowania, proces lub innego nieludzkiego agenta. Przepływ pracy wdrażania można potraktować również jako aplikację.
Podczas tworzenia aplikacji i rejestrowania jej w usłudze Microsoft Entra ID, tworzysz obiekt o nazwie rejestracja aplikacji. Rejestracja aplikacji reprezentuje aplikację w identyfikatorze Entra firmy Microsoft.
Rejestracja aplikacji może mieć skojarzone z nią poświadczeń federacyjnych. Poświadczenia federacyjne nie wymagają przechowywania żadnych wpisów tajnych. Zamiast tego umożliwiają usługom takim jak GitHub korzystanie z aplikacji Microsoft Entra.
Gdy przepływ pracy GitHub Actions musi się uwierzytelnić, kontaktuje się z Microsoft Entra ID za pośrednictwem GitHub. Usługa GitHub przekazuje Microsoft Entra ID nazwę organizacji i repozytorium GitHub oraz opcjonalnie inne informacje. Jeśli skonfigurowano poświadczenia federacyjne zgodne ze szczegółami repozytorium, firma Microsoft Entra uwierzytelnia przepływ pracy wdrażania. Przepływ pracy może używać uprawnień, które przypisałeś do aplikacji.
Napiwek
Po zapoznaniu się z rejestracją aplikacji w witrynie Azure Portal zobaczysz wiele innych funkcji i konfiguracji, które mogą nie wydawać się istotne. Dzieje się tak, ponieważ aplikacje mogą wykonywać wiele czynności w identyfikatorze Entra firmy Microsoft, które wykraczają poza zakres wdrożeń uwierzytelniania i przepływu pracy.
Możesz również utworzyć obiekt jednostki usługi w dzierżawie Microsoft Entra. Główna usługa (service principal) to coś jak kopia aplikacji dla Twojej własnej dzierżawy Microsoft Entra do wykorzystania. Jednostki usług i aplikacje są ściśle połączone. W dalszej części tego modułu użyjesz jednostki usługi, gdy przyznasz przepływowi pracy uprawnienia dostępu do platformy Azure.
Notatka
Niektóre narzędzia nazywają jednostkę usługi aplikacją dla przedsiębiorstw. Możesz również zobaczyć jednostki usługi o nazwie aplikacje zarządzane w katalogu lokalnym, ale nie są one takie same jak tożsamości zarządzane.