Faça conexões de saída por meio de um link privado compartilhado
Este artigo explica como configurar chamadas privadas de saída do Azure AI Search para um recurso do Azure que é executado em uma rede virtual do Azure.
A configuração de uma conexão privada permite que um serviço de pesquisa se conecte a um endereço IP de rede virtual em vez de uma porta aberta para a Internet. O objeto criado para a conexão é chamado de link privado compartilhado. Na conexão, o serviço de pesquisa usa o link privado compartilhado internamente para alcançar um recurso do Azure dentro do limite da rede.
O link privado compartilhado é um recurso premium que é cobrado pelo uso. Quando você configura um link privado compartilhado, as cobranças pelo ponto de extremidade privado são adicionadas à sua fatura do Azure. À medida que você usa o link privado compartilhado, as taxas de transferência de dados para acesso de entrada e saída também são faturadas. Para obter detalhes, consulte Preços do Link Privado do Azure.
Nota
Se você estiver configurando uma conexão de indexador privado com uma Instância Gerenciada SQL, consulte este artigo para obter etapas específicas para esse tipo de recurso.
Quando usar um link privado compartilhado
O Azure AI Search faz chamadas de saída para outros recursos do Azure nos seguintes cenários:
- Conexões de indexador ou consulta com o Azure OpenAI, Azure AI Vision ou o catálogo de modelos do Azure AI Foundry para vetorização
- Conexões do indexador com fontes de dados suportadas
- Conexões de indexador (conjunto de habilidades) com o Armazenamento do Azure para enriquecimento de cache, depuração de sessão ou gravação em um repositório de conhecimento
- Conexões do indexador (conjunto de habilidades) com os serviços de IA do Azure para fins de cobrança
- Solicitações de chave de criptografia para o Cofre de Chaves do Azure
- Solicitações de habilidades personalizadas para o Azure Functions ou recurso semelhante
Os links privados compartilhados só funcionam para conexões Azure-to-Azure. Se você estiver se conectando ao OpenAI ou outro modelo externo, a conexão deve ser pela internet pública.
Os links privados compartilhados são para operações e dados acessados por meio de um ponto de extremidade privado para recursos ou clientes do Azure executados em uma rede virtual do Azure.
Um link privado compartilhado é:
- Criado usando ferramentas, APIs ou SDKs do Azure AI Search
- Aprovado pelo proprietário do recurso do Azure
- Usado internamente pela Pesquisa de IA do Azure em uma conexão privada com um recurso específico do Azure
Somente seu serviço de pesquisa pode usar os links privados que ele cria, e pode haver apenas um link privado compartilhado criado em seu serviço para cada combinação de recursos e subrecursos.
Depois de configurar o link privado, ele é usado automaticamente sempre que o serviço de pesquisa se conecta a esse recurso. Você não precisa modificar a cadeia de conexão ou alterar o cliente que está usando para emitir as solicitações, embora o dispositivo usado para a conexão deva se conectar usando um IP autorizado no firewall do recurso do Azure.
Há dois cenários para usar o Azure Private Link e o Azure AI Search juntos.
Cenário um: crie um link privado compartilhado quando uma conexão de saída (indexador) com o Azure exigir uma conexão privada.
Cenário dois: configurar a pesquisa de uma conexão de entrada privada de clientes executados em uma rede virtual.
O cenário um é abordado neste artigo.
Embora ambos os cenários dependam do Azure Private Link, eles são independentes. Você pode criar um link privado compartilhado sem ter que configurar seu próprio serviço de pesquisa para um ponto de extremidade privado.
Limitações
Ao avaliar links privados compartilhados para seu cenário, lembre-se dessas restrições.
Vários dos tipos de recursos usados em um link privado compartilhado estão em visualização. Se você estiver se conectando a um recurso de visualização (Banco de Dados do Azure para MySQL ou Instância Gerenciada SQL do Azure), use uma versão de visualização da API REST de Gerenciamento para criar o link privado compartilhado. Essas versões incluem
2020-08-01-preview
,2021-04-01-preview
,2024-03-01-preview
e2024-06-01-preview
. Recomendamos a API de visualização mais recente.A execução do indexador deve usar o ambiente de execução privado específico do seu serviço de pesquisa. Não há suporte para conexões de ponto de extremidade privado no ambiente de processamento de conteúdo multilocatário. A definição de configuração para este requisito é abordada neste artigo.
Analise os limites de recursos de link privado compartilhado para cada camada.
Pré-requisitos
Um recurso do Azure com suporte, configurado para ser executado em uma rede virtual.
Um serviço Azure AI Search com requisitos de camada e região, por carga de trabalho:
Carga de trabalho Requisitos dos níveis Requisitos da região Requisitos de criação de serviço Indexadores sem conjuntos de habilidades Básico e superior Nenhuma Nenhuma Habilidades com habilidades de incorporação (vetorização integrada) Básico e superior Regiões de alta capacidade Depois de 3 de abril de 2024 Conjuntos de habilidades usando outras habilidades internas ou personalizadas Padrão 2 (S2) e superior Nenhuma Depois de 3 de abril de 2024 Permissões no Azure AI Search e no recurso do Azure:
Recurso Permissões Pesquisa de IA do Azure Microsoft.Search/searchServices/sharedPrivateLinkResources/write
Microsoft.Search/searchServices/sharedPrivateLinkResources/read
Microsoft.Search/searchServices/sharedPrivateLinkResources/operationStatuses/read
Outro recurso do Azure Permissão para aprovar conexões de ponto de extremidade privadas. Por exemplo, no Armazenamento do Azure, você precisa do Microsoft.Storage/storageAccounts/privateEndpointConnectionsApproval/action
.
Tipos de recursos suportados
Você pode criar um link privado compartilhado para os seguintes recursos.
Tipo de recurso | Subrecurso (ou ID de Grupo) |
---|---|
Microsoft.Storage/storageContas 1 | blob , table , dfs , file |
Microsoft.DocumentDB/databaseAccounts 2 | Sql |
Microsoft.Sql/servidores 3 | sqlServer |
Microsoft.KeyVault/cofres | vault |
Microsoft.DBforMySQL/servers (visualização) | mysqlServer |
Microsoft.Web/sites 4 | sites |
Microsoft.Sql/managedInstances (visualização) 5 | managedInstance |
Microsoft.CognitiveServices/contas 6 7 | openai_account |
Microsoft.CognitiveServices/contas 8 | cognitiveservices_account |
1 Se o Armazenamento do Azure e a Pesquisa de IA do Azure estiverem na mesma região, a conexão com o armazenamento será feita pela rede de backbone da Microsoft, o que significa que um link privado compartilhado será redundante para essa configuração. No entanto, se você já configurou um ponto de extremidade privado para o Armazenamento do Azure, também deve configurar um link privado compartilhado ou a conexão é recusada no lado do armazenamento. Além disso, se você estiver usando vários formatos de armazenamento para vários cenários na pesquisa, crie um link privado compartilhado separado para cada subrecurso.
2 O Microsoft.DocumentDB/databaseAccounts
tipo de recurso é usado para conexões de indexador com o Azure Cosmos DB para NoSQL. O nome do provedor e a ID do grupo diferenciam maiúsculas de minúsculas.
3 O Microsoft.Sql/servers
tipo de recurso é usado para conexões com o banco de dados SQL do Azure. Atualmente, não há suporte para um link privado compartilhado para o Azure Synapse SQL.
4 O Microsoft.Web/sites
tipo de recurso é usado para o Serviço de aplicativo e as funções do Azure. No contexto do Azure AI Search, uma função do Azure é o cenário mais provável. Uma função do Azure é comumente usada para hospedar a lógica de uma habilidade personalizada. O Azure Function tem planos de hospedagem de Consumo, Premium e Serviço de Aplicativo Dedicado. O Ambiente do Serviço de Aplicativo (ASE), o Serviço Kubernetes do Azure (AKS) e o Gerenciamento de API do Azure não são suportados no momento.
5 Consulte Criar um link privado compartilhado para uma instância gerenciada do SQL para obter instruções.
6 O Microsoft.CognitiveServices/accounts
tipo de recurso é usado para conexões de vetorizador e indexador para modelos de incorporação do Azure OpenAI ao implementar vetorização integrada. A partir de 19 de novembro de 2024, agora há suporte para link privado compartilhado para incorporar modelos no catálogo de modelos do Azure AI Foundry ou para a API multimodal do Azure AI Vision.
7 O link privado compartilhado para o Azure OpenAI só é suportado na nuvem pública. Outras ofertas de nuvem, como o Microsoft Azure Government , não têm suporte para links privados compartilhados para openai_account
a ID do Grupo.
8 Os links privados compartilhados agora são suportados (a partir de novembro de 2024) para conexões com contas multisserviço do Azure AI. O Azure AI Search liga-se ao multisserviço Azure AI para efeitos de faturação. Essas conexões agora podem ser privadas por meio de um link privado compartilhado. O link privado compartilhado só é suportado ao configurar uma identidade gerenciada (configuração sem chave) na definição do conjunto de habilidades.
1 - Crie um link privado compartilhado
Use o portal do Azure, a API REST de gerenciamento, a CLI do Azure ou o Azure PowerShell para criar um link privado compartilhado.
Aqui estão algumas dicas:
- Dê ao link privado um nome significativo. No recurso PaaS do Azure, um link privado compartilhado aparece ao lado de outros pontos de extremidade privados. Um nome como "shared-private-link-for-search" pode lembrá-lo de como é usado.
Ao concluir as etapas nesta seção, você terá um link privado compartilhado provisionado em um estado pendente. Leva vários minutos para criar o link. Depois de criada, o proprietário do recurso deve aprovar a solicitação antes que ela esteja operacional.
Entre no portal do Azure e encontre seu serviço de pesquisa.
Em Configurações no painel de navegação esquerdo, selecione Rede.
Na página Acesso Privado Partilhado, selecione + Adicionar Acesso Privado Partilhado.
Selecione Conectar a um recurso do Azure em meu diretório ou Conectar a um recurso do Azure por ID de recurso.
Se você selecionar a primeira opção (recomendada), o portal do Azure ajudará você a escolher o recurso apropriado do Azure e preencherá outras propriedades, como a ID de grupo do recurso e o tipo de recurso.
Se você selecionar a segunda opção, insira a ID de recurso do Azure manualmente e escolha a ID de grupo apropriada na lista no início deste artigo.
Confirme se o status de provisionamento é "Atualização".
Quando o recurso é criado com êxito, o estado de provisionamento do recurso muda para "Êxito".
Fluxo de trabalho de criação de links privados compartilhados
Uma 202 Accepted
resposta é devolvida em caso de sucesso. O processo de criação de um ponto de extremidade privado de saída é uma operação de longa execução (assíncrona). Envolve a implantação dos seguintes recursos:
Um ponto de extremidade privado, alocado com um endereço IP privado em um
"Pending"
estado. O endereço IP privado é obtido a partir do espaço de endereço alocado para a rede virtual do ambiente de execução para o indexador privado específico do serviço de pesquisa. Após a aprovação do ponto de extremidade privado, qualquer comunicação da Pesquisa de IA do Azure para o recurso do Azure é originada do endereço IP privado e de um canal de link privado seguro.Uma zona DNS privada para o tipo de recurso, com base no ID do grupo. Ao implantar esse recurso, você garante que qualquer pesquisa de DNS para o recurso privado utilize o endereço IP associado ao ponto de extremidade privado.
2 - Aprovar a conexão de ponto final privado
A aprovação da conexão de ponto de extremidade privado é concedida no lado PaaS do Azure. É necessária a aprovação explícita do proprietário do recurso. As etapas a seguir abrangem a aprovação usando o portal do Azure, mas aqui estão alguns links para aprovar a conexão programaticamente do lado do Azure PaaS:
- No Armazenamento do Azure, use Private Endpoint Connections - Put
- No Azure Cosmos DB, use Conexões de Ponto Final Privado - Criar ou Atualizar
- No Azure OpenAI, use Conexões de Ponto Final Privado - Criar ou Atualizar
Usando o portal do Azure, execute as seguintes etapas:
Abra a página Rede do recurso PaaS do Azure.Texto
Encontre a seção que lista as conexões de ponto de extremidade privadas. O exemplo a seguir é para uma conta de armazenamento.
Selecione a conexão e, em seguida, selecione Aprovar. Pode levar alguns minutos para que o status seja atualizado no portal do Azure.
Depois que o ponto de extremidade privado é aprovado, o Azure AI Search cria os mapeamentos de zona DNS necessários na zona DNS criada para ele.
Embora o link do ponto de extremidade privado na página Rede esteja ativo, ele não será resolvido.
Selecionar o link produz um erro. Uma mensagem de status de e must match the tenant associated with this subscription
aparece porque o recurso de ponto de extremidade privado de back-end é provisionado "The access token is from the wrong issuer"
pela Microsoft em um locatário gerenciado pela Microsoft, enquanto o recurso vinculado (Azure AI Search) está em seu locatário. É por design que você não pode acessar o recurso de ponto de extremidade privado selecionando o link de conexão de ponto de extremidade privado.
Siga as instruções na próxima seção para verificar o status do seu link privado compartilhado.
3 - Verifique o status do link privado compartilhado
No lado da Pesquisa de IA do Azure, você pode confirmar a aprovação da solicitação revisitando a página Acesso Privado Compartilhado da página Rede do serviço de pesquisa. O estado da conexão deve ser aprovado.
Como alternativa, você também pode obter o estado da conexão usando os Recursos de Link Privado Compartilhado - Get.
az rest --method get --uri https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/contoso/providers/Microsoft.Search/searchServices/contoso-search/sharedPrivateLinkResources/blob-pe?api-version=2024-07-01
Isso retornaria um JSON, onde o estado da conexão aparece como "status" na seção "propriedades". Segue-se um exemplo de uma conta de armazenamento.
{
"name": "blob-pe",
"properties": {
"privateLinkResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/contoso/providers/Microsoft.Storage/storageAccounts/contoso-storage",
"groupId": "blob",
"requestMessage": "please approve",
"status": "Approved",
"resourceRegion": null,
"provisioningState": "Succeeded"
}
}
Se o estado de provisionamento (properties.provisioningState
) do recurso for "Bem-sucedido" e o estado da conexão(properties.status
) for "Aprovado", isso significa que o recurso de link privado compartilhado está funcional e o indexador pode ser configurado para se comunicar pelo ponto de extremidade privado.
4 - Configurar o indexador para ser executado no ambiente privado
A execução do indexador ocorre em um ambiente privado específico para o serviço de pesquisa ou em um ambiente multilocatário usado internamente para descarregar o processamento dispendioso do conjunto de habilidades para vários clientes.
O ambiente de execução é transparente, mas depois de começar a criar regras de firewall ou estabelecer conexões privadas, você deve levar em conta a execução do indexador. Para uma conexão privada, configure a execução do indexador para sempre ser executada no ambiente privado.
Esta etapa mostra como configurar o indexador para ser executado no ambiente privado usando a API REST. Você também pode definir o ambiente de execução usando o editor JSON no portal do Azure.
Nota
Você pode executar esta etapa antes que a conexão de ponto de extremidade privado seja aprovada. No entanto, até que a conexão de ponto de extremidade privado apareça como aprovada, qualquer indexador existente que tente se comunicar com um recurso seguro (como a conta de armazenamento) acabará em um estado de falha transitória e novos indexadores não poderão ser criados.
Crie a definição, o índice e o conjunto de habilidades da fonte de dados (se estiver usando um) como faria normalmente. Não há propriedades em nenhuma dessas definições que variam ao usar um ponto de extremidade privado compartilhado.
Crie um indexador que aponte para a fonte de dados, o índice e o conjunto de habilidades que você criou na etapa anterior. Além disso, force o indexador a ser executado no ambiente de execução privada definindo a propriedade de configuração do indexador
executionEnvironment
comoprivate
.{ "name": "indexer", "dataSourceName": "blob-datasource", "targetIndexName": "index", "parameters": { "configuration": { "executionEnvironment": "private" } }, "fieldMappings": [] }
Depois que o indexador for criado com êxito, ele deverá se conectar ao recurso do Azure por meio da conexão de ponto de extremidade privado. Você pode monitorar o status do indexador usando a API de Status do Indexador.
Nota
Se você já tiver indexadores existentes, poderá atualizá-los por meio da API PUT definindo como executionEnvironment
ou private
usando o editor JSON no portal do Azure.
5 - Teste o link privado compartilhado
Se você ainda não tiver feito isso, verifique se seu recurso PaaS do Azure recusa conexões da Internet pública. Se as conexões forem aceitas, revise as configurações de DNS na página Rede do seu recurso PaaS do Azure.
Escolha uma ferramenta que possa invocar um cenário de solicitação de saída, como uma conexão de indexador com um ponto de extremidade privado. Uma opção fácil é usar o assistente Importar dados , mas você também pode tentar um cliente REST e APIs REST para obter mais precisão. Supondo que seu serviço de pesquisa também não esteja configurado para uma conexão privada, a conexão do cliente REST para pesquisar pode ser pela Internet pública.
Defina a cadeia de conexão para o recurso privado de PaaS do Azure. O formato da cadeia de conexão não muda para o link privado compartilhado. O serviço de pesquisa invoca o link privado compartilhado internamente.
Para cargas de trabalho de indexador, a cadeia de conexão está na definição da fonte de dados. Um exemplo de uma fonte de dados pode ter esta aparência:
{ "name": "my-blob-ds", "type": "azureblob", "subtype": null, "credentials": { "connectionString": "DefaultEndpointsProtocol=https;AccountName=<YOUR-STORAGE-ACCOUNT>;AccountKey=..." }
Para cargas de trabalho do indexador, lembre-se de definir o ambiente de execução na definição do indexador. Um exemplo de uma definição de indexador pode ter esta aparência:
"name": "indexer", "dataSourceName": "my-blob-ds", "targetIndexName": "my-index", "parameters": { "configuration": { "executionEnvironment": "private" } }, "fieldMappings": [] }
Execute o indexador. Se a execução do indexador for bem-sucedida e o índice de pesquisa for preenchido, o link privado compartilhado estará funcionando.
Resolução de Problemas
Se a criação do indexador falhar com "As credenciais da fonte de dados são inválidas", verifique o status de aprovação do link privado compartilhado antes de depurar a conexão. Se o status for
Approved
, verifique aproperties.provisioningState
propriedade. Se for , pode haver um problema com dependênciasIncomplete
subjacentes. Nesse caso, reemita aPUT
solicitação para recriar o link privado compartilhado. Também pode ser necessário repetir a etapa de aprovação.Se os indexadores falharem de forma consistente ou intermitente, verifique a
executionEnvironment
propriedade no indexador. O valor deve ser definido comoprivate
. Se você não definiu essa propriedade e as execuções do indexador foram bem-sucedidas no passado, é porque o serviço de pesquisa usou um ambiente privado por conta própria. Um serviço de pesquisa move o processamento para fora do ambiente multilocatário se o sistema estiver sob carga.Se você receber um erro ao criar um link privado compartilhado, verifique os limites de serviço para verificar se você está abaixo da cota para sua camada.
Próximos passos
Saiba mais sobre pontos de extremidade privados e outros métodos de conexão segura: