

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
<a name="fgac-iam"></a>

Este tutorial aborda um caso de uso popular do Amazon OpenSearch Service para [controle de acesso refinado](fgac.md): 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 as funções fluem Amazon Cognito para os OpenSearch painéis para controle de acesso.](http://docs.aws.amazon.com/pt_br/opensearch-service/latest/developerguide/images/fgac-cognito.png)


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:

1. [Criar perfis do IAM principais e limitado](#fgac-iam-roles)

1. [Criar um domínio com a autenticação Cognito](#fgac-iam-domain)

1. [Configurar um grupo de usuários e um banco de identidades do Cognito](#fgac-iam-cognito)

1. [Mapeie funções em OpenSearch painéis](#fgac-iam-dashboards)

1. [Testas as permissões](#fgac-iam-test)

## Etapa 1: Criar perfis do IAM principal e limitado
<a name="fgac-iam-roles"></a>

Navegue até o console AWS Identity and Access Management (IAM) e crie duas funções separadas:
+ `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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html) 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:

------
#### [ JSON ]

****  

```
{
  "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
<a name="fgac-iam-domain"></a>

Navegue até o console do Amazon OpenSearch Service em [https://console.aws.amazon.com/aos/casa/](https://console.aws.amazon.com/aos/home/) e [crie um domínio](createupdatedomains.md) 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 primário (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](cognito-auth.md#cognito-auth-config).
+ A seguinte política de acesso ao domínio:

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Principal": {
          "AWS": "arn:aws:iam::{{111122223333}}:root"
        },
        "Action": [
          "es:ESHttp*"
        ],
        "Resource": "arn:aws:es:{{us-east-1}}:{{111122223333}}:domain/{{{domain-name}}}/*"
      }
    ]
  }
  ```

------
+ HTTPS necessário para todo o tráfego para o domínio
+ Node-to-node criptografia
+ Criptografia de dados em repouso

## Etapa 3: Configurar usuários do Cognito
<a name="fgac-iam-cognito"></a>

Enquanto seu domínio estiver sendo criado, configure os usuários principal e limitado no Amazon Cognito seguindo [Criar um grupo de usuários](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html) 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](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-with-identity-pools.html#create-identity-pool). Os grupos de usuários e identidades devem estar na mesma Região da AWS.

## Etapa 4: mapear funções em OpenSearch painéis
<a name="fgac-iam-dashboards"></a>

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/`.

1. Faça login com as credenciais `master-user`.

1. Escolha **Adicionar dados de amostras** e adicione os dados de voo de amostra.

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

1. Nomeie a função `new-role`.

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

1. Em **Permissões de índice**, escolha **ler**.

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

   ```
   {
     "match": {
       "FlightDelay": true
     }
   }
   ```

1. Para segurança em nível de campo, escolha **Excluir** e especifique `FlightNum`.

1. Em **Anonimização**, especifique `Dest`.

1. Escolha **Criar**.

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

1. 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
<a name="fgac-iam-test"></a>

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**.

1. 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.

1. 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`.

1. 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.