Proxy reverso Nginx para elasticsearch - inserindo filtros

1

Eu tenho uma instância de elasticsearch, com um proxy reverso Nginx na frente dela, implementando um mecanismo de controle de acesso no nível de URL - aproximadamente como descrito em este artigo

Isso está me dando granularidade por índice, o que é útil.

O que estou tentando descobrir agora é: posso impor um critério geral de filtro que exclui resultados de pesquisas e recuperações diretas de documentos?

Estou pensando em um modelo de "grupo", onde os documentos em meus índices são marcados por grupo e os usuários só podem ver resultados e documentos para o grupo.

Agora, sei que posso fazer um índice por grupo e aplicar controles no nível de URL. Essa pode ser minha solução se eu não puder fazer isso.

Eu dei uma olhada no aliasing - isso parece fazer 90% do que eu quero, pois eu posso restringir uma pesquisa a um alias. Mas o que não posso fazer é inibir uma solicitação direta de 'GET' com um ID de documento (não autorizado)

Existe uma maneira de fazer isso, ou eu estou apenas em uma estrada para lugar nenhum?

Nota - parte das minhas razões para isso é que estou tentando usar uma configuração kibana bastante padrão e tenho grupos de usuários sobrepostos.

    
por Sobrique 13.01.2016 / 12:59

2 respostas

1

Embora não seja possível responder diretamente à sua pergunta (+1), gostaria de salientar que as pessoas que trabalham no elástico finalmente ouviram todos os pedidos feitos por pessoas que exigiam controle de acesso para Elasticsearch e introduziram Shield . Citando o site:

With the rapid adoption of Elasticsearch, it is easier than ever to store, search, and analyze your data. Shield allows you to easily protect this data with a username and password, while simplifying your architecture. Advanced security features like encryption, role-based access control, IP filtering, and auditing are also available when you need them.

Your data is increasingly your most valuable asset. Password protect it with Shield.

Talvez valha a pena, pelo menos, verificar se isso satisfaz as suas necessidades.

    
por 13.01.2016 / 13:22
1

Enquanto começava um novo projeto hoje no trabalho com o Elasticsearch, fiz algumas pesquisas e descobri Search Guard - segurança do Elasticsearch de graça . Obviamente, não posso julgar (ainda) como isso funciona, mas queria deixar um ponteiro aqui, caso você ou outras pessoas ainda estejam procurando por (a) solução (ões), e no caso do Shield não poder ser usado, por qualquer motivo .

Citando o site, esses são os recursos:

  • Controle de acesso à camada REST flexível (baseado em usuário / função; em aliases, índices e tipos)
  • Controle de acesso à camada de transporte flexível (baseado em usuário / função; em aliases, índices e tipos)
  • Segurança em nível de documento (DLS): recupere apenas documentos que correspondam aos critérios
  • Segurança no nível de campo (FLS): filtrar campos / origens de uma resposta de pesquisa
  • Autenticação HTTP (básico, cabeçalho de proxy, SPNEGO / Kerberos, SSL mútuo / CLIENTE-CERT)
  • Suporte à sessão HTTP por meio de cookies
  • Back-ends de autenticação flexíveis (LDAP (s) / Active Directory, com base em arquivo, cabeçalho de proxy, Windows nativo por meio de WAFFLE)
  • Infra-estrutura de autorização flexível (LDAP (s) / Active Directory, baseado em arquivo, Windows nativo por meio do WAFFLE)
  • Criptografia de nó a nó por meio de SSL / TLS (camada de transporte)
  • Proteja a camada REST por meio de HTTPS (SSL / TLS)
  • Suporte X-Forwarded-For (XFF)
  • Registro de auditoria
  • Login anônimo / acesso não autenticado
  • Funciona com o Kibana 4 e logstash

Mas também há limitações:

  • Ao usar DLS ou FLS, você ainda pode pesquisar em todos os documentos / campos, mas nem todos os documentos / campos são retornados
  • Controle de acesso da camada de transporte apenas com login simples de nome de usuário / senha
  • Não há filtros automáticos de vários índices (veja abaixo)
  • Atualmente, o monitoramento do cluster não precisa de autenticação e é permitido sempre (isso pode mudar no futuro)

Talvez isso seja útil e valioso para você ou para outra pessoa, que se deparar com este post.

    
por 19.01.2016 / 22:16