

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

# Habilitando a federação SAML com AWS Identity and Access Management
<a name="application-enable-SAML-identity-federation"></a>

OpenSearch A interface do usuário oferece suporte à Security Assertion Markup Language 2.0 (SAML), um padrão aberto usado por muitos provedores de identidade. Isso habilita a federação de identidades com o AWS Identity and Access Management (IAM). Com esse suporte, os usuários da sua conta ou organização podem acessar diretamente a OpenSearch interface do usuário assumindo as funções do IAM. Você pode criar uma experiência de login único iniciada pelo provedor de identidade (IdP) para seus usuários finais, na qual eles podem se autenticar no provedor de identidade externo e serem roteados diretamente para sua página definida na interface do usuário. OpenSearch Você também pode implementar um controle de acesso refinado configurando seus usuários finais ou grupos para assumirem diferentes funções do IAM com permissões diferentes para acessar a OpenSearch interface do usuário e as fontes de dados associadas.

Este tópico apresenta step-by-step instruções para configurar o uso do SAML com OpenSearch a interface do usuário. Nesses procedimentos, usamos as etapas para configurar a aplicação de gerenciamento de identidades e acesso Okta como exemplo. As etapas de configuração para outros provedores de identidades, como o Azure Active Directory e o Ping, são semelhantes. 

**Topics**
+ [

## Etapa 1: configurar a aplicação de provedor de identidades (Okta)
](#SAML-identity-federation-step-1)
+ [

## Etapa 2: AWS Configurar o Okta
](#SAML-identity-federation-step-2)
+ [

## Etapa 3: criar a política OpenSearch de acesso ao Amazon Service no IAM
](#SAML-identity-federation-step-3)
+ [

## Etapa 4: verificar a experiência de login único iniciada por provedor de identidades com o SAML
](#SAML-identity-federation-step-4)
+ [

## Etapa 5: configurar o controle de acesso refinado baseado em atributos SAML
](#SAML-identity-federation-step-5)

## Etapa 1: configurar a aplicação de provedor de identidades (Okta)
<a name="SAML-identity-federation-step-1"></a>

Para usar o SAML com a OpenSearch interface do usuário, a primeira etapa é configurar seu provedor de identidade. 

**Tarefa 1: criar usuários do Okta**

1. Entre na sua organização Okta em [https://login.okta.com/como](https://login.okta.com/) um usuário com privilégios administrativos.

1. No console do administrador, em **Diretório** no painel de navegação, escolha **Pessoas**. 

1. Escolha **Add person** (Adicionar pessoa). 

1. Em **Nome**, insira o nome do usuário. 

1. Em **Sobrenome**, insira o sobrenome do usuário. 

1. Em **Nome do usuário**, insira o nome de usuário do usuário no formato de e-mail. 

1. Escolha **Definirei a senha** e insira uma senha 

1. (Opcional) Desmarque a caixa **O usuário deve alterar a senha no primeiro login** se não quiser que o usuário altere a senha no primeiro login.

1. Escolha **Salvar**.

**Tarefa 2: criar e atribuir grupos**

1. Entre na sua organização Okta em [https://login.okta.com/como](https://login.okta.com/) um usuário com privilégios administrativos.

1. No console do administrador, em **Diretório** no painel de navegação, escolha **Grupos**. 

1. Escolha **Add Group (Adicionar grupo)**. 

1. Insira um nome de grupo e selecione **Salvar**. 

1. Escolha o grupo recém-criado e escolha **Atribuir pessoas**. 

1. Escolha o sinal de adição (**\$1**) e depois **Concluído**. 

1. (Opcional) Repita as etapas de 1 a 6 para adicionar mais grupos. 

**Tarefa 3: criar aplicações da Okta**

1. Entre na sua organização Okta em [https://login.okta.com/como](https://login.okta.com/) um usuário com privilégios administrativos.

1. No console do administrador, em **Applications** no painel de navegação, escolha **Applications**. 

1.  Selecione **Create App Integration** (Criar integração de aplicações). 

1. **Escolha SAML 2.0 como método de login e, em seguida, escolha Next**. 

1.  Insira um nome para a integração da aplicação (por exemplo, **OpenSearch\$1UI**) e escolha **Avançar**. 

1. Insira os seguintes valores na aplicação; você não precisa alterar outros valores:

   1.  1. Para **URL de login único**, insira **https://signin.aws.amazon.com/saml** AWS as regiões comerciais ou a URL específica da sua região. 

   1. 2. Em **Audience URI (SP Entity ID)**, insira **urn:amazon:webservices**. 

   1. 3. Em **Name ID format**, insira **EmailAddress**. 

1. Escolha **Próximo**. 

1. Escolha **I’m an Okta customer adding an internal app** e depois **This is an internal app that we have created**. 

1. Escolha **Terminar**. 

1. Escolha **Assignments** e depois escolha **Assign**. 

1. Escolha **Atribuir a grupos** e depois selecione **Assign** ao lado dos grupos que você deseja adicionar.

1. Selecione **Concluído**.

**Tarefa 4: definir a configuração avançada do Okta**

Depois de criar a aplicação SAML personalizada, conclua as etapas a seguir:

1. Entre na sua organização Okta em [https://login.okta.com/como](https://login.okta.com/) um usuário com privilégios administrativos.

   No console do administrador, na área **General**, escolha **Edit** em **SAML settings**. 

1. Escolha **Próximo**. 

1. Defina **o estado de retransmissão padrão** para o endpoint da OpenSearch interface do usuário, usando o formato:

   `https://region.console.aws.amazon.com/aos/home?region=region#opensearch/applications/application-id/redirectToDashboardURL`. 

   Este é um exemplo:

   `https://us-east-2.console.aws.amazon.com/aos/home?region=us-east-2#opensearch/applications/abc123def4567EXAMPLE/redirectToDashboardURL` 

1. Em **Group Attribute Statements (optional)**, adicione o seguinte atributo: 

   1. Forneça o perfil do IAM e o provedor de identidades no formato separado por vírgula usando o atributo **Role**. Você usará essa mesma função e provedor de identidade do IAM em uma etapa posterior ao definir a AWS configuração.

   1. Defina **user.login** para. **RoleSessionName** Isso é usado como um identificador para as credenciais temporárias que são emitidas quando o perfil é assumido.

   Para referência:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/opensearch-service/latest/developerguide/application-enable-SAML-identity-federation.html)

1. Depois de adicionar as propriedades do atributo, escolha **Avançar** e, em seguida, escolha **Finalizar**.

Os atributos devem ter formato semelhante aos mostrados na imagem a seguir. O valor do **Default Relay State** é a URL para definir a página inicial para usuários finais em sua conta ou organização após concluírem a validação de login único da Okta. Você pode configurá-lo para qualquer página na OpenSearch interface do usuário e, em seguida, fornecer esse URL aos usuários finais pretendidos.

![\[A área “SAML 2.0” informa a URL padrão do estado de retransmissão e a URL de metadados de uma aplicação.\]](http://docs.aws.amazon.com/pt_br/opensearch-service/latest/developerguide/images/ui-saml-2.0-area-okta.png)


## Etapa 2: AWS Configurar o Okta
<a name="SAML-identity-federation-step-2"></a>

Conclua as tarefas a seguir para definir sua AWS configuração para o Okta.

**Tarefa 1: coletar informações do Okta**

Para esta etapa, você precisará coletar suas informações do Okta para poder configurá-lo posteriormente na AWS. 

1. Entre na sua organização Okta em [https://login.okta.com/como](https://login.okta.com/) um usuário com privilégios administrativos.

1. Na guia **Sign On** canto inferior direito da página, escolha **View SAML setup instructions**. 

1. Anote o valor de **Identity Provider Single Sign-on URL**. Você pode usar essa URL ao se conectar a qualquer cliente SQL de terceiros, como o [SQL Workbench/J](https://www.sql-workbench.eu/). 

1. Use os metadados do provedor de identidades no bloco 4 e salve o arquivo de metadados no formato.xml (por exemplo, `metadata.xml`).

**Tarefa 2: criar o provedor do IAM**

Para criar o provedor do IAM, conclua as seguintes etapas:

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, em **Gerenciamento de acesso**, escolha **Provedores de identidades**. 

1. Escolha **Add provider** (Adicionar provedor). 

1. Para o **tipo de provedor**, selecione **SAML.** 

1. Em **Nome do provedor**, insira um nome. 

1. Em **Documento de metadados**, escolha **Escolher arquivo** e carregue o arquivo metadata file (.xml) que você baixou anteriormente. 

1. Escolha **Add provider** (Adicionar provedor).

**Tarefa 3: criar um perfil do IAM**

Para criar sua AWS Identity and Access Management função, conclua as seguintes etapas:

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, em **Gerenciamento de acesso**, escolha **Perfis**. 

1. Selecione **Criar perfil**. 

1. Em **Tipo de entidade confiável**, escolha **Federação SAML 2.0**. 

1. Em **Provedor baseado em SAML 2.0**, escolha o provedor de identidades que você criou anteriormente. 

1. Selecione **Permitir programação e Console de gerenciamento da AWS acesso**. 

1. Escolha **Próximo**. 

1. Na lista **Políticas de permissões**, marque as caixas de seleção das políticas que concedem permissões de OpenSearch serviço, por exemplo, política AWS gerenciada **AmazonOpenSearchServiceFullAccess**.

1. Escolha **Próximo**. 

1. Na seção **Revisar**, em **Nome do perfil**, insira um nome para o perfil, por exemplo, **oktarole**. 

1. (Opcional) Em **Descrição da imagem**, insira uma breve da finalidade do perfil. 

1. Selecione **Criar perfil**.

1. Navegue até o perfil que você acabou de criar, escolha a guia **Relações de Confiança** e escolha **Editar política de confiança**.

1. No painel **Editar instrução**, em **Adicionar ações para STS**, selecione a caixa para **TagSession**.

1. Escolha **Atualizar política**.

## Etapa 3: criar a política OpenSearch de acesso ao Amazon Service no IAM
<a name="SAML-identity-federation-step-3"></a>

Saiba como configurar suas funções do IAM para controle de OpenSearch acesso. Com as funções do IAM, você pode implementar um controle de acesso refinado para que seus grupos de usuários do Okta acessem os recursos. OpenSearch Este tópico demonstra a configuração baseada em perfil do IAM usando dois grupos de exemplo.

------
#### [ Sample group: Alice ]

Solicitação:

```
GET _plugins/_security/api/roles/alice-group
```

Resultado:

```
{
  "alice-group": {
    "reserved": false,
    "hidden": false,
    "cluster_permissions": [
      "unlimited"
    ],
    "index_permissions": [
      {
        "index_patterns": [
          "alice*"
        ],
        "dls": "",
        "fls": [],
        "masked_fields": [],
        "allowed_actions": [
          "indices_all"
        ]
      }
    ],
    "tenant_permissions": [
      {
        "tenant_patterns": [
          "global_tenant"
        ],
        "allowed_actions": [
          "kibana_all_write"
        ]
      }
    ],
    "static": false
  }
}
```

------
#### [ Sample group: Bob ]

Solicitação:

```
GET _plugins/_security/api/roles/bob-group
```

Resultado:

```
{
  "bob-group": {
    "reserved": false,
    "hidden": false,
    "cluster_permissions": [
      "unlimited"
    ],
    "index_permissions": [
      {
        "index_patterns": [
          "bob*"
        ],
        "dls": "",
        "fls": [],
        "masked_fields": [],
        "allowed_actions": [
          "indices_all"
        ]
      }
    ],
    "tenant_permissions": [
      {
        "tenant_patterns": [
          "global_tenant"
        ],
        "allowed_actions": [
          "kibana_all_write"
        ]
      }
    ],
    "static": false
  }
}
```

------

Você pode mapear as funções de domínio do Amazon OpenSearch Service para funções do IAM usando o mapeamento de funções de back-end, conforme demonstrado no exemplo a seguir:

```
{
  "bob-group": {
    "hosts": [],
    "users": [],
    "reserved": false,
    "hidden": false,
    "backend_roles": [
      "arn:aws:iam::111222333444:role/bob-group"
    ],
    "and_backend_roles": []
  },
  "alice-group": {
    "hosts": [],
    "users": [],
    "reserved": false,
    "hidden": false,
    "backend_roles": [
      "arn:aws:iam::111222333444:role/alice-group"
    ],
    "and_backend_roles": []
  }
}
```

## Etapa 4: verificar a experiência de login único iniciada por provedor de identidades com o SAML
<a name="SAML-identity-federation-step-4"></a>

Abra a URL do **Default Relay State** para abrir a página de autenticação da Okta. Insira as credenciais de um usuário final. Você é redirecionado automaticamente para a OpenSearch interface do usuário. 

Você pode verificar suas credenciais atuais escolhendo o ícone do usuário na parte inferior do painel de navegação, conforme ilustrado na seguinte imagem:

![\[Escolher o ícone do usuário na página “Settings and setup” do Okta exibe as credenciais do usuário atual.\]](http://docs.aws.amazon.com/pt_br/opensearch-service/latest/developerguide/images/ui-okta-user-icon.png)


Você também pode verificar as permissões de controle de acesso refinadas para o usuário acessando as Ferramentas do Desenvolvedor na parte inferior do painel de navegação e executando consultas no console. Veja os exemplos de consultas.

------
#### [ Example 1: Displays information about the current user ]

Solicitação:

```
GET _plugins/_security/api/account
```

Resultado:

```
{
  "user_name": "arn:aws:iam::XXXXXXXXXXXX:role/bob-group",
  "is_reserved": false,
  "is_hidden": false,
  "is_internal_user": false,
  "user_requested_tenant": null,
  "backend_roles": [
    "arn:aws:iam::XXXXXXXXXXXX:role/bob-group"
  ],
  "custom_attribute_names": [],
  "tenants": {
    "global_tenant": true,
    "arn:aws:iam::XXXXXXXXXXXX:role/bob-group": true
  },
  "roles": [
    "bob-group"
  ]
}
```

------
#### [ Example 2: Displays actions permitted for a user ]

Solicitação:

```
GET bob-test/_search
```

Resultado:

```
{
  "took": 390,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 1,
      "relation": "eq"
    },
    "max_score": 1,
    "hits": [
      {
        "_index": "bob-test",
        "_id": "ui01N5UBCIHpjO8Jlvfy",
        "_score": 1,
        "_source": {
          "title": "Your Name",
          "year": "2016"
        }
      }
    ]
  }
}
```

------
#### [ Example 3: Displays actions not permitted for a user ]

Solicitação:

```
GET alice-test
```

Resultado:

```
{
  "error": {
    "root_cause": [
      {
        "type": "security_exception",
        "reason": "no permissions for [indices:admin/get] and User [name=arn:aws:iam::111222333444:role/bob-group, backend_roles=[arn:aws:iam::111222333444:role/bob-group], requestedTenant=null]"
      }
    ],
    "type": "security_exception",
    "reason": "no permissions for [indices:admin/get] and User [name=arn:aws:iam::111222333444:role/bob-group, backend_roles=[arn:aws:iam::111222333444:role/bob-group], requestedTenant=null]"
  },
  "status": 403
}
```

------

## Etapa 5: configurar o controle de acesso refinado baseado em atributos SAML
<a name="SAML-identity-federation-step-5"></a>

Com o Amazon OpenSearch Service, você pode usar um controle de acesso refinado com SAML para mapear usuários e grupos do seu provedor de identidade para usuários e funções de controle de acesso OpenSearch refinados de forma dinâmica. Você pode definir o escopo dessas funções para OpenSearch domínios específicos e coleções sem servidor, além de definir permissões em nível de índice e segurança em nível de documento.

**nota**  
Para saber mais sobre controle de acesso da rede, consulte [Controle de acesso refinado no Amazon Service OpenSearch](fgac.md).

**Topics**
+ [

### Atributos do SAML para controle de acesso de alta granularidade
](#saml-fgac-key-attributes)
+ [

### Tarefa 1: configurar o Okta para controle de acesso refinado
](#configure-okta-fgac)
+ [

### Tarefa 2: Configurar SAML no domínio OpenSearch
](#configure-opensearch-domain-fgac)
+ [

### Tarefa 3: Configurar o SAML em coleções sem OpenSearch servidor
](#saml-configure-collections)

### Atributos do SAML para controle de acesso de alta granularidade
<a name="saml-fgac-key-attributes"></a>

**subjectKey**  
Mapeia para um atributo de usuário exclusivo, como e-mail ou nome de usuário, que identifica o usuário para autenticação.

**rolesKey**  
Mapeia para atributos de grupo ou perfil no IdP, que determinam os perfis ou permissões para autorização.

### Tarefa 1: configurar o Okta para controle de acesso refinado
<a name="configure-okta-fgac"></a>

**Para configurar o Okta para controle de acesso refinado**

1. Adicione um novo atributo para o OpenSearch usuário principal na seção **Declarações de atributos**:
   + Nome: `UserName`
   + Valor: `${user-email}`

   Esse atributo é usado como a **chave de assunto** na configuração OpenSearch refinada de controle de acesso para autenticação.

1. Adiciona um atributo de grupo para perfis na seção **Instrução de atributo de grupo**:
   + Nome: `groups`
   + Filtro: `OpenSearch_xxx`

   Esse atributo é usado como a **chave de função** para mapear grupos para funções de controle de acesso OpenSearch refinadas para autorização.

### Tarefa 2: Configurar SAML no domínio OpenSearch
<a name="configure-opensearch-domain-fgac"></a>

**Para configurar o SAML no domínio OpenSearch**

1. No AWS Management Console, identifique o domínio do OpenSearch serviço para o qual você deseja habilitar o controle de acesso detalhado para os usuários da interface do OpenSearch usuário.

1. Navegue até a página de detalhes do domínio específico.

1. Selecione a guia **Configuração de segurança** e clique em **Editar**.

1. Expanda o **SAML via federação do IAM**.

1. Insira a `subjectKey` e a `roleKey` que você definiu no Okta.

1. Selecione **Salvar alterações**.

Também é possível configurar um controle de acesso refinado usando o AWS CLI.

```
aws opensearch create-domain \
--domain-name testDomain \
--engine-version OpenSearch_1.3 \
--cluster-config InstanceType=r5.xlarge.search,InstanceCount=1,DedicatedMasterEnabled=false,ZoneAwarenessEnabled=false,WarmEnabled=false \
--access-policies '{"Version": "2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"AWS":"*"},"Action":"es:*","Resource":"arn:aws:es:us-east-1:12345678901:domain/neosaml10/*"}]}' \
--domain-endpoint-options '{"EnforceHTTPS":true,"TLSSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"}' \
--node-to-node-encryption-options '{"Enabled":true}' \
--encryption-at-rest-options '{"Enabled":true}' \
--advanced-security-options '{"Enabled":true,"InternalUserDatabaseEnabled":true,"MasterUserOptions":{"MasterUserName":"********","MasterUserPassword":"********"}, "IAMFederationOptions":{"Enabled": true,"SubjectKey":"TestSubjectKey","RolesKey":"TestRolesKey"}}' \
--ebs-options "EBSEnabled=true,VolumeType=gp2,VolumeSize=300" \
--no-verify-ssl \
--endpoint-url https://es.us-east-1.amazonaws.com \
--region us-east-1
```

Para atualizar um domínio existente:

```
aws opensearch update-domain-config \
--domain-name testDomain \
--advanced-security-options '{"Enabled":true,"InternalUserDatabaseEnabled":true,"MasterUserOptions":{"MasterUserName":"********","MasterUserPassword":"********"}, "IAMFederationOptions":{"Enabled": true,"SubjectKey":"TestSubjectKey","RolesKey":"TestRolesKey"}}' \
--ebs-options "EBSEnabled=true,VolumeType=gp2,VolumeSize=300" \
--no-verify-ssl \
--endpoint-url https://es.us-east-1.amazonaws.com \
--region us-east-1
```

### Tarefa 3: Configurar o SAML em coleções sem OpenSearch servidor
<a name="saml-configure-collections"></a>

**Para configurar o controle de acesso refinado baseado em SAML no Serverless OpenSearch**

1. Abra o Console de gerenciamento da AWS e navegue até o Amazon OpenSearch Service.

1. No painel de navegação, em **Tecnologia sem servidor**, escolha **Segurança** e depois **Autenticação**.

1. Na seção **Federação do IAM**, selecione **Editar**.

   É possível manusear com o controle de acesso refinado baseado em atributos do SAML usando essa configuração. A federação do IAM é desabilitada por padrão.

1. Selecione **Habilitar federação do IAM**.

1. Insira os valores `subjectKey` e `roleKey` que você definiu no Okta.

   Para saber mais, consulte [Atributos do SAML para controle de acesso de alta granularidade](#saml-fgac-key-attributes).

1. Selecione **Salvar**.

1. No painel de navegação, em **Tecnologia sem servidor**, escolha **Política de acesso a dados**.

1. Atualize uma política existente ou crie uma nova.

1. Expanda uma regra, escolha **Adicionar entidades principais** e selecione **Usuários e grupos da Federação do IAM**.

1. Adicione as entidades principais necessárias e escolha **Salvar**.

1. Selecione **Conceder**.

1. Nessa regra, faça o seguinte:
   + Selecione as permissões que você deseja definir para as entidades principais selecionadas.
   + Especifique as coleções nas quais você deseja aplicar as permissões.
   + Opcionalmente, defina as permissões em nível de índice.
**nota**  
Você pode criar várias regras para atribuir permissões diferentes a diferentes grupos de entidades principais.

1. Quando terminar, escolha **Save (Salvar)**.

1. Escolha **Criar**.

Como alternativa, você pode usar a CLI para criar as configurações de segurança para coleções, conforme abaixo:

```
aws opensearchserverless create-security-config --region "region"  --type iamfederation --name "configuration_name" --description "description" --iam-federation-options '{"groupAttribute":"GroupKey","userAttribute":"UserKey"}'
```