Share via


Información sobre cómo poner en cola blobs para la ingesta mediante la autenticación de identidad administrada

Al poner en cola blobs para la ingesta desde sus propias cuentas de almacenamiento, puede usar identidades administradas como alternativa a tokens de firma de acceso compartido (SAS) y métodos de autenticación de claves compartidas. Las identidades administradas son una manera más segura de ingerir datos, ya que no requieren que comparta los tokens de SAS del cliente ni las claves compartidas con el servicio. En su lugar, se asigna una identidad administrada al clúster y se conceden permisos de lectura para la cuenta de almacenamiento utilizada 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 ingesta en cola. No se admite la ingesta insertada en Lenguaje de consulta Kusto ni la ingesta directa mediante las 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 con 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 información general que muestra el identificador de objeto de la identidad administrada del sistema

Concesión de permisos a una identidad administrada

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

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

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

Importante

La concesión de permisos de propietario o colaborador no es suficiente y producirá un error en la ingesta.

Captura de pantalla de la página Incorporación de asignaciones de rol que muestra el rol del sistema asignado para la ingesta mediante identidades administradas

Establecimiento de la directiva de identidad administrada en Azure Data Explorer

Para usar la identidad administrada para ingerir datos en el clúster, permita la NativeIngestion opción de uso de 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.

La directiva de identidad administrada de uso se puede definir 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 por <managed_identity_id> el identificador de objeto de la identidad administrada necesaria.

Nota:

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

Información sobre cómo poner en cola blobs para la ingesta con una identidad administrada mediante el SDK de Kusto

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

Importante

Debe usar un cliente de ingesta en cola. No se admite el uso de identidades administradas con ingesta directa ni ingesta insertada en el lenguaje de consulta Kusto.

A continuación se muestran ejemplos de URI de blob para identidades administradas asignadas por el sistema y el usuario.

  • Asignada por el sistema: https://demosa.blob.core.windows.net/test/export.csv;managed_identity=system
  • Asignada por el usuario: https://demosa.blob.core.windows.net/test/export.csv;managed_identity=6a5820b9-fdf6-4cc4-81b9-b416b444fd6d

Importante

  • Al usar identidades administradas para ingerir datos con el SDK de C#, debe proporcionar un tamaño de blob en StorageSourceOptions. Si no se establece el tamaño, para rellenar el tamaño del blob el SDK intenta acceder a la cuenta de almacenamiento, lo que provoca un error.
  • El parámetro size debe ser el tamaño de datos sin comprimir (sin comprimir) y 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 intentará detectar el tamaño mediante la identidad administrada para la autenticación.