Jak tożsamości zarządzane dla zasobów platformy Azure działają z maszynami wirtualnymi platformy Azure

Tożsamości zarządzane dla zasobów platformy Azure udostępniają usługom platformy Azure automatycznie zarządzaną tożsamość w usłudze Microsoft Entra ID. Za pomocą tej tożsamości można uwierzytelnić się w dowolnej usłudze obsługującej uwierzytelnianie usługi Microsoft Entra bez konieczności przechowywania poświadczeń w kodzie.

Z tego artykułu dowiesz się, jak tożsamości zarządzane działają z maszynami wirtualnymi platformy Azure.

Jak to działa

Tożsamości zarządzane wewnętrznie to jednostki usługi specjalnego typu, które mogą być używane tylko z zasobami platformy Azure. Po usunięciu tożsamości zarządzanej odpowiednia jednostka usługi zostanie automatycznie usunięta. Ponadto po utworzeniu tożsamości przypisanej przez użytkownika lub przypisanej przez system dostawca zasobów tożsamości zarządzanej (MSRP) wystawia certyfikat wewnętrznie dla tej tożsamości.

Kod może używać tożsamości zarządzanej do żądania tokenów dostępu dla usług obsługujących uwierzytelnianie firmy Microsoft Entra. Platforma Azure zapewnia stopniową obsługę poświadczeń, które są używane przez wystąpienie usługi.

Na poniższym diagramie pokazano, jak tożsamości usługi zarządzanej współpracują z maszynami wirtualnymi platformy Azure:

Diagram przedstawiający sposób skojarzenia tożsamości usługi zarządzanej z maszynami wirtualnymi platformy Azure, uzyskiwania tokenu dostępu i wywoływanego chronionego zasobu firmy Microsoft Entra.

W poniższej tabeli przedstawiono różnice między tożsamościami zarządzanymi przypisanymi przez system i przypisanymi przez użytkownika:

Właściwości Tożsamość zarządzana przypisana przez system Tożsamość zarządzana przypisana przez użytkownika
Tworzenie Utworzono jako część zasobu platformy Azure (na przykład maszynę wirtualną platformy Azure lub usługę aplikacja systemu Azure Service). Utworzony jako autonomiczny zasób platformy Azure.
Cykl życiowy Współużytkowany cykl życia za pomocą zasobu platformy Azure, za pomocą którego jest tworzona tożsamość zarządzana.
Po usunięciu zasobu nadrzędnego tożsamość zarządzana również zostanie usunięta.
Niezależny cykl życia.
Należy jawnie usunąć.
Udostępnianie zasobów platformy Azure Nie można udostępnić.
Można go skojarzyć tylko z jednym zasobem platformy Azure.
Może być współużytkowany.
Tę samą tożsamość zarządzaną przypisaną przez użytkownika można skojarzyć z więcej niż jednym zasobem platformy Azure.
Typowe przypadki użycia Obciążenia, które znajdują się w ramach pojedynczego zasobu platformy Azure.
Obciążenia, dla których potrzebne są niezależne tożsamości.
Na przykład aplikacja uruchamiana na jednej maszynie wirtualnej
Obciążenia uruchamiane na wielu zasobach i mogą współużytkować jedną tożsamość.
Obciążenia wymagające wstępnej autoryzacji do bezpiecznego zasobu w ramach przepływu aprowizacji.
Obciążenia, w których zasoby są często przetwarzane, ale uprawnienia powinny być spójne.
Na przykład obciążenie, w którym wiele maszyn wirtualnych musi uzyskać dostęp do tego samego zasobu

Tożsamość zarządzana przypisana przez system

  1. Usługa Azure Resource Manager otrzymuje żądanie włączenia tożsamości zarządzanej przypisanej przez system na maszynie wirtualnej.

  2. Usługa Azure Resource Manager tworzy jednostkę usługi w usłudze Microsoft Entra ID dla tożsamości maszyny wirtualnej. Jednostka usługi jest tworzona w dzierżawie firmy Microsoft Entra, która jest zaufana przez subskrypcję.

  3. Usługa Azure Resource Manager aktualizuje tożsamość maszyny wirtualnej przy użyciu punktu końcowego tożsamości usługi Azure Instance Metadata Service (dla systemów Windows i Linux), podając punkt końcowy z identyfikatorem klienta i certyfikatem jednostki usługi.

  4. Teraz, gdy maszyna wirtualna zyskała tożsamość, używamy informacji o jednostce usługi w celu przyznania maszynie wirtualnej dostępu do zasobów platformy Azure. Aby wywołać usługę Azure Resource Manager, użyj kontroli dostępu opartej na rolach platformy Azure (Azure RBAC), aby przypisać odpowiednią rolę do jednostki usługi maszyny wirtualnej. Aby wywołać usługę Key Vault, należy przyznać kodowi dostęp do określonego wpisu tajnego lub klucza w usłudze Key Vault.

  5. Kod uruchomiony na maszynie wirtualnej może zażądać tokenu z punktu końcowego usługi Azure Instance Metadata, dostępnego tylko z poziomu maszyny wirtualnej: http://169.254.169.254/metadata/identity/oauth2/token

    • Parametr zasobu określa usługę, do której jest wysyłany token. Aby przeprowadzić uwierzytelnianie w usłudze Azure Resource Manager, należy użyć elementu resource=https://management.azure.com/.
    • Parametr wersji interfejsu API określa wersję usługi IMDS, użyj wartości api-version=2018-02-01 lub nowszej.

    W poniższym przykładzie pokazano, jak za pomocą narzędzia CURL wysłać żądanie do lokalnego punktu końcowego tożsamości zarządzanej w celu uzyskania tokenu dostępu dla usługi Azure Instance Metadata.

    curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fstorage.azure.com%2F' -H Metadata:true
    
  6. Wywołanie jest wykonywane do identyfikatora Entra firmy Microsoft w celu żądania tokenu dostępu (określonego w kroku 5) przy użyciu identyfikatora klienta i certyfikatu skonfigurowanego w kroku 3. Identyfikator entra firmy Microsoft zwraca token dostępu JSON Web Token (JWT).

  7. Kod wysyła token dostępu w wywołaniu do usługi, która obsługuje uwierzytelnianie firmy Microsoft Entra.

Tożsamość zarządzana przypisana przez użytkownika

  1. Usługa Azure Resource Manager otrzymuje żądanie włączenia tożsamości zarządzanej przypisanej przez użytkownika.

  2. Usługa Azure Resource Manager tworzy jednostkę usługi w usłudze Microsoft Entra ID dla tożsamości zarządzanej przypisanej przez użytkownika. Jednostka usługi jest tworzona w dzierżawie firmy Microsoft Entra, która jest zaufana przez subskrypcję.

  3. Usługa Azure Resource Manager otrzymuje żądanie skonfigurowania tożsamości zarządzanej przypisanej przez użytkownika na maszynie wirtualnej i aktualizuje punkt końcowy tożsamości usługi Azure Instance Metadata Service przy użyciu przypisanego przez użytkownika identyfikatora klienta i certyfikatu jednostki usługi tożsamości zarządzanej.

  4. Po utworzeniu tożsamości zarządzanej przypisanej przez użytkownika należy użyć informacji o jednostce usługi w celu przyznania dostępu do zasobów platformy Azure. Aby wywołać usługę Azure Resource Manager, użyj kontroli dostępu opartej na rolach platformy Azure, aby przypisać odpowiednią rolę do jednostki usługi tożsamości przypisanej przez użytkownika. Aby wywołać usługę Key Vault, należy przyznać kodowi dostęp do określonego wpisu tajnego lub klucza w usłudze Key Vault.

    Uwaga

    Ten krok można również wykonać przed krokiem 3.

  5. Kod uruchomiony na maszynie wirtualnej może zażądać tokenu z punktu końcowego tożsamości usługi Azure Instance Metadata Service, dostępny tylko z poziomu maszyny wirtualnej: http://169.254.169.254/metadata/identity/oauth2/token

    • Parametr zasobu określa usługę, do której jest wysyłany token. Aby przeprowadzić uwierzytelnianie w usłudze Azure Resource Manager, należy użyć elementu resource=https://management.azure.com/.

    • Parametr client_id określa tożsamość, dla której żądano tokenu. Ta wartość jest wymagana do przeprowadzenia uściślania, gdy na jednej maszynie wirtualnej znajduje się więcej niż jedna tożsamość przypisana przez użytkownika. Identyfikator klienta można znaleźć w sekcji Omówienie tożsamości zarządzanej:

      Zrzut ekranu przedstawiający sposób kopiowania identyfikatora klienta tożsamości zarządzanej.

    • Parametr wersji interfejsu API określa wersję usługi Azure Instance Metadata Service. Należy użyć wersji api-version=2018-02-01 lub nowszej.

      W poniższym przykładzie pokazano, jak za pomocą narzędzia CURL wysłać żądanie do lokalnego punktu końcowego tożsamości zarządzanej w celu uzyskania tokenu dostępu dla usługi Azure Instance Metadata.

      curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fstorage.azure.com%2F&client_id=12345678-0000-0000-0000-000000000000' -H Metadata:true
      
  6. Wywołanie jest wykonywane do identyfikatora Entra firmy Microsoft w celu żądania tokenu dostępu (określonego w kroku 5) przy użyciu identyfikatora klienta i certyfikatu skonfigurowanego w kroku 3. Identyfikator entra firmy Microsoft zwraca token dostępu JSON Web Token (JWT).

  7. Kod wysyła token dostępu w wywołaniu do usługi, która obsługuje uwierzytelnianie firmy Microsoft Entra.

Następne kroki

Rozpocznij pracę z funkcją tożsamości zarządzanych dla zasobów platformy Azure, korzystając z następujących przewodników Szybki start: