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:
Inicie sesión en Azure Portal con una cuenta asociada a la suscripción de Azure que contiene el clúster.
Vaya al clúster y seleccione Identidad.
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.
Concesión de permisos a una identidad administrada
En Azure Portal, vaya a la cuenta de almacenamiento que contiene los datos que quiere ingerir.
Seleccione Control de acceso y, a continuación, seleccione +Agregar>Agregar asignación de roles.
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:
La concesión de permisos de propietario o colaborador no es suficiente y producirá un error en la ingesta.
Importante
En caso de problemas de red, Azure Storage puede devolver un error Download Forbidden
.
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 a 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, permita la opción de uso NativeIngestion
para 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 <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.
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 tamaño debe ser el tamaño de datos 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.