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:
Inicie sessão no portal do Azure com uma conta associada à subscrição do Azure que contém o cluster.
Navegue para o cluster e selecione Identidade.
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.
Conceder permissões à identidade gerida
Na portal do Azure, navegue para a conta de armazenamento que contém os dados que pretende ingerir.
Selecione Controlo de Acesso e, em seguida, selecione + Adicionar>Adicionar Atribuição de Função.
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.
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.