Ligue-se ao Armazenamento do Azure usando uma identidade gerida (Pesquisa de IA do Azure)

Nota

O Pesquisa de IA do Azure está disponível através do portal Azure, APIs REST e SDKs do Azure. Também sustenta o Foundry IQ, a camada de conhecimento gerida que transforma conteúdos empresariais em bases de conhecimento reutilizáveis e conscientes de permissões para agentes no portal Microsoft Foundry.

Este artigo explica como configurar uma ligação de serviço de pesquisa a uma conta do Armazenamento do Azure usando uma identidade gerida em vez de fornecer credenciais na cadeia de ligação.

Pode usar uma identidade gerida atribuída pelo sistema ou uma identidade gerida atribuída pelo utilizador. Identidades geridas são logins Microsoft Entra e requerem atribuição de funções para aceder ao Armazenamento do Azure.

Pré-requisitos

  • Pesquisa de IA do Azure, nível básico ou superior, com uma identidade gerida.

Nota

Se o armazenamento estiver protegido em rede e estiver na mesma região do seu serviço de pesquisa, deve usar uma identidade gerida atribuída pelo sistema e uma das seguintes opções de rede: ligar como serviço de confiança ou ligar usando a regra da instância de recursos.

Criar uma atribuição de papel no Armazenamento do Azure

  1. Inicie sessão no portal do Azure e encontre a sua conta de armazenamento.

  2. Selecionar controlo de acesso (IAM).

  3. Selecione Adicionar e depois selecione Atribuição de Funções.

  4. Da lista de funções do cargo, selecione as funções necessárias para o seu serviço de pesquisa:

    Tarefa Atribuição de funções
    Indexação de blobs usando um indexador Adicionar Leitor de Dados de Blob de Armazenamento
    Indexação ADLS Gen2 usando um indexador Adicionar Leitor de Dados de Blob de Armazenamento
    Indexação de tabelas usando um indexador Adicionar Leitor de Dados da Tabela de Armazenamento
    Indexação de ficheiros usando um indexador Adicionar Leitor e Acesso a Dados
    Escrever para um repositório de conhecimento Adicionar Storage Blob Data Contributor para projeções de objetos e ficheiros, e Reader and Data Access para projeções de tabelas.
    Escrever numa cache de enriquecimento (pré-visualização) Adicionar Contribuidor de Dados de Blob de Armazenamento e Contribuidor de Dados de Tabela de Armazenamento
    Guardar o estado da sessão de depuração Adicionar Contribuidor de Dados do Blob de Armazenamento
  5. Selecionar Próximo.

  6. Selecione Identidade gerida e depois selecione Membros.

  7. Filtre por identidades geridas atribuídas pelo sistema ou por identidades geridas atribuídas pelo utilizador. Deve ver a identidade gerida que criou anteriormente para o seu serviço de pesquisa. Se não tiveres uma, vê Configurar pesquisa para usar uma identidade gerida. Se já configuraste um mas não está disponível, espera alguns minutos.

  8. Selecione a identidade e guarde a atribuição de funções.

Especificar uma identidade gerida numa cadeia de ligação

Depois de ter uma atribuição de funções, pode estabelecer uma ligação ao Armazenamento do Azure que opera sob essa função.

Os indexadores utilizam um objeto fonte de dados para ligações a uma fonte de dados externa. Esta secção explica como especificar uma identidade gerida atribuída pelo sistema ou uma identidade gerida atribuída pelo utilizador numa cadeia de ligação de fonte de dados. Pode encontrar mais exemplos cadeia de ligação no artigo sobre identidade gerida.

Dica

Pode criar uma ligação de fonte de dados ao Armazenamento do Azure no portal Azure, especificando uma identidade gerida atribuída pelo sistema ou pelo utilizador, e depois visualizar a definição JSON para ver como a cadeia de ligação é formulada.

Identidade gerida atribuída pelo sistema

Deve ter uma identidade gerida atribuída pelo sistema já configurada e deve ter uma atribuição de função no Armazenamento do Azure.

Para ligações feitas usando uma identidade gerida atribuída pelo sistema, a única alteração na definição da fonte de dados é o formato da credentials propriedade.

Forneça um cadeia de ligação que contenha um ResourceId, sem chave de conta ou palavra-passe. O ResourceId deve incluir o ID de subscrição da conta de armazenamento, o grupo de recursos da conta de armazenamento e o nome da conta de armazenamento.

POST https://[service name].search.windows.net/datasources?api-version=2026-04-01

{
    "name" : "blob-datasource",
    "type" : "azureblob",
    "credentials" : { 
        "connectionString" : "ResourceId=/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.Storage/storageAccounts/MY-DEMO-STORAGE-ACCOUNT/;" 
    },
    "container" : { 
        "name" : "my-container", "query" : "<optional-virtual-directory-name>" 
    }
}   

Identidade gerida atribuída pelo utilizador

Deve ter uma identidade gerida atribuída pelo utilizador que já esteja configurada e associada ao seu serviço de pesquisa, e a identidade deve ter uma atribuição de função em Armazenamento do Azure.

As ligações feitas através de identidades geridas atribuídas pelo utilizador usam as mesmas credenciais que uma identidade gerida atribuída pelo sistema, mais uma propriedade extra de identidade que contém a coleção de identidades geridas atribuídas pelo utilizador. Apenas uma identidade gerida atribuída pelo utilizador deve ser fornecida na criação da fonte de dados.

Forneça um cadeia de ligação que contenha um ResourceId, sem chave de conta ou palavra-passe. O ResourceId deve incluir o ID de subscrição da conta de armazenamento, o grupo de recursos da conta de armazenamento e o nome da conta de armazenamento.

Forneça um identity usando a sintaxe mostrada no exemplo seguinte. Defina userAssignedIdentity para a identidade gerida atribuída pelo utilizador.

POST https://[service name].search.windows.net/datasources?api-version=2026-04-01

{
    "name" : "blob-datasource",
    "type" : "azureblob",
    "credentials" : { 
        "connectionString" : "ResourceId=/subscriptions/00000000-0000-0000-0000-00000000/resourceGroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.Storage/storageAccounts/MY-DEMO-STORAGE-ACCOUNT/;" 
    },
    "container" : { 
        "name" : "my-container", "query" : "<optional-virtual-directory-name>" 
    },
    "identity" : { 
        "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
        "userAssignedIdentity" : "/subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MY-DEMO-RESOURCE-GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MY-DEMO-USER-MANAGED-IDENTITY" 
    }
}   

A informação de ligação e as permissões no serviço remoto são validadas em tempo de execução durante a execução do indexador. Se o indexador for bem-sucedido, a sintaxe de ligação e as atribuições de papéis são válidas. Para mais informações, consulte Executar ou redefinir indexadores, competências ou documentos.

Aceder a dados protegidos pela rede em contas de armazenamento

As contas de armazenamento Azure podem ser ainda mais protegidas através de firewalls e redes virtuais. Se quiser indexar conteúdos de uma conta de armazenamento que está protegida através de um firewall ou rede virtual, veja Faça ligações indexadoras à Armazenamento do Azure como serviço de confiança.

Ver também