Conectar-se ao Armazenamento do Azure usando uma identidade gerenciada (Azure AI Search)
Este artigo explica como configurar uma conexão de serviço de pesquisa para uma conta de Armazenamento do Azure usando uma identidade gerenciada em vez de fornecer credenciais na cadeia de conexão.
Você pode usar uma identidade gerenciada atribuída ao sistema ou uma identidade gerenciada atribuída pelo usuário. As identidades gerenciadas são logons do Microsoft Entra e exigem atribuições de função para acessar o Armazenamento do Azure.
Pré-requisitos
- Azure AI Search, camada Básica ou superior, com uma identidade gerenciada.
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 ao sistema e uma das seguintes opções de rede: conectar-se como um serviço confiável ou conectar-se usando a regra de instância de recurso.
Criar uma atribuição de função no Armazenamento do Azure
Entre no portal do Azure e encontre sua conta de armazenamento.
Selecione Controlo de acesso (IAM) .
Selecione Adicionar e, em seguida, selecione Atribuição de função.
Na lista de funções de função, selecione as funções necessárias para o seu serviço de pesquisa:
Task Atribuição de função Indexação de Blob 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 e acesso a dados Indexação de arquivos usando um indexador Adicionar leitor e acesso a dados Gravar em um repositório de conhecimento Adicione o Blob de Armazenamento DataContributor para projeções de objetos e arquivos e o Reader e o Data Access para projeções de tabela. Gravar em um cache de enriquecimento Adicionar Contribuidor de Dados de Blob de Armazenamento Salvar estado da sessão de depuração Adicionar Contribuidor de Dados de Blob de Armazenamento Selecione Seguinte.
Selecione Identidade gerenciada e, em seguida, selecione Membros.
Filtre por identidades gerenciadas atribuídas pelo sistema ou identidades gerenciadas atribuídas pelo usuário. Deverá ver a identidade gerida que criou anteriormente para o 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, dê-lhe alguns minutos.
Selecione a identidade e salve a atribuição de função.
Especificar uma identidade gerenciada em uma cadeia de conexão
Depois de ter uma atribuição de função, você pode configurar uma conexão com o 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 cadeia de conexão de fonte de dados. Você pode encontrar mais exemplos de cadeia de conexão no artigo de identidade gerenciada.
Gorjeta
Você pode criar uma conexão de fonte de dados com o Armazenamento do Azure no portal do Azure, especificando uma identidade gerenciada atribuída pelo sistema ou pelo usuário e, em seguida, exibir a definição JSON para ver como a cadeia de conexão é formulada.
Identidade gerida atribuída pelo sistema
Você deve ter uma identidade gerenciada atribuída ao 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 ao sistema, a única alteração na definição da fonte de dados é o formato da credentials
propriedade.
Forneça um ResourceId
que não tenha chave de conta ou senha. O ResourceId
deve incluir o ID de 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=2024-07-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
Você deve ter uma identidade gerenciada atribuída pelo usuário já configurada e associada ao seu serviço de pesquisa, e a identidade deve ter uma atribuição de função no 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. Apenas uma identidade gerenciada atribuída pelo usuário deve ser fornecida ao criar a fonte de dados. Defina userAssignedIdentity
como a identidade gerenciada atribuída pelo usuário.
Forneça um ResourceId
que não tenha chave de conta ou senha. O ResourceId
deve incluir o ID de 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.
POST https://[service name].search.windows.net/datasources?api-version=2024-07-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 da 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.
Acesso a dados protegidos pela rede em contas de armazenamento
As contas de armazenamento do Azure podem ser ainda mais protegidas usando firewalls e redes virtuais. Se você quiser indexar conteúdo de uma conta de armazenamento protegida usando um firewall ou rede virtual, consulte Fazer conexões de indexador com o Armazenamento do Azure como um serviço confiável.