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. Attribuez le rôle Lecteur des données Blob du stockage ou Contributeur aux données Blob du stockage (si vous avez l’intention d’utiliser l’option source DeleteSourceOnSuccess) à l’identité managée afin de lui octroyer les autorisations nécessaires pour accéder au compte de stockage.

Remarque

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

Important

En cas de problèmes réseau, le service Stockage Azure peut retourner une erreur Download Forbidden. Cette erreur peut se produire si vous utilisez une liaison privée pour accéder à votre compte de stockage. Dans ce cas, si les autorisations sont correctes, vérifiez la connectivité à votre compte de stockage.

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

Si vous souhaitez utiliser l’identité managée afin d’ingérer des données dans votre cluster, autorisez l’option d’utilisation NativeIngestion pour l’identité managée sélectionnée. L’ingestion native fait référence à la possibilité d’utiliser un kit SDK pour l’ingestion à partir d’une source externe. Pour plus d’informations sur les kits SDK disponibles, consultez Bibliothèques de client.

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 nécessaire.

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 size doit correspondre à la taille des données brutes (non compressées), et non à la taille du 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.