Compartir a través de


Uso de identidades administradas para acceder a Azure Cosmos DB desde un trabajo de Azure Stream Analytics

Azure Stream Analytics admite la autenticación de identidades administradas para la salida de Azure Cosmos DB. Las identidades administradas eliminan las limitaciones de los métodos de autenticación basada en el usuario, como la necesidad de volver a realizar la autenticación debido a los cambios de contraseña o la expiración de tokens de usuario que se produce cada 90 días. Cuando se elimina la necesidad de autenticarse manualmente, las implementaciones de Stream Analytics se pueden automatizar completamente. 

Una identidad administrada es una aplicación administrada registrada en Microsoft Entra ID que representa un trabajo de Stream Analytics determinado. La aplicación administrada se usa para la autenticación en un recurso de destino. Para más información sobre las identidades administradas para Azure Stream Analytics, consulte Identidades administradas para Azure Stream Analytics.

En este artículo, se muestra cómo habilitar la identidad administrada asignada por el sistema para la salida de Azure Cosmos DB de un trabajo de Stream Analytics a través de Azure Portal. Para poder habilitar la identidad administrada asignada por el sistema, antes debe tener un trabajo de Stream Analytics y un recurso de Azure Cosmos DB.

Creación de una entidad administrada

En primer lugar, debe crear una identidad administrada para el trabajo de Azure Stream Analytics. 

  1. En Azure Portal, abra el trabajo de Azure Stream Analytics. 

  2. En el menú de navegación izquierdo, seleccione Identidad administrada en Configurar. A continuación, active la casilla situada junto a Usar la identidad administrada asignada por el sistema y seleccione Guardar.

    System assigned managed identity

  3. Se crea una entidad de servicio para la identidad del trabajo de Stream Analytics en Microsoft Entra ID. El ciclo de vida de la identidad recién creada lo administrará Azure. Cuando se elimina el trabajo de Stream Analytics, Azure elimina automáticamente la identidad asociada (es decir, la entidad de servicio). 

    Cuando se guarda la configuración, el id. de objeto (OID) de la entidad de servicio aparece como id. de entidad de seguridad, tal como se muestra a continuación:

    Principal ID

    La entidad de servicio se llama igual que el trabajo de Stream Analytics. Por ejemplo, si el nombre del trabajo es MyASAJob, el nombre de la entidad de servicio también será MyASAJob. 

Concesión de permisos al trabajo de Stream Analytics para acceder a la cuenta de Azure Cosmos DB

Para que el trabajo de Stream Analytics acceda a Azure Cosmos DB con una identidad administrada, la entidad de servicio que creó debe tener permisos especiales para la cuenta de Azure Cosmos DB. En este paso, puede asignar un rol a la identidad administrada asignada por el sistema del trabajo de Stream Analytics. Azure Cosmos DB tiene varios roles integrados que se pueden asignar a la identidad administrada. Para esta solución, usará los dos roles siguientes:

Rol integrado
Colaborador de datos integrado de Cosmos DB

Importante

El control de acceso basado en rol (RBAC) integrado del plano de datos de Azure Cosmos DB no se expone a través de Azure Portal. Para asignar el rol Colaborador de datos integrado de Cosmos DB, debes conceder permiso a través de Azure PowerShell. Para obtener más información sobre el control de acceso basado en rol con Microsoft Entra ID para su cuenta de Azure Cosmos DB, consulte la documentación acerca de la configuración del control de acceso basado en roles con Microsoft Entra ID para la cuenta de Azure Cosmos DB.

El siguiente comando se puede usar para autenticar el trabajo de ASA con Azure Cosmos DB. $accountName y $resourceGroupName son para la cuenta de Azure Cosmos DB y $principalId es el valor obtenido en el paso anterior, en la pestaña Identidad del trabajo de ASA. Debe tener acceso de "Colaborador" a la cuenta de Azure Cosmos DB para que este comando funcione adecuadamente.

New-AzCosmosDBSqlRoleAssignment -AccountName $accountName -ResourceGroupName $resourceGroupName -RoleDefinitionId '00000000-0000-0000-0000-000000000002' -Scope "/" -PrincipalId $principalId

Nota

Debido a la replicación global o la latencia de almacenamiento en caché, puede haber un retraso cuando se revocan o se conceden permisos. Los cambios deben reflejarse en un plazo de diez minutos. Aunque la conexión de prueba puede superarse inicialmente, los trabajos pueden producir un error cuando se inician antes de que los permisos se propaguen por completo.

Importante

Si la cuenta de CosmosDB no está configurada para aceptar conexiones de Todas las redes, debe seleccionar Aceptar conexiones desde centros de datos públicos de Azure.

Adición de Azure Cosmos DB como salida

Ahora que la identidad administrada está configurada, lo tiene todo listo para agregar el recurso de Azure Cosmos DB como salida a su trabajo de Stream Analytics. 

  1. Vaya al trabajo de Stream Analytics y navegue a la página Salidas en Topología de trabajo.

  2. Seleccione Añadir > de Azure Cosmos DB. En la ventana de propiedades de la salida, busque y seleccione la cuenta de Azure Cosmos DB y seleccione Identidad administrada: asignada por el sistema en el menú desplegable Modo de autenticación.

  3. Rellene el resto de las propiedades y seleccione Guardar.

Pasos siguientes