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

Se os requisitos do Azure estiverem implantados em uma rede virtual do Azure, este artigo conceitual explicará como um indexador de pesquisa pode acessar o conteúdo protegido pela 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 aborda as proteções de rede compatíveis com o Azure AI Search e os fatores que podem influenciar 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 as considerações sobre rede específicas da conectividade de pesquisa e armazenamento.

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

Recursos acessados por indexadores

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

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

A tabela abaixo traz uma lista de todos os tipos de recursos possíveis do Azure que um indexador pode acessar em uma execução típica.

Recurso Finalidade dentro da execução do indexador
Armazenamento do Azure (blobs, ADLS Gen 2, arquivos, tabelas) Fonte de dados
Armazenamento do Azure (blobs, tabelas) Conjuntos de habilidades (enriquecimentos de cache, sessões de depuração, projeções do repositório de conhecimento)
Azure Cosmos DB (várias APIs) Fonte de dados
Banco de Dados SQL do Azure Fonte de dados
SQL Server em máquinas virtuais do Azure Fonte de dados
Instância Gerenciada de SQL Fonte de dados
Funções do Azure Anexado a um conjunto de habilidades e usado para hospedar habilidades personalizadas da API Web

Observação

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 nenhum provisionamento 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 um Link Privado do Azure
  • Conectar-se como um serviço confiável
  • Conexão por meio de endereçamento IP

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

Proteções de rede compatíveis

Os recursos do Azure podem ser protegidos com qualquer número de 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 de IP e pontos de extremidade privados, sujeitos às limitações indicadas na tabela a seguir.

Recurso Restrição de IP Ponto de extremidade privado
Armazenamento do Azure para indexação baseada em texto (blobs, tabelas, ADLS Gen2, arquivos, tabelas) Com suporte apenas se a conta de armazenamento e o serviço de pesquisa estiverem em regiões diferentes. Com suporte
Armazenamento do Azure para enriquecimento de IA (cache, sessões de depuração, repositório de conhecimento) Com suporte apenas se a conta de armazenamento e o serviço de pesquisa estiverem em regiões diferentes. Com suporte
Azure Cosmos DB para NoSQL Com suporte Com suporte
Azure Cosmos DB for MongoDB Com suporte Sem suporte
Azure Cosmos DB para Apache Gremlin Com suporte Sem suporte
Banco de Dados SQL do Azure Com suporte Com suporte
SQL Server em máquinas virtuais do Azure Com suporte N/D
Instância Gerenciada de SQL Com suporte N/D
Funções do Azure Com suporte Com suporte somente para determinadas camadas do Azure Functions

Ambiente de execução do indexador

O Azure AI Search tem o conceito de ambiente de execução do indexador, que otimiza o processamento com base nas características do trabalho. Há dois ambientes. Se você estiver usando um firewall de IP para controlar o acesso aos recursos do Azure, saber mais sobre os ambientes de execução ajudará a configurar um intervalo de IP que seja inclusivo de ambos os ambientes.

Para qualquer execução de indexador específico, 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 Descrição
Privados Interno para 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 de consulta no mesmo serviço de pesquisa. Normalmente, apenas os indexadores que executam a 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, esse será o único ambiente de execução que você poderá usar.
multilocatário Gerenciado e protegido pela Microsoft sem custo adicional. Ele não está sujeito a nenhuma provisão de rede sob seu controle. Esse ambiente é usado para descarregar o processamento computacionalmente intensivo, deixando os recursos específicos do serviço disponíveis para operações de rotina. Entre os exemplos de trabalhos de indexador com uso intensivo de recursos estão a anexação de conjuntos de habilidades, o processamento de documentos grandes ou o processamento de um alto volume de documentos.

Como configurar intervalos de IP para execução do indexador

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

Se seu recurso do Azure estiver protegido por um firewall, defina regras de entrada que admitam conexões do indexador para todos os IPs dos quais uma solicitação do 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 FQDN (nome de domínio totalmente qualificado) do 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 em que um indexador pode ser executado, use a marca de serviço AzureCognitiveSearch.

    As marcas 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.

Configurar regras de IP para o SQL do Azure

Ao definir a regra de IP para o ambiente multilocatário, algumas fontes de dados SQL dão suporte a uma abordagem simples para a especificação do endereço IP. Em vez de enumerar todos os endereços IP na regra, você poderá criar uma regra do grupo de segurança de rede que especifica a marca de serviço AzureCognitiveSearch.

Especifique a marca de serviço se a fonte de dados for:

Observe que, se você especificar a marca de serviço para a regra de IP do ambiente multilocatário, ainda precisará ter 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 de nslookup.

Escolher uma abordagem de conectividade

Um serviço de pesquisa não pode ser provisionado em uma rede virtual específica, executando 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 pela Pesquisa de IA do Azure. Você deve planejar a implementação de uma das abordagens a seguir.

Abordagem Detalhes
Proteger a conexão de entrada com o recurso do Azure Configurar uma regra de firewall de entrada no recurso do Azure que admita solicitações do indexador para seus dados. Sua configuração de firewall deve incluir a marca de serviço para execução multilocatário e o endereço IP do seu serviço de pesquisa. Consulte Configurar regras de firewall para permitir o acesso do indexador.
Conexão privada entre a Pesquisa de IA do Azure e seu recurso do Azure Configure um link privado compartilhado usado exclusivamente pelo serviço de pesquisa para conexões com seu recurso. As conexões percorrem a rede interna e ignoram a Internet pública. Se os recursos estiverem totalmente bloqueados (em execução em uma rede virtual protegida ou, caso contrário, não estiverem disponíveis em uma conexão pública), um ponto de extremidade privado será a única opção. Consulte Fazer conexões de saída por meio de um ponto de extremidade privado.

As conexões feitas por meio de um ponto de extremidade privado precisam se originar do ambiente de execução privada do serviço de pesquisa.

A configuração de um firewall de IP é gratuita. Um ponto de extremidade privado, que se baseia no Link Privado do Azure, tem um impacto na cobrança. Confira Preço do Link Privado do Azure para obter detalhes.

Depois de configurar a segurança de rede, siga 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 como usar um ponto de extremidade privado

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

  • Depois que um link privado compartilhado é criado, o serviço de pesquisa sempre o usa para cada conexão do indexador com esse recurso específico do Azure. A conexão privada é bloqueada e imposta internamente. Você não pode ignorar a conexão privada para usar uma conexão pública.

  • Requer um recurso de Link Privado do Azure faturável.

  • 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.

    Faça isso definindo o executionEnvironment do indexador como "Private". Essa etapa garante que toda a execução do indexador fique confinada ao ambiente privado provisionado no serviço de pesquisa. Essa configuração inclui um indexador no escopo e não o serviço de pesquisa. Caso deseje que todos os indexadores se conectem por pontos de extremidade privados, cada um precisa ter a seguinte configuração:

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

Depois que você tiver um ponto de extremidade privado aprovado para um recurso, os indexadores que estão definidos como privados tentarão obter acesso por meio do link privado criado e aprovado para esse recurso do Azure.

A Pesquisa de IA do Azure 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á a mensagem de erro transientFailure 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 uma primeira etapa para impedir o acesso não autorizado a dados e operações. A autorização deve ser a sua próxima etapa.

Recomendamos o acesso baseado em função, em que 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. Veja Conectar-se à Pesquisa de IA do Azure usando controles de acesso baseados em função para obter uma descrição de funções internas e instruções para criar funções personalizadas.

Se não precisar de autenticação baseada em chave, recomendamos que desative as chaves API e utilize exclusivamente atribuições de funções.

Acesso a uma conta de armazenamento protegida pela rede

Um serviço de pesquisa armazena listas de índices e de sinônimos. Para outros recursos que exigem armazenamento, o Azure IA Search usa uma dependência no Armazenamento do Azure. Cache de enriquecimento, sessões de depuração e repositórios de conhecimento se enquadram nessa categoria. O local de cada serviço e as proteções de rede em vigor para armazenamento determinarão sua estratégia de acesso aos dados.

Serviços da mesma região

No Armazenamento do Azure, o acesso por meio de um firewall exige que a solicitação tenha origem a partir de uma região diferente. Se o Armazenamento do Azure e o Azure IA Search 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 aos dados usando a identidade do sistema:

As opções acima dependem do Microsoft Entra ID para autenticação, o que significa que a conexão deve ser feita com um logon do Microsoft Entra. Atualmente, há suporte somente para uma identidade gerenciada atribuída pelo sistema do Azure IA Search para conexões da mesma região por meio de um firewall.

Serviços em regiões diferentes

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

Próximas etapas

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, confira um dos seguintes artigos de instruções como a próxima etapa: