Visão geral de segurança do Azure AI Search
Este artigo descreve os recursos de segurança do Azure AI Search que protegem os dados e as operações.
Fluxo de dados (padrões de tráfego de rede)
Um serviço do AI Search é hospedado no Azure e normalmente é acessado por aplicativos cliente em conexões de rede pública. Embora esse padrão seja predominante, não é o único padrão de tráfego com o qual você precisa se preocupar. Entender todos os pontos de entrada e também o tráfego de saída é o conhecimento necessário para proteger seus ambientes de desenvolvimento e produção.
O Azure AI Search tem três padrões básicos de tráfego de rede:
- Solicitações de entrada feitas por um cliente para o serviço de pesquisa (o padrão predominante)
- Solicitações de saída emitidas pelo serviço de pesquisa para outros serviços no Azure e em outro lugar
- Solicitações internas de serviço a serviço na rede de backbone protegida da Microsoft
Tráfego de entrada
As solicitações de entrada que têm como alvo um ponto de extremidade do serviço de pesquisa incluem:
- Criar, ler, atualizar ou excluir índices e outros objetos no serviço de pesquisa
- Carregar um índice com documentos de pesquisa
- Consultar um índice
- Acionar a execução do indexador ou do conjunto de habilidades
As APIs REST descrevem a gama completa de solicitações de entrada que são tratadas por um serviço de pesquisa.
No mínimo, todas as solicitações de entrada devem ser autenticadas usando uma destas opções:
- Autenticação baseada em chave (padrão). As solicitações de entrada fornecem uma chave de API válida.
- Controle de acesso baseado em função. A autorização é feita por meio de identidades do Microsoft Entra e atribuições de funções em seu serviço de pesquisa.
Além disso, é possível adicionar recursos de segurança de rede para restringir ainda mais o acesso ao ponto de extremidade. Crie regras de entrada em um firewall de IP ou crie pontos de extremidade privados que protegem totalmente o serviço de pesquisa da internet pública.
Tráfego interno
As solicitações internas são protegidas e gerenciadas pela Microsoft. Não é possível configurar ou controlar essas conexões. Se você estiver bloqueando o acesso à rede, nenhuma ação de sua parte será necessária porque o tráfego interno não é configurável pelo cliente.
O tráfego interno consiste em:
- Chamadas de serviço a serviço para tarefas como autenticação e autorização por meio da ID do Microsoft Entra, registro de recursos enviado ao Azure Monitor e conexões de ponto de extremidade privado que utilizam o Link Privado do Azure.
- Solicitações feitas às APIs dos serviços de IA do Azure sobre habilidades internas
- Solicitações feitas aos modelos de machine learning que dão suporte à classificação semântica.
Tráfego de saída
As solicitações de saída podem ser protegidas e gerenciadas por você. As solicitações de saída são originadas de um serviço de pesquisa para outros aplicativos. Essas solicitações são normalmente feitas por indexadores para indexação baseada em texto, enriquecimento de IA baseado em habilidades personalizadas e vetorizações no momento da consulta. As solicitações de saída incluem operações de leitura e gravação.
A lista a seguir é uma enumeração completa das solicitações de saída para as quais você pode configurar conexões seguras. Um serviço de pesquisa faz solicitações em seu próprio nome e em nome de um indexador ou habilidade personalizada.
Operação | Cenário |
---|---|
Indexadores | Conectar-se a fontes de dados externas para recuperar dados. Para obter mais informações, consulte Acesso do indexador ao conteúdo protegido pela segurança da rede do Azure. |
Indexadores | Conectar-se ao Armazenamento do Microsoft Azure para persistir repositório de conhecimento, enriquecimentos em cache, sessões de depuração. |
Habilidades personalizadas | Conectar-se a funções do Azure, aplicativos Web do Azure ou outros aplicativos que executam código externo hospedado fora do serviço. A solicitação de processamento externo é enviada durante a execução do conjunto de habilidades. |
Indexadores e vetorização integrada | Conectam-se ao OpenAI do Azure e a um modelo de incorporação implantado, ou passam por uma habilidade personalizada para se conectar a um modelo de incorporação fornecido por você. O serviço de pesquisa envia texto para modelos de incorporação para vetorização durante a indexação. |
Vetorizadores | Conecte-se ao OpenAI do Azure ou a outros modelos de incorporação no momento da consulta para converter as cadeias de texto do usuário em vetores para pesquisa vetorial. |
Serviço Search | Conecte-se ao Azure Key Vault para obter chaves de criptografia gerenciadas pelo cliente, usadas para criptografar e descriptografar dados confidenciais. |
As conexões de saída podem ser feitas usando a cadeia de conexão de acesso completa de um recurso que inclui uma chave ou um logon de banco de dados, ou uma identidade gerenciada se você estiver usando o Microsoft Entra ID e o acesso baseado em função.
Para acessar recursos do Azure por trás de um firewall, crie regras de entrada em outros recursos do Azure que admitam solicitações de serviço de pesquisa.
Para acessar recursos do Azure protegidos pelo Link Privado do Azure, crie um link privado compartilhado que um indexador usa para fazer sua conexão.
Exceção para serviços de pesquisa e armazenamento na mesma região
Se o Armazenamento do Microsoft Azure e a Pesquisa de IA do Azure estiverem na mesma região, o tráfego de rede será roteado por meio de um endereço IP privado e ocorrerá na rede de backbone da Microsoft. Como endereços IP privados são usados, não é possível configurar firewalls de IP nem um ponto de extremidade privado para segurança de rede.
Configure conexões da mesma região usando uma das seguintes abordagens:
Segurança de rede
A segurança de rede protege os recursos contra acesso ou ataque não autorizado aplicando controles ao tráfego de rede. A Pesquisa de IA do Azure dá suporte para recursos de rede que podem ser sua linha de frente de defesa contra acesso não autorizado.
Conexão de entrada por meio de firewalls IP
Um serviço de pesquisa é provisionado com um ponto de extremidade público que permite o acesso por meio de um endereço IP público. Para restringir qual tráfego entra por meio do ponto de extremidade público, crie uma regra de firewall de entrada que admita solicitações de um endereço IP específico ou um intervalo de endereços IP. Todas as conexões de cliente devem ser feitas por meio de um endereço IP com permissão, ou a conexão é negada.
Você pode usar o portal do Azure para configurar o acesso ao firewall.
Como alternativa, pode-se usar as APIs REST de gerenciamento. A partir da versão de API 2020-03-13 com o parâmetro IpRule, você pode restringir o acesso ao seu serviço identificando endereços IP individualmente ou em um intervalo, para os quais deseja conceder acesso ao serviço de pesquisa.
Conexão de entrada para um ponto de extremidade privado (isolamento de rede, sem tráfego de internet)
Para ter uma segurança mais rigorosa, estabeleça um ponto de extremidade privado para o Azure AI Search, que permite que um cliente em uma rede virtual, acesse os dados com segurança em um índice de pesquisa por meio de um Link Privado.
O ponto de extremidade privado usa um endereço IP do espaço de endereço da rede virtual para conexões com seu serviço de pesquisa. O tráfego de rede entre o cliente e o serviço de pesquisa atravessa a rede virtual e o link privado na rede de backbone da Microsoft, eliminando a exposição na Internet pública. Uma rede virtual permite a comunicação segura entre recursos, com sua rede local e com a Internet.
Embora essa solução seja a mais segura, o uso de mais serviços representa um custo adicional, ou seja, verifique se entendeu claramente os benefícios antes de optar por ela. Para mais informações sobre custos, confira a página de preços. Para obter mais informações sobre como esses componentes funcionam juntos, assista a este vídeo. A cobertura da opção pelo ponto de extremidade privado começa no minuto 5:48 do vídeo. Para obter instruções sobre como configurar o ponto de extremidade, confira Criar um Ponto de extremidade Privado para o Azure AI Search.
Autenticação
Depois que uma solicitação é admitida pelo serviço de pesquisa, ela ainda precisa passar pela autenticação e pela autorização que determina se a solicitação é permitida. O AI Search dá suporte a duas abordagens:
A autenticação do Microsoft Entra estabelece o chamador (e não a solicitação) como a identidade autenticada. Uma atribuição de função do Azure determina a autorização.
A autenticação baseada em chave é realizada na solicitação (não no usuário ou no aplicativo de chamada) por meio de uma chave de API, em que a chave é uma cadeia de caracteres composta por números e letras gerados aleatoriamente que provam que a solicitação é de uma fonte confiável. As chaves são necessárias em cada solicitação. O envio de uma chave válida é considerado uma prova de que a solicitação se origina de uma entidade confiável.
Você pode usar ambos os métodos de autenticação ou desabilitar uma abordagem que não deseja que esteja disponível em seu serviço de pesquisa.
Autorização
O Azure AI Search fornece modelos de autorização para gerenciamento de serviços e de conteúdo.
Autorizar o gerenciamento de serviços
O gerenciamento de recursos é autorizado por meio do controle de acesso baseado em função em seu locatário do Microsoft Entra.
No Azure AI Search, o Resource Manager é usado para criar ou excluir o serviço, gerenciar chaves de API, dimensionar o serviço e configurar a segurança. Dessa forma, as atribuições de função do Azure determinarão quem pode executar essas tarefas, independentemente de estarem usando o portal, o PowerShell ou as APIs REST de gerenciamento.
Três funções básicas (Proprietário, Colaborador, Leitor) se aplicam à administração do serviço de pesquisa. É possível fazer atribuições de função usando qualquer metodologia compatível (portal, PowerShell etc.) e são respeitadas em todo o serviço.
Observação
Usando mecanismos do Azure, você pode bloquear uma assinatura ou um recurso para impedir a exclusão acidental ou não autorizada do seu serviço de pesquisa por usuários com direitos de administrador. Para obter mais informações, confira Bloquear recursos para impedir exclusão inesperada.
Autorizar o acesso ao conteúdo
O gerenciamento de conteúdo refere-se aos objetos criados e hospedados em um serviço de pesquisa.
Para autorização baseada em função, use as atribuições de função do Azure para estabelecer o acesso de leitura e gravação às operações.
Em caso de autorização baseada em chave, uma chave de API e um ponto de extremidade qualificado determinam o acesso. Um ponto de extremidade pode ser o próprio serviço, a coleção de índices, um índice específico, uma coleção de documentos ou um documento específico. Quando encadeados, o ponto de extremidade, a operação (por exemplo, uma solicitação de criação) e o tipo de chave (administrador ou consulta) autorizam o acesso ao conteúdo e às operações.
Restringindo o acesso a índices
Com o uso de funções do Azure, você poderá definir permissões em índices individuais, desde que isso seja feito programaticamente.
Com o uso de chaves, qualquer pessoa com uma chave de administrador para seu serviço pode ler, modificar ou excluir um índice no mesmo serviço. Para proteção contra exclusão de índices acidental ou mal-intencionada, o controle do código-fonte interno para ativos de código é a solução para reverter uma modificação ou exclusão de índice indesejada. O Azure AI Search tem failover dentro do cluster para garantir a disponibilidade, mas ele não armazena nem executa seu código proprietário usado para criar ou carregar índices.
Em soluções multilocatário que exigem limites de segurança no nível do índice, é comum lidar com o isolamento de índice na camada intermediária no código do aplicativo. Para saber mais sobre o caso de uso de vários locatários, confira Criar padrões para aplicativos SaaS multilocatários e para o Azure AI Search.
Restringindo o acesso a documentos
Não há suporte nativo para permissões de usuário no nível do documento, também conhecido como segurança em nível de linha, na Pesquisa de IA do Azure. Se você importar dados de um sistema externo que fornece segurança em nível de linha, por exemplo, o Azure Cosmos DB, essas permissões não serão transferidas com os dados conforme vão sendo indexados pelo Azure AI Search.
Se você precisar de acesso autorizado ao conteúdo nos resultados da pesquisa, existe uma técnica para aplicar filtros que incluem ou excluem documentos com base na identidade do usuário. Essa solução alternativa adiciona um campo de cadeia de caracteres à fonte de dados que representa um grupo ou uma identidade de usuário, que você pode tornar filtrável no índice. Para obter mais informações sobre esse padrão, consulte o Corte de segurança com base em filtros de identidade.
Residência de dadosResidência de dados
Ao configurar um serviço de pesquisa, você escolhe uma região que determina onde os dados do cliente são armazenados e processados. Cada região existe dentro de uma área geográfica (Geo) que geralmente inclui várias regiões (por exemplo, Suíça é uma área geográfica que contém o Norte da Suíça e o Oeste da Suíça). A Pesquisa de IA do Azure pode replicar seus dados para outra região na mesma área geográfica para durabilidade e alta disponibilidade. O serviço não armazenará nem processará dados do cliente fora da área geográfica especificada, a menos que você configure um recurso que tenha uma dependência em outro recurso do Azure e esse recurso seja provisionado em uma região diferente.
Atualmente, o único recurso externo no qual um serviço de pesquisa grava é o Armazenamento do Microsoft Azure. A conta de armazenamento é uma que você fornece e pode estar em qualquer região. Um serviço de pesquisa gravará no Armazenamento do Azure se você usar qualquer um dos seguintes recursos:
Para obter mais informações sobre residência de dados, confira residência de dados no Azure.
Exceções aos compromissos de residência de dados
Os nomes de objetos aparecem nos logs de telemetria usados pela Microsoft para fornecer suporte para o serviço. Os nomes de objetos são armazenados e processados fora da sua região ou localização selecionada. Os nomes de objetos incluem nomes de índices e campos de índice, aliases, indexadores, fontes de dados, conjuntos de habilidades, mapas de sinônimos, recursos, contêineres e repositório de cofre de chaves. Os clientes não devem colocar dados pessoais em campos de nomes nem criar aplicativos projetados para armazenar dados confidenciais nesses campos.
Os logs de telemetria são retidos por um ano e meio. Durante esse período, a Microsoft poderá acessar e referenciar nomes de objetos nas seguintes condições:
Diagnosticar um problema, aprimorar um recurso ou corrigir um bug. Nesse cenário, o acesso a dados é somente interno, sem acesso de terceiros.
Durante o suporte, essas informações podem ser usadas para fornecer uma solução rápida para os problemas e escalar a equipe do produto, se necessário
Proteção de dados
Na camada de armazenamento, a criptografia de dados é interna para todo o conteúdo gerenciado pelo serviço salvo em disco, incluindo índices, mapas de sinônimos e as definições de indexadores, fontes de dados e conjunto de habilidades. A criptografia gerenciada pelo serviço se aplica ao armazenamento de dados de longo prazo e ao armazenamento de dados temporário.
Opcionalmente, é possível adicionar as CMKs (chaves gerenciadas pelo cliente) para criptografia complementar de conteúdo indexado para criptografia dupla de dados inativos. Para serviços criados após 1º de agosto de 2020, a criptografia de CMK se estende aos dados de curto prazo em discos temporários.
Dados em trânsito
Para conexões de serviço de pesquisa pela Internet pública, a Pesquisa de IA do Azure escuta na porta HTTPS 443.
A Pesquisa de IA do Azure dá suporte ao protocolo TLS 1.2 e 1.3 para criptografia de canal cliente a serviço:
- O TLS 1.3 é o padrão em sistemas operacionais cliente e versões mais recentes do .NET.
- O TLS 1.2 é o padrão em sistemas mais antigos, mas você pode definir explicitamente o TLS 1.3 em uma solicitação de cliente.
Não há suporte para versões anteriores do TLS (1.0 ou 1.1).
Para obter mais informações, confira o suporte ao TLS no .NET Framework.
Dados em repouso
Para dados manipulados internamente pelo serviço de pesquisa, a tabela a seguir descreve os modelos de criptografia de dados. Alguns recursos, como armazenamento de conhecimento, enriquecimento incremental e indexação baseada em indexador, leem ou gravam em estruturas de dados em outros serviços do Azure. Os serviços que têm uma dependência no Armazenamento do Microsoft Azure podem usar os recursos de criptografia dessa tecnologia.
Modelar | Chaves | Requisitos | Restrições | Aplica-se a |
---|---|---|---|---|
Criptografia no servidor | Chaves gerenciadas pela Microsoft | Nenhum (interno) | Nenhum, disponível em todas as camadas, em todas as regiões, para conteúdos criados após 24 de janeiro de 2018. | Conteúdo (índices e mapas de sinônimos) e definições (indexadores, fontes de dados, conjunto de habilidades), em discos de dados e discos temporários |
Criptografia no servidor | Chaves gerenciadas pelo cliente | Cofre de Chave do Azure | Disponível em todas as camadas de serviços faturáveis, em regiões específicas, para conteúdos criados após 1º de agosto de 2020. | Conteúdo (índices e mapas de sinônimos) em discos de dados |
criptografia completa do lado do servidor | Chaves gerenciadas pelo cliente | Cofre de Chave do Azure | Disponível em camadas de serviços faturáveis, em todas as regiões, para serviços de pesquisa criados após 13 de maio de 2021. | Conteúdo (índices e mapas de sinônimos) em discos de dados e discos temporários |
Chaves gerenciadas pelo serviço
A criptografia gerenciada pelo serviço é uma operação interna da Microsoft que usa criptografia AES de 256 bits. Isso ocorre automaticamente em todas as indexações, incluindo em atualizações incrementais para índices que não estão totalmente criptografados (criados antes de janeiro de 2018).
A criptografia gerenciada pelo serviço aplica-se a todo o conteúdo no armazenamento de longo e curto prazo.
Chaves gerenciadas pelo cliente (CMK)
As chaves gerenciadas pelo cliente exigem outro serviço faturável, o Azure Key Vault, que pode estar em uma região diferente, mas sob a mesma assinatura, como o Azure AI Search.
O suporte à CMK foi implantado em duas fases. Se você criou o serviço de pesquisa durante a primeira fase, a criptografia da CMK foi restrita ao armazenamento de longo prazo e a regiões específicas. Os serviços criados na segunda fase, após maio de 2021, podem usar a criptografia da CMK em qualquer região. Como parte do lançamento da segunda distribuição, o conteúdo é criptografado pela CMK no armazenamento de longo e curto prazo. Para obter mais informações sobre o suporte à CMK, consulte criptografia dupla completa.
A habilitação da criptografia CMK aumenta o tamanho do índice e reduz o desempenho da consulta. Com base nas observações até o momento, espera-se um aumento de 30 a 60% nos tempos de consulta, embora o desempenho real varie dependendo da definição de índice e dos tipos de consultas. Devido ao impacto negativo no desempenho, recomendamos que você habilite esse recurso somente em índices que realmente o exijam. Para saber mais, confira Configurar chaves de criptografia gerenciadas pelo cliente no Azure AI Search.
Administração de segurança
Gerenciar chaves de API
A dependência da autenticação baseada em chave de API significa que você deve ter um plano para regenerar a chave de administrador em intervalos regulares, de acordo com as práticas recomendadas de segurança do Azure. Pode haver no máximo duas chaves de administrador por serviço de pesquisa. Para saber mais sobre segurança e gerenciamento de chaves de API, consulte Criar e gerenciar chaves de API.
Logs de atividade e recursos
O Azure AI Search não registra as identidades de usuário, ou seja, você não consegue ver os logs para obter informações sobre um usuário específico. No entanto, o serviço registra o log de operações de criação-leitura-atualização-exclusão que você pode correlacionar com outros logs para entender a autoridade de ações específicas.
Usando alertas e a infraestrutura de log no Azure, você pode escolher as consultas com picos de volume ou outras ações que se desviam das cargas de trabalho esperadas. Para obter mais informações sobre como configurar logs, consulte Coletar e analisar dados de log e Monitorar solicitações de consulta.
Certificações e conformidade
O Azure AI Search participa de auditorias regulares e foi certificado em relação a vários padrões globais, regionais e específicos de setores, tanto para a nuvem pública quanto para o Azure Governamental. Para obter a lista completa, baixe o whitepaper das Oferta de Conformidade do Microsoft Azure na página de Relatórios oficiais de auditoria.
Para fins de conformidade, use o Azure Policy para implementar as melhores práticas de alta segurança do parâmetro de comparação de segurança da nuvem da Microsoft. O parâmetro de comparação de segurança da nuvem da Microsoft é uma coleção de recomendações de segurança, codificadas em controles de segurança que são mapeadas para as principais ações que você deve executar para reduzir as ameaças a serviços e dados. Atualmente, há 12 controles de segurança, incluindo Segurança de rede, Log e monitoramento e Proteção de dados.
O Azure Policy é uma funcionalidade interna do Azure que ajuda você a gerenciar a conformidade de vários padrões, incluindo o parâmetro de comparação de segurança da nuvem da Microsoft. Para parâmetros de comparação conhecidos, o Azure Policy oferece definições internas que fornecem critérios e uma resposta de qual ação deve ser tomada para resolver a não conformidade.
No Azure AI Search, atualmente, há uma definição interna. É para log de recurso. Você pode atribuir uma política que identifica os serviços de pesquisa sem log de recursos e ativá-lo. Para sabe mais, confira Controles de Conformidade Regulatória do Azure Policy para o Azure AI Search.
Assista a este vídeo
Assista a este breve vídeo para ter uma visão geral da arquitetura de segurança e de cada categoria de recurso.