Compartir a través de


Autenticación de tablas externas con identidades administradas

Una tabla externa es una entidad de esquema que hace referencia a los datos almacenados fuera de una base de datos de Azure Data Explorer. Las tablas externas se pueden definir para hacer referencia a datos en Azure Storage o SQL Server y admitir varios métodos de autenticación.

En este artículo, aprenderá a crear una tabla externa que se autentique con una identidad administrada.

Requisitos previos

1- Configuración de una identidad administrada para su uso con tablas externas

Hay dos tipos de identidades administradas:

  • Asignado por el sistema: una identidad asignada por el sistema está conectada al clúster y se quita cuando se quita el clúster. Solo se permite una identidad asignada por el sistema por clúster.

  • Asignado por el usuario: una identidad administrada asignada por el usuario es un recurso de Azure independiente. Se pueden asignar varias identidades asignadas por el usuario al clúster.

Seleccione una de las pestañas siguientes para configurar el tipo de identidad administrada preferido.

  1. Siga los pasos para agregar una identidad asignada por el usuario al clúster y guarde el identificador de objeto (entidad de seguridad) para usarlo más adelante.

  2. Ejecute el comando .alter-merge policy managed_identity . Este comando establece una directiva de identidad administrada en el clúster que permite usar la identidad administrada con tablas externas. Reemplace por <objectId> el identificador de objeto (entidad de seguridad).

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

    Nota:

    Para establecer la directiva en una base de datos específica, use database <DatabaseName> en lugar de cluster.

2: Concesión de permisos de recursos externos de identidad administrada

La identidad administrada debe tener permisos para el recurso externo para autenticarse correctamente.

Seleccione la pestaña para el tipo de recurso externo pertinente y asigne los permisos necesarios.

En la tabla siguiente se muestran los permisos necesarios por recurso externo. Para importar o consultar datos desde el recurso externo, conceda a la identidad administrada permisos de lectura. Para exportar datos al recurso externo, conceda permisos de escritura de identidad administrada.

Almacén de datos externo Permisos de lectura Permisos de escritura Concesión de los permisos
Azure Blob Storage Lector de datos de blobs de almacenamiento Colaborador de datos de blobs de almacenamiento Asignación de un rol de Azure
Data Lake Storage Gen2 Lector de datos de blobs de almacenamiento Colaborador de datos de blobs de almacenamiento Asignación de un rol de Azure
Data Lake Storage Gen1 Lector Colaborador Asignación de un rol de Azure

3 - Creación de una tabla externa

Hay dos tipos de tablas externas que admiten la autenticación con identidades administradas: tablas externas de Azure Storage y tablas externas de SQL Server.

Seleccione una de las pestañas siguientes para configurar una tabla externa de Azure Storage o SQL Server.

Para crear una tabla externa de Azure Storage, siga estos pasos:

  1. Cree un cadena de conexión basado en las plantillas de cadena de conexión de almacenamiento. Esta cadena indica el recurso para acceder a y su información de autenticación. Especifique el método de autenticación de identidad administrada.

  2. Ejecute el archivo .create o .alter external table para crear la tabla. Use el cadena de conexión del paso anterior como argumento storageConnectionString.

Ejemplo

El comando siguiente crea MyExternalTable que hace referencia a los datos con formato CSV en mycontainer de mystorageaccount en Azure Blob Storage. La tabla tiene dos columnas, una para un entero x y otra para una cadena s. El cadena de conexión termina con ;managed_identity=system, que indica que se usa una identidad administrada asignada por el sistema para la autenticación para acceder al almacén de datos.

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

Nota:

Para autenticarse con una identidad administrada asignada por el usuario, reemplace por system el identificador de objeto de identidad administrada.