Partilhar via


Blobs de filas para ingestão com a autenticação de identidade gerida

Ao colocar blobs em fila para ingestão a partir das suas próprias contas de armazenamento, pode utilizar identidades geridas como alternativa a tokens de assinatura de acesso partilhado (SAS) e métodos de autenticação de Chaves Partilhadas . As identidades geridas são uma forma mais segura de ingerir dados, uma vez que não exigem que partilhe os tokens de SAS do cliente ou as chaves partilhadas com o serviço. Em vez disso, é atribuída uma identidade gerida ao cluster e são concedidas permissões de leitura para a conta de armazenamento utilizada para ingerir dados. Pode revogar estas permissões em qualquer altura.

Nota

  • Este método de autenticação aplica-se apenas aos blobs do Azure e aos ficheiros do Azure Data Lake que residem em contas de armazenamento pertencentes ao cliente. Não se aplica a ficheiros locais carregados com o SDK kusto.
  • Só é suportada a ingestão em fila. A ingestão inline no Linguagem de Pesquisa Kusto e a ingestão direta através de APIs SDK não são suportadas.

Atribuir uma identidade gerida ao cluster

Siga a Descrição geral das Identidades geridas para adicionar uma identidade gerida atribuída pelo Sistema ou Pelo Utilizador ao cluster. Se o cluster já tiver a identidade gerida pretendida atribuída, copie o respetivo ID de objeto com os seguintes passos:

  1. Inicie sessão no portal do Azure com uma conta associada à subscrição do Azure que contém o cluster.

  2. Navegue para o cluster e selecione Identidade.

  3. Selecione o tipo de identidade adequado, o sistema ou o utilizador atribuído e, em seguida, copie o ID de objeto da identidade necessária.

Captura de ecrã a mostrar a página de descrição geral, com o objeto de identidade gerida pelo sistema ID

Conceder permissões à identidade gerida

  1. Na portal do Azure, navegue para a conta de armazenamento que contém os dados que pretende ingerir.

  2. Selecione Controlo de Acesso e, em seguida, selecione + Adicionar>Adicionar Atribuição de Função.

  3. Conceda a identidade gerida Leitor de Dados do Blob de Armazenamento ou Contribuidor de Dados do Blob de Armazenamento se pretender utilizar a opção de origem DeleteSourceOnSuccess , permissões para a conta de armazenamento.

Importante

A concessão de permissões de Proprietário ou Contribuidor não é suficiente e resultará na falha da ingestão.

Captura de ecrã da página adicionar atribuição de função, a mostrar a função atribuída pelo sistema para ingestão com identidades geridas

Definir a política de identidade gerida no Azure Data Explorer

Para utilizar a identidade gerida para ingerir dados no cluster, permita a opção NativeIngestion de utilização para a identidade gerida selecionada. A ingestão nativa refere-se à capacidade de utilizar um SDK para ingestão a partir de uma origem externa. Para obter mais informações sobre os SDKs disponíveis, veja Bibliotecas de cliente.

A política de Identidade Gerida de utilização pode ser definida ao nível do cluster ou da base de dados do cluster de destino.

Para aplicar a política ao nível da base de dados, execute o seguinte comando:

.alter-merge database <database name> policy managed_identity "[ { 'ObjectId' : '<managed_identity_id>', 'AllowedUsages' : 'NativeIngestion' }]"

Para aplicar a política ao nível do cluster, execute o seguinte comando:

.alter-merge cluster policy managed_identity "[ { 'ObjectId' : '<managed_identity_id>', 'AllowedUsages' : 'NativeIngestion' }]"

Substitua <managed_identity_id> pelo ID de objeto da identidade gerida necessária.

Nota

Tem de ter a All Database Admin permissão no cluster para editar a Política de Identidade Gerida.

Blobs de filas para ingestão com identidade gerida com o SDK kusto

Ao ingerir dados com um SDK do Kusto, gere o URI do blob com a autenticação de identidade gerida ao acrescentar ;managed_identity={objectId} ao URI de blob não autorizado. Se ingerir dados com a identidade gerida atribuída pelo sistema do cluster, pode acrescentar ;managed_identity=system ao URI do blob.

Importante

Tem de utilizar um cliente de ingestão em fila. A utilização de identidades geridas com ingestão direta ou ingestão inline no Linguagem de Pesquisa Kusto não é suportada.

Seguem-se exemplos de URIs de blobs para identidades geridas atribuídas pelo sistema e pelo utilizador.

  • Sistema atribuído: https://demosa.blob.core.windows.net/test/export.csv;managed_identity=system
  • Utilizador atribuído: https://demosa.blob.core.windows.net/test/export.csv;managed_identity=6a5820b9-fdf6-4cc4-81b9-b416b444fd6d

Importante

  • Ao utilizar identidades geridas para ingerir dados com o SDK C#, tem de fornecer um tamanho de blob em BlobSourceOptions. Se o tamanho não estiver definido, o SDK tenta preencher o tamanho do blob ao aceder à conta de armazenamento, o que resulta numa falha.
  • O parâmetro de tamanho deve ser o tamanho de dados não processados (não comprimidos) e não necessariamente o tamanho do blob.
  • Se não souber o tamanho no momento da ingestão, poderá fornecer um valor de zero (0). O serviço tentará detetar o tamanho com a identidade gerida para autenticação.