

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 suporta 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 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 ser 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 instruções detalhadas para configurar o uso do SAML com a interface do usuário. OpenSearch 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. 

**nota**  
Se você usa o AWS IAM Identity Center, não precisa configurar a federação SAML conforme descrito neste tópico. OpenSearch A interface do usuário oferece suporte nativo ao IAM Identity Center, que fornece acesso SSO sem configuração adicional de SAML. O IAM Identity Center também oferece suporte ao gerenciamento de usuários e grupos em nível organizacional. A integração SAML descrita aqui é destinada a provedores de identidade de terceiros (como Okta, Azure Active Directory e Ping) que não são o IAM Identity Center.

**Topics**
+ [Etapa 1: configurar a aplicação de provedor de identidades (Okta)](#SAML-identity-federation-step-1)
+ [Etapa 2: configurar AWS configuração para 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 única Sign-On iniciada pelo provedor de identidade com 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 SAML com OpenSearch UI, a primeira etapa é configurar seu provedor de identidade. 

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

1. Faça login na sua organização Okta [ https://login.okta.com/ ](https://login.okta.com/) como 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. Faça login na sua organização Okta [ https://login.okta.com/ ](https://login.okta.com/) como 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 (**\+**) 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. Faça login na sua organização Okta [ https://login.okta.com/ ](https://login.okta.com/) como 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\_UI**) e escolha **Avançar**. 

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

   1.  1. Em URL de login ** único**, insira **https://signin.aws.amazon.com/saml** para as AWS regiões comerciais ou o URL específico 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. Faça login na sua organização Okta [ https://login.okta.com/ ](https://login.okta.com/) como 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 do IAM e o mesmo provedor de identidade 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:


<table>
<thead>
  <tr><th>Nome</th><th>Formato de nome</th><th>Formato</th><th>Exemplo</th></tr>
</thead>
<tbody>
  <tr><td><code>https://aws.amazon.com/SAML/Attributes/Role</code></td><td>Não especificado</td><td><code>arn:aws:iam::aws-account-id:role/role-name,arn:aws:iam::aws-account-id:saml-provider/provider-name</code></td><td><code>arn:aws:iam::111222333444:role/oktarole,arn:aws:iam::111222333444:saml-provider/oktaidp</code></td></tr>
  <tr><td><code>https://aws.amazon.com/SAML/Attributes/RoleSessionName</code></td><td>Não especificado</td><td><code>user.login</code></td><td><code>user.login</code></td></tr>
</tbody>
</table>


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.](https://docs.aws.amazon.com/pt_br/opensearch-service/latest/developerguide/images/ui-saml-2.0-area-okta.png)


## Etapa 2: configurar AWS configuração para 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. Faça login na sua organização Okta [ https://login.okta.com/ ](https://login.okta.com/) como 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 do Sign-on URL único do provedor de ** identidade**. Você pode usar esse 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. 
**nota**  
Em ** Sign-in endpoints**, selecione ** sem identificadores ** exclusivos. Se você selecionar ** com identificadores exclusivos**, a `SAML:aud` condição na política de confiança não corresponderá ao público da declaração SAML, resultando em um `AccessDenied` erro quando os usuários tentarem fazer login.

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 declaraçã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 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 as 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 única Sign-On iniciada pelo provedor de identidade com 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.](https://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 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 refinado de forma dinâmica. Você pode definir o escopo dessas funções para OpenSearch domínios específicos e coleções sem servidor e 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 [Fine-grained controle de acesso no Amazon OpenSearch Service](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 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 ** 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 um 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 SAML em coleções sem OpenSearch servidor
<a name="saml-configure-collections"></a>

**Para configurar o controle de acesso SAML-based refinado 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"}'
```