Partager via


Authentifier des tables externes avec des identités managées

Une table externe est une entité de schéma qui fait référence à des données stockées en dehors d’une base de données Azure Data Explorer. Les tables externes peuvent être définies pour référencer des données dans Stockage Azure ou SQL Server et prendre en charge différentes méthodes d’authentification.

Dans cet article, vous allez apprendre à créer une table externe qui s’authentifie avec une identité managée.

Prérequis

1 - Configurer une identité managée à utiliser avec des tables externes

Il existe deux types d’identités administrées :

  • Affecté par le système : une identité affectée par le système est connectée à votre cluster et est supprimée lorsque le cluster est supprimé. Une seule identité affectée par le système est autorisée par cluster.

  • Affecté par l’utilisateur : une identité managée affectée par l’utilisateur est une ressource Azure autonome. Plusieurs identités affectées par l’utilisateur peuvent être affectées à votre cluster.

Sélectionnez l’un des onglets suivants pour configurer le type d’identité managée par défaut.

  1. Suivez les étapes pour ajouter une identité affectée par l’utilisateur à votre cluster, puis enregistrez l’IDd’objet (principal) pour une utilisation ultérieure.

  2. Exécutez la stratégie .alter-merge managed_identity commande. Cette commande définit une stratégie d’identité managée sur le cluster qui permet l’utilisation de l’identité managée avec des tables externes. Remplacez <objectId> par l’ID d’objet (principal).

    .alter-merge cluster policy managed_identity ```[
        {
          "ObjectId": "<objectId>",
          "AllowedUsages": "ExternalTable"
        }
    ]```
    

    Remarque

    Pour définir la stratégie sur une base de clusterdonnées spécifique, utilisez database <DatabaseName> plutôt que .

2 - Accorder les autorisations de ressources externes d’identité managée

L’identité managée doit avoir des autorisations sur la ressource externe pour s’authentifier correctement.

Sélectionnez l’onglet pour le type de ressource externe approprié et attribuez les autorisations requises.

Le tableau suivant présente les autorisations requises par la ressource externe. Pour importer ou interroger des données à partir de la ressource externe, accordez les autorisations de lecture d’identité managée. Pour exporter des données vers la ressource externe, accordez les autorisations d’écriture d’identité managée.

Magasin de données externe Autorisations de lecture Autorisations d’écriture Accorder les autorisations
Stockage Blob Azure Lecteur des données blob du stockage Contributeur aux données Blob du stockage Attribuer un rôle Azure
Data Lake Storage Gen2 Lecteur des données blob du stockage Contributeur aux données Blob du stockage Attribuer un rôle Azure
Data Lake Storage Gen 1 Lecteur Contributeur Attribuer un rôle Azure

3 - Créer une table externe

Il existe deux types de tables externes qui prennent en charge l’authentification avec des identités managées : Stockage Azure tables externes et les tables externes SQL Server.

Sélectionnez l’un des onglets suivants pour configurer une table externe Stockage Azure ou SQL Server.

Pour créer une table externe Stockage Azure, procédez comme suit :

  1. Créez une chaîne de connexion basée sur les modèles de chaîne de connexion de stockage. Cette chaîne indique la ressource à accéder et ses informations d’authentification. Spécifiez la méthode d’authentification d’identité managée.

  2. Exécutez la table externe .create ou .alter pour créer la table. Utilisez le chaîne de connexion de l’étape précédente comme argument de stockage Connecter ionString.

Exemple

La commande suivante crée MyExternalTable qui fait référence aux données au format CSV dans mycontainermystorageaccount Stockage Blob Azure. La table comporte deux colonnes, une pour un entier x et une pour une chaîne s. Le chaîne de connexion se termine par ;managed_identity=system, ce qui indique d’utiliser une identité managée affectée par le système pour l’authentification pour accéder au magasin de données.

.create external table MyExternalTable (x:int, s:string) kind=storage dataformat=csv 
( 
    h@'https://mystorageaccount.blob.core.windows.net/mycontainer;managed_identity=system' 
)

Remarque

Pour vous authentifier avec une identité managée affectée par l’utilisateur, remplacez system par l’ID d’objet d’identité managée.