Autenticar tabelas externas com identidades gerenciadas

Uma tabela externa é uma entidade de esquema que faz referência a dados armazenados fora da base de dados do Azure Data Explorer. Tabelas externas podem ser definidas para referenciar dados no Armazenamento do Azure ou SQL Server e suportar vários métodos de autenticação.

Neste artigo, aprende como criar uma tabela externa que autentique com uma identidade gerida.

Pré-requisitos

1 - Configurar uma identidade gerida para utilização com tabelas externas

Existem dois tipos de identidades gerenciadas:

  • Atribuído ao sistema: Uma identidade atribuída ao sistema está ligada ao seu cluster e é removida quando o cluster é removido. Apenas uma identidade atribuída pelo sistema é permitida por cluster.

  • Atribuído pelo utilizador: Uma identidade gerida atribuída pelo utilizador é um recurso Azure autónomo. Múltiplas identidades atribuídas pelo utilizador podem ser atribuídas ao seu cluster.

Selecione um dos separadores seguintes para configurar o tipo de identidade gerida preferido.

  1. Siga os passos para adicionar uma identidade atribuída pelo utilizador ao seu cluster e guarde o ID do Objeto (principal) para uso posterior.

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

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

    Note

    Para definir a política numa base de dados específica, use database <DatabaseName> em vez de cluster.

2 - Atribuir permissões de recurso externo à identidade gerida

A identidade gerida deve ter permissões para o recurso externo para se autenticar com sucesso.

Selecione o separador do tipo relevante de recurso externo e atribua as permissões necessárias.

A tabela seguinte mostra as permissões necessárias por recurso externo. Para importar ou consultar dados do recurso externo, conceda permissões de leitura à identidade gerida. Para exportar dados para o recurso externo, conceda permissões de escrita à identidade gerida.

Armazenamento de dados externo Permissões de leitura Permissões de escrita Conceder permissões
Armazenamento de Blobs do Azure Leitor de Dados de Blob Storage Contribuidor de Dados de Storage Blob Atribuir uma função do Azure
Data Lake Storage Gen2 Leitor de Dados de Blob Storage Contribuidor de Dados de Storage Blob Atribuir uma função do Azure

3 - Criar uma tabela externa

Existem dois tipos de tabelas externas que suportam autenticação com identidades geridas: 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, faça os seguintes passos:

  1. Crie uma cadeia de ligação com base nos modelos de cadeias de ligaçã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 gerida.

  2. Execute o comando .create or .alter external table para criar a tabela. Use a cadeia de conexão da etapa anterior como o argumento storageConnectionString.

Exemplo

O comando seguinte cria MyExternalTable que se refere a dados formatados em CSV em mycontainer de mystorageaccount no Armazenamento de Blobs do Azure. A tabela tem duas colunas, uma para um x inteiro e outra para uma cadeia de caracteres s. A cadeia de ligação termina em ;managed_identity=system, o que indica usar uma identidade gerida atribuída pelo sistema para autenticação e aceder ao 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' 
)

Note

Para autenticar com uma identidade gerida atribuída pelo utilizador, substitua system pelo ID de objeto de identidade gerida.