Tutorial: Configuração de um domínio com um usuário primário do IAM e autenticação do Amazon Cognito - OpenSearch Serviço Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Tutorial: Configuração de um domínio com um usuário primário do IAM e autenticação do Amazon Cognito

Este tutorial aborda um caso de uso popular do Amazon OpenSearch Service para controle de acesso refinado: um usuário mestre do IAM com autenticação do Amazon Cognito para painéis. OpenSearch

No tutorial, configuraremos um perfil do IAM principal e um perfil do IAM limitado, que depois associaremos aos usuários no Amazon Cognito. O usuário principal pode então entrar nos OpenSearch painéis, mapear o usuário limitado para uma função e usar um controle de acesso refinado para limitar as permissões do usuário.

IAM roles and Amazon Cognito integration with OpenSearch Dashboards access control.

Embora essas etapas usem o grupo de usuários do Amazon Cognito para a autenticação, esse mesmo processo básico funciona para qualquer provedor de autenticação do Cognito que permita atribuir diferentes funções do IAM a usuários diferentes.

Você concluirá as seguintes etapas neste tutorial:

Etapa 1: Criar perfis do IAM principal e limitado

Navegue até o console AWS Identity and Access Management (IAM) e crie duas funções separadas:

  • MasterUserRole: o usuário principal, que terá permissões completas para o cluster e gerencia funções e mapeamentos de função.

  • LimitedUserRole: um perfil mais restrito, à qual você concederá acesso limitado como usuário principal.

Para obter instruções sobre como criar os perfis, consulte Criação de um perfil usando políticas de confiança personalizadas.

Ambos os perfis devem ter a política de confiança a seguir, que permite que seu grupo de identidades do Cognito assuma os perfis:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "{identity-pool-id}" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "authenticated" } } }] }
nota

Substitua identity-pool-id pelo identificador exclusivo do seu grupo de identidades do Amazon Cognito. Por exemplo, us-east-1:0c6cdba7-3c3c-443b-a958-fb9feb207aa6.

Etapa 2: Criar um domínio com a autenticação Cognito

Navegue até o console do Amazon OpenSearch Service em https://console.aws.amazon.com/aos/home/ e crie um domínio com as seguintes configurações:

  • OpenSearch 1.0 ou posterior, ou Elasticsearch 7.8 ou posterior

  • Acesso público

  • Controle de acesso minucioso habilitado com MasterUserRole como usuário principal (criado na etapa anterior)

  • Autenticação do Amazon Cognito habilitada para painéis OpenSearch . Para obter instruções para habilitar a autenticação do Cognito e selecionar um usuário e um grupo de identidades, consulte Configuração de um domínio para uso da autenticação do Amazon Cognito.

  • A seguinte política de acesso ao domínio:

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

  • ode-to-node Criptografia N

  • Criptografia de dados em repouso

Etapa 3: Configurar usuários do Cognito

Enquanto seu domínio estiver sendo criado, configure os usuários principal e limitado no Amazon Cognito seguindo Criar um grupo de usuários no Guia do desenvolvedor do Amazon Cognito. Por fim, configure seu banco de identidades seguindo as etapas em Criar um grupo de identidades no Amazon Cognito. Os grupos de usuários e identidades devem estar na mesma Região da AWS.

Etapa 4: mapear funções em OpenSearch painéis

Agora que seus usuários estão configurados, você pode entrar no OpenSearch Dashboards como usuário principal e mapear usuários para funções.

  1. Volte para o console OpenSearch de serviços e navegue até a URL dos OpenSearch painéis do domínio que você criou. O URL segue este formato: domain-endpoint/_dashboards/.

  2. Faça login com as credenciais master-user.

  3. Escolha Adicionar dados de amostras e adicione os dados de voo de amostra.

  4. No painel de navegação à esquerda, escolha Segurança, Funções, Criar função.

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

  6. Em Índice, especifique opensearch_dashboards_sample_data_fli* (kibana_sample_data_fli* nos domínios do Elasticsearch).

  7. Em Permissões de índice, escolha ler.

  8. Em Segurança em nível de documento, especifique a seguinte consulta:

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

  10. Em Anonimização, especifique Dest.

  11. Escolha Criar.

  12. Escolha Usuários mapeados e Gerenciar mapeamento. Adicione o nome do recurso da Amazon (ARN) para LimitedUserRole como uma identidade externa e escolha Mapa.

  13. Retorne à lista de funções e escolha opensearch_dashboards_user. Escolha Usuários mapeados e Gerenciar mapeamento. Adicione o ARN para LimitedUserRole como uma função de backend e escolha Mapa.

Etapa 5: Testar as permissões

Quando suas funções estiverem mapeadas corretamente, é possível fazer login como o usuário limitado e testá-las.

  1. Em uma nova janela privada do navegador, navegue até o URL dos OpenSearch painéis do domínio, faça login usando limited-user as credenciais e escolha Explorar sozinho.

  2. Escolha Ferramentas de desenvolvimento e execute a pesquisa padrão:

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

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

  3. Execute outra pesquisa:

    GET opensearch_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.

  4. Na janela original do navegador, conectado como master-user, escolha 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.