Tutorial: Banco de dados interno de usuários e autenticação básica HTTP - Amazon OpenSearch Service

Tutorial: Banco de dados interno de usuários e autenticação básica HTTP

Este tutorial aborda outro caso de uso popular de controle de acesso refinado: um usuário primário no banco de dados interno de usuários e autenticação básica HTTP para o OpenSearch Dashboards.

Conceitos básicos do controle de acesso refinado

  1. Crie um domínio com as seguintes configurações:

    • OpenSearch 1.0 ou posterior ou Elasticsearch 7.9 ou posterior

    • Acesso público

    • Controle de acesso refinado com um usuário primário no banco de dados interno de usuários (TheMasterUser para o restante deste tutorial)

    • Autenticação do Amazon Cognito para Dashboards desabilitada

    • A seguinte política de acesso:

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "*" ] }, "Action": [ "es:ESHttp*" ], "Resource": "arn:aws:es:region:account:domain/domain-name/*" } ] }
    • HTTPS necessário para todo o tráfego para o domínio

    • Criptografia de nó a nó

    • Criptografia de dados em repouso

  2. Navegue para o OpenSearch Dashboards.

  3. Faça login usando TheMasterUser.

  4. Escolha Try our sample data (Experimentar nossos dados de exemplo).

  5. Adicione os dados de voo de exemplo.

  6. Escolha Security (Segurança), Internal users (Usuários internos),Create internal user (Criar usuário interno).

  7. Nomeie o usuário new-user e especifique uma senha. Em seguida, selecione Criar.

  8. Selecione Roles (Funções), Create role (Criar função).

  9. Nomeie a função new-role.

  10. Para as permissões do índice, especifique dashboards_sample_data_fli* para o padrão de índice.

  11. Para o grupo de ações, escolha read (leitura).

  12. Em Document level security (Segurança em nível de documento), especifique a seguinte consulta:

    { "match": { "FlightDelay": true } }
  13. Para segurança em nível de campo, escolha Exclude (Excluir) e especifique FlightNum.

  14. Em Anonymization (Anonimização), especifique Dest.

  15. Escolha Create (Criar OpsItem).

  16. Escolha Mapped users (Usuários mapeados) e Manage mapping (Gerenciar mapeamento). Em seguida, adicione new-user a Users (Usuários) e escolha Map (Mapa).

  17. Retorne à lista de funções e escolha opensearch_dashboards_user. Escolha Mapped users (Usuários mapeados) e Manage mapping (Gerenciar mapeamento). Em seguida, adicione new-user a Users (Usuários) e escolha Map (Mapa).

  18. Em uma nova janela privada do navegador, navegue até o Dashboards, faça login usando new-user e escolha Explore on my own (Explorar por conta própria).

  19. Escolha Dev Tools (Ferramentas de desenvolvimento) e execute a pesquisa padrão:

    GET _search { "query": { "match_all": {} } }

    Observe o erro de permissões. new-user não tem permissões para executar pesquisas em todo o cluster.

  20. Execute outra pesquisa:

    GET dashboards_sample_data_flights/_search { "query": { "match_all": {} } }

    Observe que todos os documentos correspondentes têm um campo FlightDelay de true, um campo anônimo Dest e nenhum campo FlightNum.

  21. Na janela original do navegador, conectado como TheMasterUser, escolha Dev Tools (Ferramentas de desenvolvimento) e execute as mesmas pesquisas. Observe a diferença nas permissões, número de ocorrências, documentos correspondentes e campos incluídos.