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 minucioso: um usuário primário do IAM com autenticação do Amazon Cognito para o OpenSearch Dashboards.
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 primário pode então fazer login no OpenSearch Dashboards, mapear o usuário limitado para uma função e usar um controle de acesso minucioso para limitar as permissões do usuário.
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 do AWS Identity and Access Management (IAM) e crie dois perfis separados:
-
MasterUserRole: o usuário primário, 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 primário.
Para receber instruções passo a passo para criar perfis, consulte Criar um perfil usando políticas de confiança personalizadas no Guia do usuário do IAM.
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:
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/
-
OpenSearch 1.0 ou posterior ou Elasticsearch 7.8 ou posterior
-
Acesso público
-
Controle de acesso minucioso habilitado com
MasterUserRolecomo usuário primário (criado na etapa anterior) -
Autenticação do Amazon Cognito habilitada para o OpenSearch Dashboards. 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:
-
HTTPS necessário para todo o tráfego para o domínio
-
Criptografia de nó a 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 no OpenSearch Dashboards
Agora que seus usuários estão configurados, é possível pode fazer login no OpenSearch Dashboards como usuário primário e mapear usuários para funções.
-
Volte para o console do OpenSearch Service e navegue até o URL do OpenSearch Dashboards para o domínio que você criou. O URL segue este formato:
.domain-endpoint/_dashboards/ -
Faça login com as credenciais
master-user. -
Escolha Adicionar dados de amostras e adicione os dados de voo de amostra.
-
No painel de navegação à esquerda, escolha Segurança, Funções, Criar função.
-
Nomeie a função
new-role. -
Em Índice, especifique
opensearch_dashboards_sample_data_fli*(kibana_sample_data_fli*nos domínios do Elasticsearch). -
Em Permissões de índice, escolha ler.
-
Em Segurança em nível de documento, especifique a seguinte consulta:
{ "match": { "FlightDelay": true } } -
Para segurança em nível de campo, escolha Excluir e especifique
FlightNum. -
Em Anonimização, especifique
Dest. -
Escolha Criar.
-
Escolha Usuários mapeados e Gerenciar mapeamento. Adicione o nome do recurso da Amazon (ARN) para
LimitedUserRolecomo uma identidade externa e escolha Mapa. -
Retorne à lista de funções e escolha opensearch_dashboards_user. Escolha Usuários mapeados e Gerenciar mapeamento. Adicione o ARN para
LimitedUserRolecomo 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.
-
Em uma nova janela privada do navegador, navegue até o URL do OpenSearch Dashboards do domínio, faça login usando as credenciais de
limited-usere escolha Explorar por conta própria. -
Escolha Ferramentas de desenvolvimento e execute a pesquisa padrão:
GET _search { "query": { "match_all": {} } }Observe o erro de permissões.
limited-usernão tem permissões para executar pesquisas em todo o cluster. -
Execute outra pesquisa:
GET opensearch_dashboards_sample_data_flights/_search { "query": { "match_all": {} } }Observe que todos os documentos correspondentes têm um campo
FlightDelaydetrue, um campo anônimoDeste nenhum campoFlightNum. -
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.