¿Qué es Managed Identities for Azure Resources?What is managed identities for Azure resources?

Managed Identities for Azure Resources es una característica de Azure Active Directory.Managed identities for Azure resources is a feature of Azure Active Directory. Cada servicio de Azure compatible con Managed Identities for Azure Resources está sujeto a su propia escala de tiempo.Each of the Azure services that support managed identities for Azure resources are subject to their own timeline. Asegúrese de revisar el estado de disponibilidad de las identidades administradas para el recurso y los problemas conocidos antes de comenzar.Make sure you review the availability status of managed identities for your resource and known issues before you begin.

Un desafío común al compilar aplicaciones en la nube consiste en el modo de administrar las credenciales del código para autenticar los servicios en la nube.A common challenge when building cloud applications is how to manage the credentials in your code for authenticating to cloud services. Proteger las credenciales es una tarea esencial.Keeping the credentials secure is an important task. Lo ideal sería que nunca aparecieran en las estaciones de trabajo de los desarrolladores y que no se controlaran en el código fuente.Ideally, the credentials never appear on developer workstations and aren't checked into source control. Azure Key Vault proporciona una manera segura de almacenar credenciales, secretos y otras claves pero el código tiene que autenticarse en Key Vault para recuperarlos.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.

Las identidades administradas para recursos de Azure con las que cuenta Azure Active Directory (Azure AD) resuelven este problema.The managed identities for Azure resources feature in Azure Active Directory (Azure AD) solves this problem. Esta característica proporciona a los servicios de Azure una identidad de sistema administrada automáticamente en Azure AD.The feature provides Azure services with an automatically managed identity in Azure AD. Puede usar esta identidad para autenticarse en cualquier servicio que admita la autenticación de Azure AD, incluido Key Vault, sin necesidad de credenciales en el código.You can use the identity to authenticate to any service that supports Azure AD authentication, including Key Vault, without any credentials in your code.

La característica Managed Identities for Azure Resources se incluye gratuitamente en Azure AD con las suscripciones de Azure.The managed identities for Azure resources feature is free with Azure AD for Azure subscriptions. No hay ningún costo adicional.There's no additional cost.

Nota

Identidades administradas para recursos de Azure es el nombre con el que ahora se conoce al servicio Managed Service Identity (MSI).Managed identities for Azure resources is the new name for the service formerly known as Managed Service Identity (MSI).

TerminologíaTerminology

Los siguientes términos se usan en las identidades administradas para el conjunto de documentación de los recursos de Azure:The following terms are used throughout the managed identities for Azure resources documentation set:

  • Id. de cliente: un identificador único que genera Azure AD y que está asociado a una aplicación y entidad de servicio durante su aprovisionamiento inicial.Client ID - a unique identifier generated by Azure AD that is tied to an application and service principal during its initial provisioning.
  • Id. de entidad de seguridad: identificador de objeto del objeto de entidad de servicio de la identidad administrada que se usa para conceder acceso basado en roles a los recursos de 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 Instance Metadata Service (IMDS) : un punto de conexión de REST al que pueden acceder todas las máquinas virtuales IaaS creadas mediante Azure Resource Manager.Azure Instance Metadata Service (IMDS) - a REST endpoint accessible to all IaaS VMs created via the Azure Resource Manager. El punto de conexión está disponible en una dirección IP no enrutable conocida (169.254.169.254) a la que se puede acceder solo desde dentro de la máquina virtual.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.

¿Cómo funcionan las identidades administradas para los recursos de Azure?How does the managed identities for Azure resources work?

Hay dos tipos de identidades administradas:There are two types of managed identities:

  • Las identidades administradas asignadas por el sistema se habilitan directamente en las instancias de servicio de Azure.A system-assigned managed identity is enabled directly on an Azure service instance. Cuando se habilita la identidad, Azure crea una identidad para la instancia del servicio en el inquilino de Azure AD de confianza de la suscripción de la instancia.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. Una vez creada la identidad, las credenciales se aprovisionan en la instancia.After the identity is created, the credentials are provisioned onto the instance. El ciclo de vida de una identidad administrada asignada por el sistema está vinculado directamente a la instancia de servicio de Azure en que está habilitada.The lifecycle of a system-assigned identity is directly tied to the Azure service instance that it's enabled on. Si se elimina la instancia, Azure limpia automáticamente las credenciales y la identidad en Azure AD.If the instance is deleted, Azure automatically cleans up the credentials and the identity in Azure AD.
  • Las identidades administrada asignadas por el usuario se crean como recursos de Azure independientes.A user-assigned managed identity is created as a standalone Azure resource. Mediante un proceso de creación, Azure crea una identidad en el inquilino de Azure AD de confianza para la suscripción que se utiliza.Through a create process, Azure creates an identity in the Azure AD tenant that's trusted by the subscription in use. Una vez creada la identidad, esta puede asignarse a una o varias instancias de servicio de Azure.After the identity is created, the identity can be assigned to one or more Azure service instances. El ciclo de vida de una identidad asignada por el usuario no se administra junto con el ciclo de vida de las instancias de servicio de Azure a las que se asigna.The lifecycle of a user-assigned identity is managed separately from the lifecycle of the Azure service instances to which it's assigned.

Internamente, las identidades administradas son entidades de servicio de un tipo especial, que se bloquean para que solo puedan usarse con recursos de Azure.Internally, managed identities are service principals of a special type, which are locked to only be used with Azure resources. Cuando se elimina la identidad administrada, se quita automáticamente la entidad de servicio correspondiente.When the managed identity is deleted, the corresponding service principal is automatically removed.

El código puede usar una identidad administrada para solicitar tokens de acceso de los servicios que admiten la autenticación de Azure AD.Your code can use a managed identity to request access tokens for services that support Azure AD authentication. Azure se encarga de rotar las credenciales que usa la instancia del servicio.Azure takes care of rolling the credentials that are used by the service instance.

En el diagrama siguiente se muestra cómo funcionan las identidades de servicio administradas con máquinas virtuales (VM) de Azure:The following diagram shows how managed service identities work with Azure virtual machines (VMs):

Identidades de Managed Service Identity y máquinas virtuales de Azure

PropiedadProperty Identidad administrada asignada por el sistemaSystem-assigned managed identity Identidad administrada asignada por el usuarioUser-assigned managed identity
CreaciónCreation Se crea como parte de un recurso de Azure (por ejemplo, una máquina virtual de Azure o Azure App Service)Created as part of an Azure resource (for example, an Azure virtual machine or Azure App Service) Se crea como un recurso de Azure independienteCreated as a stand-alone Azure resource
Ciclo de vidaLifecycle Se comparte el ciclo de vida con el recurso de Azure con el que se creó la identidad administrada.Shared lifecycle with the Azure resource that the managed identity is created with.
Si se elimina el recurso primario, se elimina también la identidad administrada.When the parent resource is deleted, the managed identity is deleted as well.
Ciclo de vida independiente.Independent life-cycle.
Se debe eliminar explícitamente.Must be explicitly deleted.
Uso compartido de recursos de AzureSharing across Azure resources No se puede compartir.Cannot be shared.
Solo se puede asociar con un único recurso de Azure.It can only be associated with a single Azure resource.
Se puede compartirCan be shared
La misma identidad administrada asignada por el usuario se puede asociar con más de un recurso de Azure.The same user-assigned managed identity can be associated with more than one Azure resource.
Casos de uso comunesCommon use cases Cargas de trabajo contenidas en un único recurso de AzureWorkloads that are contained within a single Azure resource
Cargas de trabajo para las que necesita identidades independientes.Workloads for which you need independent identities.
Por ejemplo, una aplicación que se ejecuta en una sola máquina virtualFor example, an application that runs on a single virtual machine
Cargas de trabajo que se ejecutan en varios recursos y que pueden compartir una única identidad.Workloads that run on multiple resources and which can share a single identity.
Cargas de trabajo que necesitan autorización previa para un recurso seguro como parte de un flujo de aprovisionamiento.Workloads that need pre-authorization to a secure resource as part of a provisioning flow.
Cargas de trabajo donde los recursos se reciclan con frecuencia, pero los permisos deben permanecer coherentes.Workloads where resources are recycled frequently, but permissions should stay consistent.
Por ejemplo, una carga de trabajo en la que varias máquinas virtuales tienen que acceder al mismo recursoFor example, a workload where multiple virtual machines need to access the same resource

Funcionamiento de una identidad administrada asignada por el sistema con una máquina virtual de AzureHow a system-assigned managed identity works with an Azure VM

  1. Azure Resource Manager recibe una solicitud para habilitar la identidad administrada asignada por el sistema de una máquina virtual.Azure Resource Manager receives a request to enable the system-assigned managed identity on a VM.

  2. Entonces crea una entidad de servicio en Azure AD para la identidad de la máquina virtual.Azure Resource Manager creates a service principal in Azure AD for the identity of the VM. La entidad de servicio se crea en el inquilino de Azure AD que sea de confianza para la suscripción.The service principal is created in the Azure AD tenant that's trusted by the subscription.

  3. Azure Resource Manager configura la identidad de la máquina virtual mediante la actualización del punto de conexión de identidad de Azure Instance Metadata Service con el identificador de cliente y el certificado de la entidad de servicio.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. Ahora que la máquina virtual tiene una identidad, se usa la información de la entidad de servicio para conceder a la máquina virtual acceso a los recursos de Azure.After the VM has an identity, use the service principal information to grant the VM access to Azure resources. Para llamar a Azure Resource Manager, use el control de acceso basado en rol (RBAC) de Azure AD para asignar el rol apropiado a la entidad de servicio de la máquina virtual.To call Azure Resource Manager, use role-based access control (RBAC) in Azure AD to assign the appropriate role to the VM service principal. Para llamar a Key Vault, conceda a su código acceso al secreto o a la clave específicos en Key Vault.To call Key Vault, grant your code access to the specific secret or key in Key Vault.

  5. El código que se ejecuta en la máquina virtual puede solicitar un token del punto de conexión de Azure Instance Metadata Service, accesible únicamente desde dentro de la máquina virtual: 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

    • El parámetro del recurso especifica el servicio al que se va a enviar el token.The resource parameter specifies the service to which the token is sent. Para autenticarse en Azure Resource Manager, use resource=https://management.azure.com/.To authenticate to Azure Resource Manager, use resource=https://management.azure.com/.
    • El parámetro de versión de API especifica la versión de IMDS, use api-version=2018-02-01 o posterior.API version parameter specifies the IMDS version, use api-version=2018-02-01 or greater.
  6. Se realiza una llamada a Azure AD para solicitar un token de acceso, tal y como se especifica en el paso 5, con el identificador de cliente y el certificado configurado en el paso 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 devuelve un token de acceso JSON Web Token (JWT).Azure AD returns a JSON Web Token (JWT) access token.

  7. El código envía el token de acceso en una llamada a un servicio que admite la autenticación de Azure AD.Your code sends the access token on a call to a service that supports Azure AD authentication.

Funcionamiento de una identidad administrada asignada por el usuario con una máquina virtual de AzureHow a user-assigned managed identity works with an Azure VM

  1. Azure Resource Manager recibe una solicitud para crear una identidad administrada asignada por el usuario.Azure Resource Manager receives a request to create a user-assigned managed identity.

  2. Luego crea una entidad de servicio en Azure AD para la identidad asignada por el usuario.Azure Resource Manager creates a service principal in Azure AD for the user-assigned managed identity. La entidad de servicio se crea en el inquilino de Azure AD que sea de confianza para la suscripción.The service principal is created in the Azure AD tenant that's trusted by the subscription.

  3. Azure Resource Manager recibe una solicitud para configurar la identidad administrada asignada por el usuario en una máquina virtual y actualiza el punto de conexión de identidad de Azure Instance Metadata Service con el identificador de cliente y el certificado de la entidad de servicio de la identidad administrada asignada por el usuario.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. Una vez que se ha creado la identidad administrada asignada por el usuario, se usa la información de la entidad de servicio para conceder a la identidad acceso a los recursos de Azure.After the user-assigned managed identity is created, use the service principal information to grant the identity access to Azure resources. Para llamar a Azure Resource Manager, use el control de acceso basado en rol (RBAC) de Azure AD para asignar el rol apropiado a la entidad de servicio de la identidad asignada por el usuario.To call Azure Resource Manager, use RBAC in Azure AD to assign the appropriate role to the service principal of the user-assigned identity. Para llamar a Key Vault, conceda a su código acceso al secreto o a la clave específicos en Key Vault.To call Key Vault, grant your code access to the specific secret or key in Key Vault.

    Nota

    También puede realizar este paso antes del paso 3.You can also do this step before step 3.

  5. El código que se ejecuta en la máquina virtual puede solicitar un token del punto de conexión de identidad de Azure Instance Metadata Service, accesible únicamente desde dentro de la máquina virtual: http://169.254.169.254/metadata/identity/oauth2/token.Your 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

    • El parámetro del recurso especifica el servicio al que se va a enviar el token.The resource parameter specifies the service to which the token is sent. Para autenticarse en Azure Resource Manager, use resource=https://management.azure.com/.To authenticate to Azure Resource Manager, use resource=https://management.azure.com/.
    • El parámetro de identificador de cliente especifica la identidad para la que se solicita el token.The client ID parameter specifies the identity for which the token is requested. Este valor es necesario para eliminar la ambigüedad cuando hay varias identidades asignadas por el usuario en la misma máquina virtual.This value is required for disambiguation when more than one user-assigned identity is on a single VM.
    • El parámetro de versión de API especifica la versión de Azure Instance Metadata Service.The API version parameter specifies the Azure Instance Metadata Service version. Use api-version=2018-02-01 o superior.Use api-version=2018-02-01 or higher.
  6. Se realiza una llamada a Azure AD para solicitar un token de acceso, tal y como se especifica en el paso 5, con el identificador de cliente y el certificado configurado en el paso 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 devuelve un token de acceso JSON Web Token (JWT).Azure AD returns a JSON Web Token (JWT) access token.

  7. El código envía el token de acceso en una llamada a un servicio que admite la autenticación de Azure AD.Your code sends the access token on a call to a service that supports Azure AD authentication.

¿Cómo se usan las identidades administradas de Managed Identities for Azure Resources?How can I use managed identities for Azure resources?

Si quiere aprender a usar las identidades administradas para acceder a diferentes recursos de Azure, pruebe estos tutoriales.To learn how to use managed identities to access different Azure resources, try these tutorials.

Nota

Consulte el curso Implementing Managed Identities for Microsoft Azure Resources (Implementación de identidades administradas para los recursos de Microsoft Azure) para más información acerca de las identidades administradas, además de tutoriales en vídeo de varios escenarios admitidos.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.

Aprenda a usar una identidad administrada con una máquina virtual Windows:Learn how to use a managed identity with a Windows VM:

Aprenda a usar una identidad administrada con una máquina virtual Linux:Learn how to use a managed identity with a Linux VM:

Aprenda a usar una identidad administrada con otros servicios de Azure:Learn how to use a managed identity with other Azure services:

¿Qué servicios de Azure admiten la característica?What Azure services support the feature?

Las identidades administradas de Managed Identities for Azure Resources se pueden usar para autenticarse en servicios que admiten la autenticación de Azure AD.Managed identities for Azure resources can be used to authenticate to services that support Azure AD authentication. Para ver una lista de los servicios de Azure que admiten la característica Managed Identities for Azure Resources, consulte Services that support managed identities for Azure resources (Servicios que admiten la característica Managed Identities for Azure Resources).For a list of Azure services that support the managed identities for Azure resources feature, see Services that support managed identities for Azure resources.

Pasos siguientesNext steps

Empiece a utilizar la característica Managed Identities for Azure Resources con las guías de inicio rápido siguientes:Get started with the managed identities for Azure resources feature with the following quickstarts: