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.
En Azure Portal, abra el trabajo de Azure Stream Analytics.
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.
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:
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.
Vaya al trabajo de Stream Analytics y navegue a la página Salidas en Topología de trabajo.
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.
Rellene el resto de las propiedades y seleccione Guardar.