Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Cuando se usa autenticación de identidad administrada para la salida a Azure Blob Storage, los trabajos de Stream Analytics obtienen acceso directo a una cuenta de almacenamiento sin usar un cadena de conexión. Esta característica mejora la seguridad y permite escribir datos en una cuenta de almacenamiento en una red virtual (VNET) dentro de Azure.
En este artículo se muestra cómo habilitar la identidad administrada para las salidas de blobs de un trabajo de Stream Analytics a través del portal de Azure y a través de una implementación de Azure Resource Manager.
Creación del trabajo de Stream Analytics mediante el portal de Azure
En primer lugar, cree una identidad administrada para el trabajo de Azure Stream Analytics.
En el portal de Azure, 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.
Azure crea un principal de servicio para la identidad del trabajo de Stream Analytics en Microsoft Entra ID. Azure administra el ciclo de vida de la identidad recién creada. Al eliminar el trabajo de Stream Analytics, Azure elimina automáticamente la identidad asociada (es decir, la entidad de servicio).
Al guardar la configuración, el identificador de objeto (OID) del principal del servicio aparece como ID de principal, como se muestra en la sección siguiente.
El principal de servicio tiene el mismo nombre que el trabajo de Stream Analytics. Por ejemplo, si el nombre del trabajo es
MyASAJob, el nombre del principal del servicio también seráMyASAJob.
Implementación de Azure Resource Manager
Con Azure Resource Manager, puede automatizar completamente la implementación del trabajo de Stream Analytics. Puede implementar plantillas de Resource Manager mediante Azure PowerShell o CLI de Azure. En los ejemplos siguientes se usa el CLI de Azure.
Cree un Microsoft. StreamAnalytics/streamingjobs recurso con una identidad administrada mediante la inclusión de la siguiente propiedad en la sección de recursos de la plantilla de Resource Manager:
"Identity": { "Type": "SystemAssigned", },Esta propiedad indica a Azure Resource Manager que cree y administre la identidad del trabajo de Stream Analytics. En el siguiente ejemplo de plantilla de Resource Manager, se implementa un trabajo de Stream Analytics con identidad administrada habilitada y un destino de salida de blobs que utiliza identidad administrada:
{ "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "resources": [ { "apiVersion": "2017-04-01-preview", "name": "MyStreamingJob", "location": "[resourceGroup().location]", "type": "Microsoft.StreamAnalytics/StreamingJobs", "identity": { "type": "systemAssigned" }, "properties": { "sku": { "name": "standard" }, "outputs":[ { "name":"output", "properties":{ "serialization": { "type": "JSON", "properties": { "encoding": "UTF8" } }, "datasource":{ "type":"Microsoft.Storage/Blob", "properties":{ "storageAccounts": [ { "accountName": "MyStorageAccount" } ], "container": "test", "pathPattern": "segment1/{date}/segment2/{time}", "dateFormat": "yyyy/MM/dd", "timeFormat": "HH", "authenticationMode": "Msi" } } } } ] } } ] }Puede implementar el trabajo anterior en el grupo de recursos ExampleGroup mediante el comando CLI de Azure siguiente:
az deployment group create --resource-group ExampleGroup -template-file StreamingJob.jsonDespués de crear el trabajo, use Azure Resource Manager para recuperar la definición completa del trabajo.
az resource show --ids /subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP}/providers/Microsoft.StreamAnalytics/StreamingJobs/{RESOURCE_NAME}El comando anterior devuelve una respuesta como en el ejemplo siguiente:
{ "id": "/subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP}/providers/Microsoft.StreamAnalytics/streamingjobs/{RESOURCE_NAME}", "identity": { "principalId": "{PRINCIPAL_ID}", "tenantId": "{TENANT_ID}", "type": "SystemAssigned", "userAssignedIdentities": null }, "kind": null, "location": "West US", "managedBy": null, "name": "{RESOURCE_NAME}", "plan": null, "properties": { "compatibilityLevel": "1.0", "createdDate": "2019-07-12T03:11:30.39Z", "dataLocale": "en-US", "eventsLateArrivalMaxDelayInSeconds": 5, "jobId": "{JOB_ID}", "jobState": "Created", "jobStorageAccount": null, "jobType": "Cloud", "outputErrorPolicy": "Stop", "package": null, "provisioningState": "Succeeded", "sku": { "name": "Standard" } }, "resourceGroup": "{RESOURCE_GROUP}", "sku": null, "tags": null, "type": "Microsoft.StreamAnalytics/streamingjobs" }Toma nota del principalId de la definición del trabajo, que identifica la identidad administrada de tu trabajo en Microsoft Entra ID y se usa en el siguiente paso para conceder al trabajo de Stream Analytics acceso a la cuenta de almacenamiento.
Ahora que ha creado el trabajo, consulte la sección Otorgue acceso al trabajo de Stream Analytics a su cuenta de almacenamiento de este artículo.
Concesión de acceso al trabajo de Stream Analytics a su cuenta de almacenamiento
Puede proporcionar a su trabajo de Stream Analytics dos niveles de acceso.
- Acceso de nivel de contenedor: Este nivel de acceso concede al trabajo acceso a un contenedor existente específico.
- Acceso de nivel de cuenta: Este nivel de acceso concede al trabajo acceso general a la cuenta de almacenamiento, incluida la capacidad de crear nuevos contenedores.
A menos que necesite la tarea para crear contenedores, elija Acceso de nivel de contenedor para otorgar a la tarea el acceso mínimo necesario. En las secciones siguientes se explican ambas opciones para el portal de Azure y la línea de comandos.
Nota
Debido a la latencia global de replicación o almacenamiento en caché, la revocación o concesión de permisos puede tardar algún tiempo. Los cambios deben aparecer en un plazo de ocho minutos.
Concesión de acceso a través del portal de Azure
Acceso a nivel de contenedor
Vaya al panel de configuración del contenedor en la cuenta de almacenamiento.
Seleccione Access Control (IAM) .
Seleccione Agregar>Agregar asignación de roles para abrir la página Agregar asignación de roles.
Asigne el siguiente rol. Para asignar roles, consulte Asignación de roles de Azure mediante Azure Portal.
Configuración Valor Rol Colaborador de datos de blobs de almacenamiento Asignar acceso a Usuario, grupo o entidad de servicio Miembros <Nombre del trabajo de Stream Analytics>
Acceso a nivel de cuenta
Vaya a la cuenta de almacenamiento.
Seleccione Access Control (IAM) .
Seleccione Agregar>Agregar asignación de roles para abrir la página Agregar asignación de roles.
Asigne el siguiente rol. Para asignar roles, consulte Asignación de roles de Azure mediante Azure Portal.
Configuración Valor Rol Colaborador de datos de blobs de almacenamiento Asignar acceso a Usuario, grupo o entidad de servicio Miembros <Nombre del trabajo de Stream Analytics>
Concesión de acceso mediante la línea de comandos
Acceso a nivel de contenedor
Para proporcionar acceso a un contenedor específico, ejecute el siguiente comando mediante la CLI de Azure:
az role assignment create --role "Storage Blob Data Contributor" --assignee <principal-id> --scope /subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/blobServices/default/containers/<container-name>
Acceso a nivel de cuenta
Para proporcionar acceso a la cuenta completa, ejecute el siguiente comando mediante la CLI de Azure:
az role assignment create --role "Storage Blob Data Contributor" --assignee <principal-id> --scope /subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>
Creación de una entrada o salida de blob
Ahora que la identidad administrada está configurada, estás listo para agregar el recurso de blob como entrada o salida a tu trabajo de Stream Analytics.
En la ventana de propiedades de salida del receptor de salida de Azure Blob Storage, seleccione la lista desplegable Modo de autenticación y elija Identidad administrada. Para obtener información sobre las demás propiedades de salida, vea Información sobre las salidas desde Azure Stream Analytics. Cuando termine, seleccione Save (Guardar).
Habilitación del acceso a la red virtual
Al configurar las Firewalls y redes virtuales de la cuenta de almacenamiento, puede optar por permitir el tráfico de red desde otros servicios de Microsoft de confianza. Cuando Stream Analytics se autentica mediante identidad administrada, proporciona una prueba de que la solicitud se origina desde un servicio de confianza. En las instrucciones siguientes se explica cómo habilitar esta excepción de acceso a la red virtual.
- Vaya al panel Firewalls y redes virtuales en el panel de configuración de la cuenta de almacenamiento.
- Asegúrese de que la opción Permitir que los servicios de Microsoft de confianza accedan a esta cuenta de almacenamiento esté habilitada.
- Si lo ha habilitado, seleccione Guardar.
Eliminación de una identidad administrada
La identidad administrada que cree para un trabajo de Stream Analytics solo se elimina cuando se elimina el trabajo. No se puede eliminar la identidad administrada sin eliminar el trabajo. Si ya no va a usar la identidad administrada, puede cambiar el método de autenticación de la salida. La identidad administrada continúa existiendo hasta que se elimina el trabajo y se usa si decide volver a usar la autenticación de identidad administrada.
Limitaciones
Entre las limitaciones actuales de esta característica se incluyen las siguientes:
Cuentas de Azure Storage clásicas.
Cuentas de Azure sin Microsoft Entra ID.
No se admite el acceso multiinquilino. El principal de servicio creado para un trabajo específico de Stream Analytics debe encontrarse en el mismo inquilino de Microsoft Entra en el que creó el trabajo, y no puede usarlo con un recurso que se encuentre en un inquilino de Microsoft Entra diferente.