Что такое управляемые удостоверения для ресурсов Azure?What are managed identities for Azure resources?

Управляемые удостоверения для ресурсов Azure — это функция Azure Active Directory.Managed identities for Azure resources is a feature of Azure Active Directory. Каждая служба Azure, которая поддерживает управляемые удостоверения для ресурсов Azure, используется в соответствии с собственной временной шкалой.Each of the Azure services that support managed identities for Azure resources are subject to their own timeline. Прежде чем начать работу, обязательно проверьте состояние доступности управляемых удостоверений для своего ресурса и ознакомьтесь с известными проблемами.Make sure you review the availability status of managed identities for your resource and known issues before you begin.

Распространенная проблема при создании облачных приложений — управление учетными данными в коде для проверки подлинности в облачных службах.A common challenge when building cloud applications is how to manage the credentials in your code for authenticating to cloud services. Обеспечение безопасности учетных данных является важной задачей.Keeping the credentials secure is an important task. В идеальном случае учетные данные никогда не передаются на рабочие станции разработчиков и не проверяются после изменения в системе управления версиями.Ideally, the credentials never appear on developer workstations and aren't checked into source control. Azure Key Vault позволяет обеспечить безопасное хранение учетных данных, секретов, а также других ключей, но для их получения код должен выполнять проверку подлинности в Key Vault.Azure Key Vault provides a way to securely store credentials, secrets, and other keys, but your code has to authenticate to Key Vault to retrieve them.

Функция управляемых удостоверений для ресурсов Azure в Azure Active Directory решает эту проблему.The managed identities for Azure resources feature in Azure Active Directory (Azure AD) solves this problem. Функция предоставляет службам Azure автоматически управляемое удостоверение в Azure AD.The feature provides Azure services with an automatically managed identity in Azure AD. Удостоверение можно использовать для проверки подлинности в любой службе, которая поддерживает проверку подлинности Azure AD, включая Key Vault, при этом не сохраняя каких-либо учетных данных в коде.You can use the identity to authenticate to any service that supports Azure AD authentication, including Key Vault, without any credentials in your code.

Использование функции управляемых удостоверений для ресурсов Azure предоставляется AAD бесплатно для подписок Azure.The managed identities for Azure resources feature is free with Azure AD for Azure subscriptions. Дополнительные затраты отсутствуют.There's no additional cost.

Примечание

Управляемые удостоверения для ресурсов Azure — это новое название службы "Управляемое удостоверение службы" (MSI).Managed identities for Azure resources is the new name for the service formerly known as Managed Service Identity (MSI).

ТерминологияTerminology

В документации по ресурсам Azure используются следующие термины для управляемых удостоверений.The following terms are used throughout the managed identities for Azure resources documentation set:

  • Идентификатор клиента — уникальный идентификатор, созданный с помощью Azure AD, который связан с приложением и субъектом-службой на этапе начальной подготовки.Client ID - a unique identifier generated by Azure AD that is tied to an application and service principal during its initial provisioning.
  • Идентификатор субъекта — идентификатор объекта субъекта-службы для управляемого удостоверения, которое используется для предоставления доступа на основе ролей к ресурсу Azure.Principal ID - the object ID of the service principal object for your managed identity that is used to grant role-based access to an Azure resource.
  • Служба метаданных экземпляров Azure (IMDS)  — конечная точка REST, доступная всем виртуальным машинам IaaS, которые созданы с помощью Azure Resource Manager.Azure Instance Metadata Service (IMDS) - a REST endpoint accessible to all IaaS VMs created via the Azure Resource Manager. Конечная точка доступна по известному IP-адресу без поддержки маршрутизации (169.254.169.254), к которому можно получить доступ только в пределах виртуальной машины.The endpoint is available at a well-known non-routable IP address (169.254.169.254) that can be accessed only from within the VM.

Типы управляемых удостоверенийManaged identity types

Существует два типа управляемых удостоверений.There are two types of managed identities:

  • Назначаемое системой управляемое удостоверение включается непосредственно в экземпляре службы Azure.A system-assigned managed identity is enabled directly on an Azure service instance. Если удостоверение включено, Azure создает удостоверение для экземпляра службы в клиенте Azure AD, который является доверенным в подписке этого экземпляра.When the identity is enabled, Azure creates an identity for the instance in the Azure AD tenant that's trusted by the subscription of the instance. После создания удостоверения учетные данные подготавливаются для передачи в экземпляр.After the identity is created, the credentials are provisioned onto the instance. Жизненный цикл назначаемого системой удостоверения напрямую связан с экземпляром службы Azure, в которой оно включено.The life cycle of a system-assigned identity is directly tied to the Azure service instance that it's enabled on. При удалении экземпляра Azure автоматически очищает учетные данные и удостоверение в Azure AD.If the instance is deleted, Azure automatically cleans up the credentials and the identity in Azure AD.
  • Назначаемое пользователем управляемое удостоверение создается как изолированный ресурс Azure.A user-assigned managed identity is created as a standalone Azure resource. При этом Azure создает удостоверение в доверенном клиенте Azure AD используемой подписки.Through a create process, Azure creates an identity in the Azure AD tenant that's trusted by the subscription in use. После создания удостоверения оно может быть назначено одному или нескольким экземплярам служб Azure.After the identity is created, the identity can be assigned to one or more Azure service instances. Управление жизненным циклом управляемого удостоверения, назначаемого пользователем, осуществляется отдельно от жизненного цикла экземпляров служб Azure, для которых оно назначено.The life cycle of a user-assigned identity is managed separately from the life cycle of the Azure service instances to which it's assigned.

На внутреннем уровне управляемые удостоверения — это субъекты-службы особого типа, которые заблокированы только для использования с ресурсами Azure.Internally, managed identities are service principals of a special type, which are locked to only be used with Azure resources. При удалении управляемого удостоверения соответствующий субъект-служба автоматически удаляется.When the managed identity is deleted, the corresponding service principal is automatically removed. Кроме того, при создании удостоверения, назначаемого пользователем или системой, для него поставщик ресурсов управляемых удостоверений (MSRP) на внутреннем уровне выдает сертификат.Also, when a User-Assigned or System-Assigned Identity is created, the Managed Identity Resource Provider (MSRP) issues a certificate internally to that identity.

Затем ваш код может использовать управляемое удостоверение для запроса на получение маркеров доступа для служб, которые поддерживают аутентификацию Azure AD.Your code can use a managed identity to request access tokens for services that support Azure AD authentication. Azure выполняет развертывание учетных данных, используемых экземпляром службы.Azure takes care of rolling the credentials that are used by the service instance.

Смена учетных данныхCredential Rotation

Сменой учетных данных управляет поставщик ресурсов, в котором размещается ресурс Azure.Credential rotation is controlled by the resource provider that hosts the Azure resource. По умолчанию учетные данные меняются каждые 46 дней.The default rotation of the credential occurs every 46 days. Запрос новых учетных данных выполняет поставщик ресурсов, то есть он может подождать больше 46 дней.It's up to the resource provider to call for new credentials, so the resource provider could wait longer than 46 days.

Работа управляемых удостоверений служб с виртуальными машинами Azure показана на следующей схеме.The following diagram shows how managed service identities work with Azure virtual machines (VMs):

Управляемые удостоверения служб и виртуальные машины Azure

СвойствоProperty Управляемое удостоверение, назначаемое системойSystem-assigned managed identity Управляемое удостоверение, назначаемое пользователемUser-assigned managed identity
СозданиеCreation Создано как часть ресурса Azure (например, виртуальная машина Azure или Служба приложений Azure).Created as part of an Azure resource (for example, an Azure virtual machine or Azure App Service) Создано в качестве автономного ресурса Azure.Created as a stand-alone Azure resource
Жизненный циклLife cycle Жизненный цикл в общем доступе с ресурсом Azure, указанным при создании управляемого удостоверения.Shared life cycle with the Azure resource that the managed identity is created with.
При удалении родительского ресурса управляемое удостоверение также удаляется.When the parent resource is deleted, the managed identity is deleted as well.
Независимый жизненный цикл.Independent life cycle.
Должен быть явно удален.Must be explicitly deleted.
Совместное использование ресурсов AzureSharing across Azure resources Невозможно настроить общий доступ.Cannot be shared.
Может быть связано только с одним ресурсом Azure.It can only be associated with a single Azure resource.
Может быть в общем доступе.Can be shared
Одно и то же назначаемое пользователем управляемое удостоверение может быть связано с несколькими ресурсами Azure.The same user-assigned managed identity can be associated with more than one Azure resource.
Распространенные варианты использованияCommon use cases Рабочие нагрузки, которые содержатся в одном ресурсе Azure.Workloads that are contained within a single Azure resource
Рабочие нагрузки, для которых требуются независимые удостоверения.Workloads for which you need independent identities.
Например, приложение, выполняющееся на одной виртуальной машине.For example, an application that runs on a single virtual machine
Рабочие нагрузки, которые выполняются на нескольких ресурсах и могут совместно использовать одно удостоверение.Workloads that run on multiple resources and which can share a single identity.
Рабочие нагрузки, требующие предварительную авторизацию к защищенному ресурсу, как часть потока подготовки.Workloads that need pre-authorization to a secure resource as part of a provisioning flow.
Рабочие нагрузки, где ресурсы перезапускаются часто, но разрешения должны быть согласованными.Workloads where resources are recycled frequently, but permissions should stay consistent.
Например, рабочая нагрузка, где нескольким виртуальным машинам требуется доступ к одному и тому же ресурсу.For example, a workload where multiple virtual machines need to access the same resource

Использование назначаемого системой управляемого удостоверения с виртуальной машиной AzureHow a system-assigned managed identity works with an Azure VM

  1. Azure Resource Manager получает запрос на включение назначаемого системой управляемого удостоверения MSI в виртуальной машине.Azure Resource Manager receives a request to enable the system-assigned managed identity on a VM.

  2. Azure Resource Manager создает субъект-службу в Azure AD для удостоверения виртуальной машины.Azure Resource Manager creates a service principal in Azure AD for the identity of the VM. В клиенте Azure AD, который является доверенным для этой подписки, создается субъект-служба.The service principal is created in the Azure AD tenant that's trusted by the subscription.

  3. Azure Resource Manager настраивает идентификатор в виртуальной машине, обновляя конечную точку удостоверения Службы метаданных экземпляров Azure с помощью идентификатора клиента и сертификата субъекта-службы.Azure Resource Manager configures the identity on the VM by updating the Azure Instance Metadata Service identity endpoint with the service principal client ID and certificate.

  4. После того как виртуальной машине было назначено удостоверение, для предоставления доступа виртуальной машины к ресурсам Azure используются сведения о субъекте-службе.After the VM has an identity, use the service principal information to grant the VM access to Azure resources. Чтобы назначить соответствующую роль субъект-службе виртуальной машины, используйте Azure Resource Manager. Его можно вызвать с помощью управления доступом на основе ролей RBAC в Azure AD.To call Azure Resource Manager, use role-based access control (RBAC) in Azure AD to assign the appropriate role to the VM service principal. Для вызова Key Vault следует предоставить доступ к определенному секрету или ключу в Key Vault.To call Key Vault, grant your code access to the specific secret or key in Key Vault.

  5. Код, выполняющийся на виртуальной машине, может запросить маркер из конечной точки службы метаданных экземпляров Azure, доступной только на виртуальной машине: http://169.254.169.254/metadata/identity/oauth2/tokenYour code that's running on the VM can request a token from the Azure Instance Metadata service endpoint, accessible only from within the VM: http://169.254.169.254/metadata/identity/oauth2/token

    • Параметр ресурса указывает службу, в которую отправляется маркер.The resource parameter specifies the service to which the token is sent. Для проверки подлинности в Azure Resource Manager необходимо использовать resource=https://management.azure.com/.To authenticate to Azure Resource Manager, use resource=https://management.azure.com/.
    • Параметр версии API указывает версию IMDS. Используйте api-version=2018-02-01 или более позднюю версию.API version parameter specifies the IMDS version, use api-version=2018-02-01 or greater.
  6. В Azure AD выполняется вызов для запроса маркера доступа (как указано в шаге 5) с использованием идентификатора клиента и сертификата, настроенных на шаге 3.A call is made to Azure AD to request an access token (as specified in step 5) by using the client ID and certificate configured in step 3. Azure AD возвращает маркер доступа JSON Web Token (JWT).Azure AD returns a JSON Web Token (JWT) access token.

  7. Код отправляет этот маркер доступа при вызове службы, которая поддерживает аутентификацию Azure AD.Your code sends the access token on a call to a service that supports Azure AD authentication.

Использование назначаемого пользователем управляемого удостоверения на виртуальной машине AzureHow a user-assigned managed identity works with an Azure VM

  1. Azure Resource Manager получает запрос на создание назначаемого пользователем управляемого удостоверения.Azure Resource Manager receives a request to create a user-assigned managed identity.

  2. Azure Resource Manager создает субъект-службу в Azure AD для назначаемого пользователем управляемого удостоверения.Azure Resource Manager creates a service principal in Azure AD for the user-assigned managed identity. В клиенте Azure AD, который является доверенным для этой подписки, создается субъект-служба.The service principal is created in the Azure AD tenant that's trusted by the subscription.

  3. Azure Resource Manager получает запрос на настройку назначаемого пользователем управляемого удостоверения на виртуальной машине и обновляет конечную точку удостоверения Службы метаданных экземпляра Azure, используя назначенный пользователем идентификатор клиента и сертификат субъекта-службы управляемого удостоверения.Azure Resource Manager receives a request to configure the user-assigned managed identity on a VM and updates the Azure Instance Metadata Service identity endpoint with the user-assigned managed identity service principal client ID and certificate.

  4. Создав назначаемое пользователем управляемое удостоверение, примените сведения о субъекте-службе, чтобы предоставить этому удостоверению доступ к ресурсам Azure.After the user-assigned managed identity is created, use the service principal information to grant the identity access to Azure resources. Чтобы назначить соответствующую роль субъекту-службе назначаемого пользователем удостоверения, используйте вызов Azure Resource Manager с помощью RBAC в Azure AD.To call Azure Resource Manager, use RBAC in Azure AD to assign the appropriate role to the service principal of the user-assigned identity. Для вызова Key Vault следует предоставить доступ к определенному секрету или ключу в Key Vault.To call Key Vault, grant your code access to the specific secret or key in Key Vault.

    Примечание

    Также данное действие можно выполнить перед шагом 3.You can also do this step before step 3.

  5. Код, выполняющийся на виртуальной машине, может запросить маркер из конечной точки Службы метаданных экземпляров Azure, доступной только на виртуальной машине: http://169.254.169.254/metadata/identity/oauth2/tokenYour code that's running on the VM can request a token from the Azure Instance Metadata Service identity endpoint, accessible only from within the VM: http://169.254.169.254/metadata/identity/oauth2/token

    • Параметр ресурса указывает службу, в которую отправляется маркер.The resource parameter specifies the service to which the token is sent. Для проверки подлинности в Azure Resource Manager необходимо использовать resource=https://management.azure.com/.To authenticate to Azure Resource Manager, use resource=https://management.azure.com/.
    • Параметр идентификатора клиента определяет удостоверение, для которого запрашивается маркер.The client ID parameter specifies the identity for which the token is requested. Это значение необходимо для устранения неоднозначности, когда на одной виртуальной машине доступны несколько назначаемых пользователем удостоверений.This value is required for disambiguation when more than one user-assigned identity is on a single VM.
    • Параметры версии API указывают версию Службы метаданных экземпляров Azure.The API version parameter specifies the Azure Instance Metadata Service version. Используйте api-version=2018-02-01 или более поздней версии.Use api-version=2018-02-01 or higher.
  6. В Azure AD выполняется вызов для запроса маркера доступа (как указано в шаге 5) с использованием идентификатора клиента и сертификата, настроенных на шаге 3.A call is made to Azure AD to request an access token (as specified in step 5) by using the client ID and certificate configured in step 3. Azure AD возвращает маркер доступа JSON Web Token (JWT).Azure AD returns a JSON Web Token (JWT) access token.

  7. Код отправляет этот маркер доступа при вызове службы, которая поддерживает аутентификацию Azure AD.Your code sends the access token on a call to a service that supports Azure AD authentication.

Как применять управляемые удостоверения для ресурсов Azure?How can I use managed identities for Azure resources?

Дополнительные сведения об использовании управляемых удостоверений для получения доступа к разным ресурсам Azure приведены в следующих руководствах.To learn how to use managed identities to access different Azure resources, try these tutorials.

Примечание

Дополнительные сведения об управляемых удостоверениях, в том числе пошаговые видео-руководства по нескольким поддерживаемым сценариям, см. в курсе по внедрению управляемых удостоверений для ресурсов Microsoft Azure.Check out the Implementing Managed Identities for Microsoft Azure Resources course for more information about managed identities, including detailed video walkthroughs of several supported scenarios.

См. дополнительные сведения об использовании управляемого удостоверения для виртуальной машины Windows:Learn how to use a managed identity with a Windows VM:

См. дополнительные сведения об использовании управляемого удостоверения для виртуальной машины Linux:Learn how to use a managed identity with a Linux VM:

См. дополнительные сведения об использовании управляемого удостоверения для других служб Azure:Learn how to use a managed identity with other Azure services:

Службы Azure, в которых поддерживается данная функция.What Azure services support the feature?

Управляемые удостоверения для ресурсов Azure можно использовать для аутентификации служб с поддержкой аутентификации Azure AD.Managed identities for Azure resources can be used to authenticate to services that support Azure AD authentication. См. дополнительные сведения о службах, которые поддерживают управляемые удостоверения для ресурсов Azure.For a list of Azure services that support the managed identities for Azure resources feature, see Services that support managed identities for Azure resources.

Дальнейшие действияNext steps

Чтобы использовать управляемые удостоверения для ресурсов Azure, ознакомьтесь со следующими краткими руководствами:Get started with the managed identities for Azure resources feature with the following quickstarts: