Conectar-se a Armazenamento do Azure usando uma identidade gerenciada (Pesquisa de IA do Azure )

Nota

Pesquisa de IA do Azure  está disponível por meio do portal Azure, APIs REST e SDKs do Azure. Ele também sustenta o IQ do Foundry, a camada de conhecimento gerenciado que transforma o conteúdo da empresa em bases de conhecimento reutilizáveis e com reconhecimento de permissão para agentes no portal do Microsoft Foundry.

Este artigo explica como configurar uma conexão de serviço de pesquisa para uma conta Armazenamento do Azure usando uma identidade gerenciada em vez de fornecer credenciais no cadeia de conexão.

Você pode usar uma identidade gerenciada atribuída pelo sistema ou uma identidade gerenciada atribuída pelo usuário. As identidades gerenciadas são logons Microsoft Entra e exigem atribuições de função para acesso a Armazenamento do Azure.

Pré-requisitos

Nota

Se o armazenamento estiver protegido pela rede e na mesma região do serviço de pesquisa, você deverá usar uma identidade gerenciada atribuída pelo sistema e uma das seguintes opções de rede: conectar-se como um serviço confiável ou conectar-se usando a regra da instância de recurso.

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

  1. Entre no portal Azure e localize sua conta de armazenamento.

  2. Selecione controle de acesso (IAM).

  3. Selecione Adicionar e selecione Atribuição de função.

  4. Na lista de funções de trabalho, selecione as funções necessárias para o serviço de pesquisa.

    Tarefa Atribuição de função
    Indexação de blobs usando um indexador Leitor de dados de blob de armazenamento
    Indexação do ADLS Gen2 usando um indexador Leitor de dados de blob de armazenamento
    Indexação de tabela usando um indexador Adicionar leitor de dados da tabela de armazenamento
    Indexação de arquivos usando um indexador Adicionar leitor e acesso a dados
    Gravar em um repositório de conhecimento Adicione Contribuinte de Dados de Blob de Armazenamento para projeções de objetos e arquivos e Leitor e Acesso a Dados para projeções de tabelas.
    Gravar em um cache de enriquecimento (versão prévia) Adicione Contribuinte de Dados de Blob de Armazenamento e Contribuinte de Dados de Tabela de Armazenamento
    Salvar o estado da sessão de depuração Adicionar Storage Blob Data Contributor
  5. Selecione Avançar.

  6. Selecione Identidade Gerenciada e selecione Membros.

  7. Filtrar por identidades gerenciadas atribuídas pelo sistema ou identidades gerenciadas atribuídas pelo usuário. Você deve ver a identidade gerenciada que você criou anteriormente para seu serviço de pesquisa. Se você não tiver uma, consulte Configurar a pesquisa para usar uma identidade gerenciada. Se você já configurou um, mas ele não está disponível, espere alguns minutos.

  8. Selecione a identidade e salve a atribuição de função.

Especificar uma identidade gerenciada em um cadeia de conexão

Depois de ter uma atribuição de função, você poderá configurar uma conexão com Armazenamento do Azure que opera sob essa função.

Os indexadores usam um objeto de fonte de dados para conexões com uma fonte de dados externa. Esta seção explica como especificar uma identidade gerenciada atribuída pelo sistema ou uma identidade gerenciada atribuída pelo usuário em uma string de conexão de fonte de dados. Você pode encontrar mais exemplos de cadeia de conexão no artigo de identidade gerenciada.

Dica

Você pode criar uma conexão de fonte de dados para Armazenamento do Azure no portal Azure, especificando um sistema ou uma identidade gerenciada atribuída pelo usuário e, em seguida, exibir a definição JSON para ver como o cadeia de conexão é formulado.

Identidade gerenciada atribuída pelo sistema

Você deve ter uma identidade gerenciada atribuída sistema já configurada e ela deve ter uma atribuição de função no Armazenamento do Azure.

Para conexões feitas usando uma identidade gerenciada 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 conexão que contenha um ResourceId, sem chave de conta ou senha. A ResourceId deve incluir a ID da assinatura 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 gerenciada atribuída pelo usuário

Você deve ter uma identidade gerenciada atribuída ao usuário já configurada e associada ao serviço de pesquisa da Azure, e a identidade deve possuir uma atribuição de função no serviço de Armazenamento do Azure.

As conexões feitas por meio de identidades gerenciadas atribuídas pelo usuário usam as mesmas credenciais de uma identidade gerenciada atribuída pelo sistema, além de uma propriedade de identidade extra que contém a coleção de identidades gerenciadas atribuídas pelo usuário. Somente uma identidade gerenciada atribuída pelo usuário deve ser fornecida ao criar a fonte de dados.

Forneça um cadeia de conexão que contenha um ResourceId, sem chave de conta ou senha. A ResourceId deve incluir a ID da assinatura 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 a seguir. Defina userAssignedIdentity como a identidade gerenciada atribuída pelo usuário.

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" 
    }
}   

As informações de conexã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 conexão e as atribuições de função serão válidas. Para obter mais informações, consulte Executar ou redefinir indexadores, habilidades ou documentos.

Acessando dados protegidos pela rede em contas de armazenamento

Azure contas de armazenamento podem ser protegidas ainda mais usando firewalls e redes virtuais. Se você quiser indexar o conteúdo de uma conta de armazenamento protegida usando um firewall ou uma rede virtual, consulte Estabelecer conexões de indexador com o Armazenamento do Azure como serviço confiável.

Consulte também