Compartir a través de


Colocar blobs en cola para su ingesta utilizando autenticación de identidad administrada

Al encolar blobs para la ingestión desde sus propias cuentas de almacenamiento, use identidades administradas como alternativa a los tokens de firma de acceso compartido (SAS) y a los métodos de autenticación de claves compartidas. Las identidades administradas proporcionan una manera más segura de ingerir datos porque no es necesario compartir los tokens de SAS del cliente ni las claves compartidas con el servicio. En su lugar, asigne una identidad administrada al clúster y conceda permisos de lectura para la cuenta de almacenamiento que se usa para ingerir datos. Puede revocar estos permisos en cualquier momento.

Nota:

  • Este método de autenticación solo se aplica a los blobs de Azure y a los archivos de Azure Data Lake que residen en cuentas de almacenamiento propiedad del cliente. No se aplica a los archivos locales cargados mediante el SDK de Kusto.
  • Solo se admite la ingestión en cola. No se admite la ingestión en línea en el Lenguaje de Consulta Kusto ni la ingestión directa mediante API del SDK.

Asignación de una identidad administrada al clúster

Siga la introducción a las identidades administradas para agregar una identidad administrada asignada por el sistema o el usuario al clúster. Si el clúster ya tiene asignada la identidad administrada deseada, copie su identificador de objeto mediante los pasos siguientes:

  1. Inicie sesión en Azure Portal mediante una cuenta asociada a la suscripción de Azure que contiene el clúster.

  2. Vaya al clúster y seleccione Identidad.

  3. Seleccione el tipo de identidad adecuado, el sistema o el usuario asignados y, a continuación, copie el identificador de objeto de la identidad necesaria.

Captura de pantalla de la página de resumen que muestra el ID de objeto de la identidad gestionada por el sistema

Concesión de permisos a una identidad administrada

  1. En Azure Portal, vaya a la cuenta de almacenamiento que contiene los datos que desea ingerir.

  2. Seleccione Control de acceso y, a continuación, seleccione +Agregar>Agregar asignación de roles.

  3. Conceda a la identidad administrada Lector de datos de Storage Blob o Colaborador de datos de blobs de Storage si piensa usar la opción de origen DeleteSourceOnSuccess, permisos para la cuenta de almacenamiento.

Nota:

Conceder permisos de propietario o colaborador no es suficiente y causa fallos en la ingesta.

Captura de pantalla de la página de Asignación de Roles, que muestra el rol asignado por el sistema para la ingesta mediante identidades administradas

Importante

Si se producen problemas de red, Azure Storage podría devolver un Download Forbidden error. Este error puede producirse si usa un vínculo privado para acceder a la cuenta de almacenamiento. En tales casos, si los permisos son correctos, compruebe la conectividad con la cuenta de almacenamiento.

Establecimiento de la directiva de identidad administrada en Azure Data Explorer

Para usar la identidad administrada para ingerir datos en el clúster, conceda la NativeIngestion opción de uso a la identidad administrada seleccionada. La ingesta nativa hace referencia a la capacidad de usar un SDK para la ingesta desde un origen externo. Para obtener más información sobre los SDK disponibles, consulte Bibliotecas de cliente.

Puede definir la directiva de identidad administrada de uso en el nivel de clúster o base de datos del clúster de destino.

Para aplicar la directiva en el nivel de base de datos, ejecute el siguiente comando:

.alter-merge database <database name> policy managed_identity "[ { 'ObjectId' : '<managed_identity_id>', 'AllowedUsages' : 'NativeIngestion' }]"

Para aplicar la directiva en el nivel de clúster, ejecute el siguiente comando:

.alter-merge cluster policy managed_identity "[ { 'ObjectId' : '<managed_identity_id>', 'AllowedUsages' : 'NativeIngestion' }]"

Reemplace <managed_identity_id> por el identificador de objeto de la identidad administrada necesaria.

Nota:

Debe tener el permiso All Database Admin en el clúster para editar la directiva de identidad administrada.

Blobs en cola para la ingesta con identidad administrada mediante el SDK de Kusto

Al ingerir datos mediante un SDK de Kusto, genere su URI de blob usando autenticación de identidad administrada apendiendo ;managed_identity={objectId} al URI de blob no autorizado. Si ingiere datos mediante la identidad administrada asignada por el sistema del clúster, puede anexar ;managed_identity=system al URI del blob.

Importante

Debe usar un cliente de ingestión en cola. No se admite el uso de identidades administradas con ingesta directa o ingesta en línea en el Lenguaje de Consulta Kusto.

En los ejemplos siguientes se muestran los URI de blob para identidades administradas asignadas por el sistema y el usuario.

  • Sistema asignado: https://demosa.blob.core.windows.net/test/export.csv;managed_identity=system
  • Usuario asignado: https://demosa.blob.core.windows.net/test/export.csv;managed_identity=6a5820b9-fdf6-4cc4-81b9-b416b444fd6d

Importante

  • Al usar identidades administradas para ingerir datos mediante el SDK de C#, debe proporcionar un tamaño de blob en StorageSourceOptions. Si no establece el tamaño, el SDK intenta rellenar el tamaño del blob accediendo a la cuenta de almacenamiento, lo que produce un error.
  • El parámetro size debe ser el tamaño de los datos sin comprimir, no el tamaño del blob.
  • Si no conoce el tamaño en el momento de la ingesta, especifique un valor de cero (0). El servicio intenta detectar el tamaño mediante la identidad administrada para la autenticación.