Compartilhar via


Autenticar tabelas externas com identidades gerenciadas

Uma tabela externa é uma entidade de esquema que faz referência a dados armazenados fora do banco de dados do Azure Data Explorer. As tabelas externas podem ser definidas para fazer referência a dados no Armazenamento do Azure ou no SQL Server e oferecer suporte a vários métodos de autenticação.

Neste artigo, você aprenderá a criar uma tabela externa que se autentica com uma identidade gerenciada.

Pré-requisitos

1 - Configurar uma identidade gerenciada para uso com tabelas externas

Há dois tipos de identidades gerenciadas:

  • Atribuído pelo sistema: uma identidade atribuída pelo sistema é conectada ao cluster e é removida quando o cluster é removido. Apenas uma identidade atribuída pelo sistema é permitida por cluster.

  • Atribuído pelo usuário: uma identidade gerenciada atribuída pelo usuário é um recurso autônomo do Azure. Várias identidades atribuídas pelo usuário podem ser atribuídas ao cluster.

Selecione uma das guias a seguir para configurar o tipo de identidade gerenciada preferencial.

  1. Siga as etapas para Adicionar uma identidade atribuída pelo usuário ao cluster e salve a ID do objeto (principal) para uso posterior.

  2. Execute o comando .alter-merge policy managed_identity . Esse comando define uma política de identidade gerenciada no cluster que permite que a identidade gerenciada seja usada com tabelas externas. Substitua pelo <objectId> ID do objeto (principal).

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

    Observação

    Para definir a política em um banco de dados específico, use database <DatabaseName> em vez de cluster.

2 - Conceder permissões de recurso externo à identidade gerenciada

A identidade gerenciada deve ter permissões para o recurso externo para autenticar com êxito.

Selecione a guia para o tipo relevante de recurso externo e atribua as permissões necessárias.

A tabela a seguir mostra as permissões necessárias por recurso externo. Para importar ou consultar dados do recurso externo, conceda permissões de leitura à identidade gerenciada. Para exportar dados para o recurso externo, conceda permissões de gravação de identidade gerenciada.

Armazenamento de dados externos Permissões de leitura Permissões de gravação Conceder as permissões
Armazenamento do Blobs do Azure Leitor de Dados do Blob de Armazenamento Colaborador de dados de blob de armazenamento Atribuir uma função do Azure
Armazenamento do Data Lake Gen2 Leitor de Dados do Blob de Armazenamento Colaborador de dados de blob de armazenamento Atribuir uma função do Azure
Data Lake Storage Gen1 Leitor Colaborador Atribuir uma função do Azure

3 - Crie uma tabela externa

Há dois tipos de tabelas externas que dão suporte à autenticação com identidades gerenciadas: tabelas externas do Armazenamento do Azure e tabelas externas do SQL Server.

Selecione uma das guias a seguir para configurar um Armazenamento do Azure ou uma tabela externa do SQL Server.

Para criar uma tabela externa do Armazenamento do Azure, execute as seguintes etapas:

  1. Crie uma cadeia de conexão com base nos modelos de cadeia de conexão de armazenamento. Essa cadeia de caracteres indica o recurso a ser acessado e suas informações de autenticação. Especifique o método de autenticação de identidade gerenciada.

  2. Execute a tabela externa .create ou .alter para criar a tabela. Use a cadeia de conexão da etapa anterior como o argumento storageConnectionString .

Exemplo

O comando a seguir cria MyExternalTable que se refere a dados formatados em CSV no mycontainer Armazenamento de Blobs do mystorageaccount Azure. A tabela tem duas colunas, uma para um inteiro x e outra para uma cadeia de caracteres s. A cadeia de conexão termina com ;managed_identity=system, que indica usar uma identidade gerenciada atribuída pelo sistema para autenticação para acessar o armazenamento de dados.

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

Observação

Para autenticar com uma identidade gerenciada atribuída pelo usuário, substitua system pela ID do objeto de identidade gerenciada.