Habilitando a federação SAML com AWS Identity and Access Management - 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á.

Habilitando a federação SAML com AWS Identity and Access Management

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 permite a federação de identidades com 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 o aplicativo de gerenciamento de identidade e acesso Okta como exemplo. As etapas de configuração para outros provedores de identidade, como Azure Active Directory e Ping, são semelhantes.

Etapa 1: configurar o aplicativo do provedor de identidade (Okta)

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

Tarefa 1: Criar usuários Okta
  1. Entre na sua organização Okta em https://login.okta.com/como um usuário com privilégios administrativos.

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

  3. Escolha Add person (Adicionar pessoa).

  4. Em Nome, insira o nome do usuário.

  5. Em Sobrenome, insira o sobrenome do usuário.

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

  7. Escolha Vou definir a senha e digite uma senha

  8. (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.

  9. Escolha Salvar.

Tarefa 2: Criar e atribuir grupos
  1. Entre na sua organização Okta em https://login.okta.com/como um usuário com privilégios administrativos.

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

  3. Escolha Add Group (Adicionar grupo).

  4. Insira um nome de grupo e escolha Salvar.

  5. Escolha o grupo recém-criado e, em seguida, escolha Atribuir pessoas.

  6. Escolha o sinal de adição (+) e, em seguida, escolha Concluído.

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

Tarefa 3: Criar aplicativos Okta
  1. Entre na sua organização Okta em https://login.okta.com/como um usuário com privilégios administrativos.

  2. No console do administrador, em Aplicativos no painel de navegação, escolha Aplicativos.

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

  4. Escolha SAML 2.0 como método de login e, em seguida, escolha Avançar.

  5. Insira um nome para a integração do seu aplicativo (por exemplo,OpenSearch_UI) e escolha Avançar.

  6. Insira os seguintes valores no aplicativo; 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.

    2. 2. Em URI de público (ID da entidade SP), insiraurn:amazon:webservices.

    3. 3. Em Formato de ID de nome, insiraEmailAddress.

  7. Escolha Próximo.

  8. Escolha Sou um cliente da Okta adicionando um aplicativo interno e, em seguida, escolha Este é um aplicativo interno que criamos.

  9. Escolha Terminar.

  10. Escolha Tarefas e, em seguida, escolha Atribuir.

  11. Escolha Atribuir a grupos e, em seguida, selecione Atribuir ao lado dos grupos que você deseja adicionar.

  12. Selecione Concluído.

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

Depois de criar o aplicativo SAML personalizado, conclua as seguintes etapas:

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

    No console do administrador, na área Geral, escolha Editar em Configurações de SAML.

  2. Escolha Próximo.

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

    Veja um exemplo a seguir:

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

  4. Em Declarações de atributos (opcional), adicione as seguintes propriedades:

    1. Forneça a função do IAM e o provedor de identidade em 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.

    2. Defina user.login para. RoleSessionName Isso é usado como um identificador para as credenciais temporárias emitidas quando a função é assumida.

    Para referência:

    Name Formato do nome Formato Exemplo

    https://aws.amazon.com/SAML/Attributes/Role

    Não especificado

    arn:aws:iam::aws-account-id:role/role-name,arn:aws:iam::aws-account-id:saml-provider/provider-name

    arn:aws:iam::111222333444:role/oktarole,arn:aws:iam::111222333444:saml-provider/oktaidp

    https://aws.amazon.com/SAML/Attributes/RoleSessionName

    Não especificado

    user.login

    user.login

  5. Depois de adicionar as propriedades do atributo, escolha Avançar e, em seguida, escolha Concluir.

Seus atributos devem ter formato semelhante aos mostrados na imagem a seguir. O valor do estado de retransmissão padrão é 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" relata a URL padrão do estado de retransmissão e a URL de metadados de um aplicativo.

Etapa 2: AWS Configurar o Okta

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á-las posteriormente. AWS

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

  2. Na guia Entrar, no canto inferior direito da página, escolha Exibir instruções de configuração do SAML.

  3. Anote o valor do URL de login único do provedor de identidade. Você pode usar essa URL ao se conectar a qualquer cliente SQL de terceiros, como o SQL Workbench/J.

  4. Use os metadados do provedor de identidade 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 seu provedor de IAM, conclua as seguintes etapas:

  1. Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, em Gerenciamento de acesso, escolha Provedores de identidade.

  3. Escolha Add provider (Adicionar provedor).

  4. Para o tipo de provedor, selecione SAML.

  5. Em Nome do provedor, insira um nome.

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

  7. Escolha Add provider (Adicionar provedor).

Tarefa 3: Criar função do IAM

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

  1. Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, em Gerenciamento de acesso, escolha Funções.

  3. Selecione Criar perfil.

  4. Em Tipo de entidade confiável, selecione federação SAML 2.0.

  5. Para o provedor baseado em SAML 2.0, escolha o provedor de identidade que você criou anteriormente.

  6. Selecione Permitir programação e AWS Management Console acesso.

  7. Escolha Próximo.

  8. Na lista Políticas de permissões, marque as caixas de seleção da política que você criou anteriormente e para OpenSearchFullAccess.

  9. Escolha Próximo.

  10. Na área Revisão, em Nome da função, insira o nome da sua função; por exemplo,oktarole.

  11. (Opcional) Em Descrição, insira uma breve descrição da finalidade da função.

  12. Selecione Criar perfil.

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

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

  15. Escolha Atualizar política.

Etapa 3: criar a política OpenSearch de acesso ao Amazon Service no IAM

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 funções 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 pelo provedor de identidade com o SAML

Abra a URL do Default Relay State para abrir a página de autenticação 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 imagem a seguir:

Escolher o ícone do usuário na página “Configurações e configuração” do Okta exibe as credenciais do usuário atual.

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 a seguir 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

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 obter mais informações sobre controle de acesso refinado, consulte. Controle de acesso refinado no Amazon Service OpenSearch

Atributos SAML para controle de acesso refinado

Chave do assunto

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

FunçõesKey

Mapeia para atributos de grupo ou função em seu IdP que determinam as funções ou permissões para autorização.

Tarefa 1: Configurar o Okta para um controle de acesso refinado

Para configurar o Okta para um 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.

  2. Adicione um atributo de grupo para funções na seção Declaração de atributos 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 o SAML no domínio OpenSearch

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.

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

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

  4. Expanda o SAML por meio do IAM Federate.

  5. Insira o subjectKey e roleKey que você definiu no Okta.

  6. Selecione Salvar alterações.

Você também pode 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

Para configurar o controle de acesso refinado baseado em SAML no Serverless OpenSearch
  1. Abra o AWS Management Console e navegue até o Amazon OpenSearch Service.

  2. No painel de navegação, em Sem servidor, escolha Segurança e, em seguida, escolha Autenticação.

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

    Você pode controlar o controle de acesso refinado baseado em atributos SAML usando essa configuração. A federação do IAM está desativada por padrão.

  4. Selecione Ativar federação do IAM.

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

    Para obter mais informações, consulte Atributos SAML para controle de acesso refinado .

  6. Selecione Salvar.

  7. No painel de navegação em Sem servidor, escolha Política de acesso a dados.

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

  9. Expanda uma regra, escolha Adicionar diretores e, em seguida, selecione Usuários e grupos da Federação do IAM.

  10. Adicione os principais necessários e escolha Salvar.

  11. Selecione Conceder.

  12. De acordo com essa regra, faça o seguinte:

    • Selecione as permissões que você deseja definir para os diretores selecionados.

    • 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 diretores.

  13. Quando terminar, escolha Save (Salvar).

  14. Escolha Criar.

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

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