Acesso do indexador ao conteúdo protegido pela segurança de rede do Azure

Se seus recursos do Azure forem implantados em uma rede virtual do Azure, este artigo conceitual explica como um indexador de pesquisa pode acessar conteúdo protegido por segurança de rede. Ele descreve os padrões de tráfego de saída e os ambientes de execução do indexador. Também abrange as proteções de rede suportadas pelo Azure AI Search e os fatores que podem influenciar a sua estratégia de segurança. Por fim, como o Armazenamento do Azure é usado para acesso a dados e armazenamento persistente, este artigo também aborda considerações de rede específicas para a conectividade de pesquisa e armazenamento.

Procurando instruções passo a passo? Consulte Como configurar regras de firewall para permitir acesso ao indexador ou Como fazer conexões de saída por meio de um ponto de extremidade privado.

Recursos acessados por indexadores

Os indexadores do Azure AI Search podem fazer chamadas de saída para vários recursos do Azure em três situações:

  • Conexões com fontes de dados externas durante a indexação
  • Conexões com código externo encapsulado por meio de um conjunto de habilidades que inclui habilidades personalizadas
  • Conexões com o Armazenamento do Azure durante a execução do conjunto de habilidades para enriquecimento de cache, salvar o estado da sessão de depuração ou gravar em um repositório de conhecimento

Uma lista de todos os tipos de recursos possíveis do Azure que um indexador pode acessar em uma execução típica está listada na tabela abaixo.

Recurso Finalidade na execução do indexador
Armazenamento do Azure (blobs, ADLS Gen 2, ficheiros, tabelas) Data source
Armazenamento do Azure (blobs, tabelas) Skillsets (enriquecimento de cache, sessões de depuração, projeções de armazenamento de conhecimento)
Azure Cosmos DB (várias APIs) Data source
Base de Dados SQL do Azure Data source
SQL Server em máquinas virtuais do Azure Data source
Instância Gerida do SQL Data source
Funções do Azure Anexado a um conjunto de habilidades e usado para hospedar habilidades personalizadas de API da Web

Nota

Um indexador também se conecta aos serviços de IA do Azure para habilidades internas. No entanto, essa conexão é feita pela rede interna e não está sujeita a nenhuma disposição de rede sob seu controle.

Os indexadores se conectam aos recursos usando as seguintes abordagens:

  • Um ponto de extremidade público com credenciais
  • Um ponto de extremidade privado, usando o Azure Private Link
  • Conecte-se como um serviço confiável
  • Conecte-se através de endereçamento IP

Se seu recurso do Azure estiver em uma rede virtual, você deverá usar um ponto de extremidade privado ou um endereçamento IP para admitir conexões de indexador aos dados.

Proteções de rede suportadas

Seus recursos do Azure podem ser protegidos usando qualquer número dos mecanismos de isolamento de rede oferecidos pelo Azure. Dependendo do recurso e da região, os indexadores do Azure AI Search podem fazer conexões de saída por meio de firewalls IP e pontos de extremidade privados, sujeitos às limitações indicadas na tabela a seguir.

Recurso Restrição de IP Ponto final privado
Armazenamento do Azure para indexação baseada em texto (blobs, ADLS Gen 2, arquivos, tabelas) Suportado apenas se a conta de armazenamento e o serviço de pesquisa estiverem em regiões diferentes. Suportado
Armazenamento do Azure para enriquecimento de IA (cache, sessões de depuração, armazenamento de conhecimento) Suportado apenas se a conta de armazenamento e o serviço de pesquisa estiverem em regiões diferentes. Suportado
Azure Cosmos DB para NoSQL Suportado Suportado
Azure Cosmos DB para MongoDB Suportado Não suportado
Azure Cosmos DB para Apache Gremlin Suportado Não suportado
Base de Dados SQL do Azure Suportado Suportado
SQL Server em máquinas virtuais do Azure Suportado N/A
Instância Gerida do SQL Suportado N/A
Funções do Azure Suportado Com suporte, apenas para determinadas camadas de funções do Azure

Ambiente de execução do indexador

O Azure AI Search tem o conceito de um ambiente de execução de indexador que otimiza o processamento com base nas características do trabalho. Existem dois ambientes. Se estiver a utilizar uma firewall IP para controlar o acesso aos recursos do Azure, conhecer os ambientes de execução ajudá-lo-á a configurar um intervalo de IP que inclua ambos os ambientes.

Para qualquer execução de indexador, o Azure AI Search determina o melhor ambiente no qual executar o indexador. Dependendo do número e dos tipos de tarefas atribuídas, o indexador será executado em um dos dois ambientes.

Ambiente de execução Description
Privado Interno a um serviço de pesquisa. Os indexadores em execução no ambiente privado compartilham recursos de computação com outras cargas de trabalho de indexação e consulta no mesmo serviço de pesquisa. Normalmente, apenas indexadores que executam indexação baseada em texto (sem conjuntos de habilidades) são executados nesse ambiente. Se você configurar uma conexão privada entre um indexador e seus dados, este é o único enriovnment de execução que você pode usar.
multilocatário Gerido e protegido pela Microsoft sem custos adicionais. Não está sujeito a quaisquer disposições de rede sob o seu controlo. Esse ambiente é usado para descarregar o processamento computacionalmente intensivo, deixando recursos específicos do serviço disponíveis para operações de rotina. Exemplos de trabalhos de indexador com uso intensivo de recursos incluem anexar conjuntos de habilidades, processar documentos grandes ou processar um grande volume de documentos.

A seção a seguir explica a configuração de IP para admitir solicitações de qualquer ambiente de execução.

Configurando intervalos de IP para execução de indexadores

Se seu recurso do Azure estiver protegido por um firewall, configure regras de entrada que admitam conexões de indexador para todos os IPs dos quais uma solicitação de indexador pode se originar. Isso inclui o endereço IP usado pelo serviço de pesquisa e os endereços IP usados pelo ambiente multilocatário.

  • Para obter o endereço IP do serviço de pesquisa (e o ambiente de execução privada), use nslookup (ou ping) para encontrar o nome de domínio totalmente qualificado (FQDN) do seu serviço de pesquisa. O FQDN de um serviço de pesquisa na nuvem pública seria <service-name>.search.windows.net.

  • Para obter os endereços IP dos ambientes multilocatários nos quais um indexador pode ser executado, use a AzureCognitiveSearch marca de serviço.

    As tags de serviço do Azure têm um intervalo publicado de endereços IP dos ambientes multilocatários para cada região. Você pode encontrar esses IPs usando a API de descoberta ou um arquivo JSON para download. Os intervalos de IP são alocados por região, portanto, verifique a região do serviço de pesquisa antes de começar.

Configurando regras de IP para o Azure SQL

Ao definir a regra IP para o ambiente multilocatário, determinadas fontes de dados SQL oferecem suporte a uma abordagem simples para a especificação de endereço IP. Em vez de enumerar todos os endereços IP na regra, você pode criar uma regra de Grupo de Segurança de Rede que especifique a AzureCognitiveSearch marca de serviço.

Você pode especificar a etiqueta de serviço se sua fonte de dados for:

Observe que, se você especificou a tag de serviço para a regra IP do ambiente multilocatário, ainda precisará de uma regra de entrada explícita para o ambiente de execução privada (ou seja, o próprio serviço de pesquisa), conforme obtido por meio do nslookup.

Escolha uma abordagem de conectividade

Um serviço de pesquisa não pode ser provisionado em uma rede virtual específica, sendo executado nativamente em uma máquina virtual. Embora alguns recursos do Azure ofereçam pontos de extremidade de serviço de rede virtual, essa funcionalidade não será oferecida pelo Azure AI Search. Você deve planejar a implementação de uma das seguintes abordagens.

Abordagem Detalhes
Conexão de entrada com seu recurso do Azure Configure uma regra de firewall de entrada em seu recurso do Azure que admita solicitações de indexador para seus dados. A configuração do firewall deve incluir a etiqueta de serviço para execução multilocatária e o endereço IP do serviço de pesquisa.
Conexão privada entre a Pesquisa de IA do Azure e seu recurso do Azure Configure um link privado compartilhado usado exclusivamente pelo seu serviço de pesquisa para conexões com seu recurso. As conexões viajam pela rede interna e ignoram a internet pública. Se os seus recursos estiverem totalmente bloqueados (em execução numa rede virtual protegida ou não estiverem disponíveis através de uma ligação pública), um ponto de extremidade privado é a sua única opção. Consulte Fazer conexões de saída por meio de um ponto de extremidade privado.

As conexões por meio de um ponto de extremidade privado devem ser originadas do ambiente de execução privado do serviço de pesquisa.

A configuração de um firewall IP é gratuita. Um ponto de extremidade privado, baseado no Azure Private Link, tem um impacto na cobrança. Consulte Preços do Azure Private Link para obter detalhes.

Depois de configurar a segurança de rede, acompanhe as atribuições de função que especificam quais usuários e grupos têm acesso de leitura e gravação aos seus dados e operações.

Considerações sobre o uso de um ponto de extremidade privado

Esta seção se restringe à opção de conexão privada.

  • Um link privado compartilhado requer um serviço de pesquisa faturável, onde a camada mínima é Básica para indexação baseada em texto ou Padrão 2 (S2) para indexação baseada em habilidades. Consulte limites de nível no número de pontos de extremidade privados para obter detalhes.
  • Depois que um link privado compartilhado é criado, o serviço de pesquisa sempre o usa para cada conexão de indexador com esse recurso específico do Azure. A conexão privada é bloqueada e aplicada internamente. Não é possível ignorar a conexão privada para uma conexão pública.

  • Requer um recurso faturável do Azure Private Link.

  • Requer que um proprietário de assinatura aprove a conexão de ponto de extremidade privado.

  • Requer que você desative o ambiente de execução multilocatário para o indexador.

    Para fazer isso, defina o executionEnvironment do indexador como "Private". Esta etapa garante que toda a execução do indexador esteja confinada ao ambiente privado provisionado no serviço de pesquisa. Essa configuração tem como escopo um indexador e não o serviço de pesquisa. Se você quiser que todos os indexadores se conectem por pontos de extremidade privados, cada um deve ter a seguinte configuração:

        {
          "name" : "myindexer",
          ... other indexer properties
          "parameters" : {
              ... other parameters
              "configuration" : {
                ... other configuration properties
                "executionEnvironment": "Private"
              }
            }
        }
    

Depois de ter um ponto de extremidade privado aprovado para um recurso, os indexadores definidos como privados tentam obter acesso por meio do link privado que foi criado e aprovado para o recurso do Azure.

O Azure AI Search validará se os chamadores do ponto de extremidade privado têm atribuições de função apropriadas. Por exemplo, se você solicitar uma conexão de ponto de extremidade privado para uma conta de armazenamento com permissões somente leitura, essa chamada será rejeitada.

Se o ponto de extremidade privado não for aprovado ou se o indexador não tiver usado a conexão de ponto de extremidade privado, você encontrará uma transientFailure mensagem de erro no histórico de execução do indexador.

Complemente a segurança da rede com autenticação de token

Firewalls e segurança de rede são um primeiro passo para impedir o acesso não autorizado a dados e operações. A autorização deve ser o seu próximo passo.

Recomendamos o acesso baseado em função, onde os usuários e grupos do Microsoft Entra ID são atribuídos a funções que determinam o acesso de leitura e gravação ao seu serviço. Consulte Conectar-se à Pesquisa de IA do Azure usando controles de acesso baseados em função para obter uma descrição das funções internas e instruções para criar funções personalizadas.

Se você não precisar de autenticação baseada em chave, recomendamos desativar as chaves de API e usar atribuições de função exclusivamente.

Acesso a uma conta de armazenamento protegida pela rede

Um serviço de pesquisa armazena índices e listas de sinônimos. Para outros recursos que exigem armazenamento, o Azure AI Search depende do Armazenamento do Azure. Cache de enriquecimento, sessões de depuração e armazenamentos de conhecimento se enquadram nessa categoria. A localização de cada serviço e quaisquer proteções de rede em vigor para armazenamento determinarão a sua estratégia de acesso aos dados.

Serviços na mesma região

No Armazenamento do Azure, o acesso por meio de um firewall exige que a solicitação seja originada de uma região diferente. Se o Armazenamento do Azure e a Pesquisa de IA do Azure estiverem na mesma região, você poderá ignorar as restrições de IP na conta de armazenamento acessando dados sob a identidade do sistema do serviço de pesquisa.

Há duas opções para dar suporte ao acesso a dados usando a identidade do sistema:

  • Configure a pesquisa para ser executada como um serviço confiável e use a exceção de serviço confiável no Armazenamento do Azure.

  • Configure uma regra de instância de recurso no Armazenamento do Azure que admita solicitações de entrada de um recurso do Azure.

As opções acima dependem do ID do Microsoft Entra para autenticação, o que significa que a conexão deve ser feita com um login do Microsoft Entra. Atualmente, apenas uma identidade gerenciada atribuída ao sistema do Azure AI Search é suportada para conexões de mesma região por meio de um firewall.

Serviços em diferentes regiões

Quando a pesquisa e o armazenamento estão em regiões diferentes, você pode usar as opções mencionadas anteriormente ou configurar regras de IP que admitem solicitações do seu serviço. Dependendo da carga de trabalho, talvez seja necessário configurar regras para vários ambientes de execução, conforme descrito na próxima seção.

Próximos passos

Agora que você está familiarizado com as opções de acesso a dados do indexador para soluções implantadas em uma rede virtual do Azure, revise um dos seguintes artigos de instruções como sua próxima etapa: