Partager via


Mettre en file d’attente des objets blob pour ingestion en utilisant l’authentification d’identité managée

Lors de la mise en file d’attente d’objets blob pour ingestion à partir de vos propres comptes de stockage, vous pouvez utiliser des identités managées comme alternative aux jetons de signature d’accès partagé (SAS) et aux méthodes d’authentification avec des clés partagées. Les identités managées sont un moyen plus sécurisé d’ingérer des données, car elles ne vous obligent pas à partager les jetons SAS ou les clés partagées de vos clients avec le service. Au lieu de cela, une identité managée est affectée à votre cluster et reçoit des autorisations de lecture sur le compte de stockage utilisé pour ingérer des données. Vous pouvez révoquer ces autorisations à tout moment.

Remarque

  • Cette méthode d’authentification s’applique uniquement aux objets blob Azure et aux fichiers Azure Data Lake résidant dans des comptes de stockage appartenant à des clients. Elle ne s’applique pas aux fichiers locaux chargés avec le kit SDK Kusto.
  • Seule l’ingestion mise en file d’attente est prise en charge. L’ingestion inline dans le langage de requête Kusto et l’ingestion directe à l’aide des API SDK ne sont pas prises en charge.

Affecter une identité managée à votre cluster

Pour ajouter une identité managée affectée par le système ou l’utilisateur à votre cluster, consultez la vue d’ensemble des identités managées. Si l’identité managée souhaitée est déjà affectée à votre cluster, effectuez les étapes suivantes pour copier son ID d’objet :

  1. Connectez-vous au portail Azure avec un compte associé à l’abonnement Azure qui contient votre cluster.

  2. Accédez à votre cluster et sélectionnez Identité.

  3. Sélectionnez le type d’identité approprié (affectation par le système ou par l’utilisateur), puis copiez l’ID d’objet de l’identité requise.

Capture d’écran de la page de vue d’ensemble, montrant l’ID de l’objet d’identité managée système

Octroyer des autorisations à l’identité managée

  1. Dans le portail Azure, accédez au compte de stockage qui contient les données à ingérer.

  2. Sélectionnez Contrôle d’accès, puis + Ajouter>Ajouter une attribution de rôle.

  3. Accordez l’identité managée Stockage Lecteur de données Blob ou Stockage Contributeur de données Blob si vous envisagez d’utiliser l’option source DeleteSourceOnSuccess, des autorisations sur le compte de stockage.

Important

L’octroi d’autorisations Propriétaire ou Contributeur n’est pas suffisant et entraîne l’échec de l’ingestion.

Capture d’écran de la page d’ajout d’attribution de rôle, montrant le rôle affecté par le système pour ingestion en utilisant des identités managées

Définir la stratégie d’identité managée dans Azure Data Explorer

Pour utiliser l’identité managée pour ingérer des données dans votre cluster, autorisez l’option NativeIngestion d’utilisation de l’identité managée sélectionnée. L’ingestion native fait référence à la possibilité d’utiliser un Kit de développement logiciel (SDK) pour l’ingestion à partir d’une source externe. Pour plus d’informations sur les Kits de développement logiciel (SDK) disponibles, consultez bibliothèques clientes.

La stratégie d’utilisation pour l’identité managée peut être définie au niveau du cluster ou de la base de données du cluster cible.

Pour appliquer la stratégie au niveau de la base de données, exécutez la commande suivante :

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

Pour appliquer la stratégie au niveau du cluster, exécutez la commande suivante :

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

Remplacez <managed_identity_id> par l’ID d’objet de l’identité managée requise.

Remarque

Vous devez disposer de l’autorisation All Database Admin sur le cluster pour modifier la stratégie d’identité managée.

Mettre en file d’attente des objets blob pour ingestion avec une identité managée en utilisant le SDK Kusto

Lors de l’ingestion de données avec le kit SDK Kusto, générez votre URI d’objet blob avec l’authentification d’identité managée en ajoutant ;managed_identity={objectId} à l’URI d’objet blob non autorisé. Si vous ingérez des données en utilisant l’identité managée affectée par le système de votre cluster, vous pouvez ajouter ;managed_identity=system à l’URI d’objet blob.

Important

Vous devez utiliser un client d’ingestion mise en file d’attente. L’utilisation d’identités managées avec ingestion directe ou ingestion inline dans le langage de requête Kusto n’est pas prise en charge.

Voici des exemples d’URI d’objet blob pour les identités managées affectées par le système et l’utilisateur.

  • Identité managée affectée par le système : https://demosa.blob.core.windows.net/test/export.csv;managed_identity=system
  • Identité managée affectée par l’utilisateur : https://demosa.blob.core.windows.net/test/export.csv;managed_identity=6a5820b9-fdf6-4cc4-81b9-b416b444fd6d

Important

  • Lorsque vous utilisez des identités managées pour ingérer des données avec le kit SDK C#, vous devez fournir une taille d’objet blob dans StorageSourceOptions. Si la taille n’est pas définie, le kit SDK tente de remplir la taille de l’objet blob en accédant au compte de stockage, ce qui entraîne un échec.
  • Le paramètre de taille doit être la taille de données brute (non compressée), et non la taille de l’objet blob.
  • Si vous ne connaissez pas la taille au moment de l’ingestion, spécifiez la valeur zéro (0). Le service tentera de découvrir la taille en utilisant l’identité managée pour l’authentification.