Autenticação SAML para Amazon Serverless OpenSearch - 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á.

Autenticação SAML para Amazon Serverless OpenSearch

Com a autenticação SAML para Amazon OpenSearch Serverless, você pode usar seu provedor de identidade existente para oferecer login único (SSO) para os endpoints do Dashboards de coleções sem servidor. OpenSearch

A autenticação SAML permite que você use provedores de identidade terceirizados para entrar nos OpenSearch painéis para indexar e pesquisar dados. OpenSearch O Serverless oferece suporte a provedores que usam o padrão SAML 2.0, como IAM Identity Center, Okta, Keycloak, Active Directory Federation Services (AD FS) e Auth0. Você pode configurar o IAM Identity Center para sincronizar usuários e grupos de outras fontes de identidade OneLogin, como Okta e Microsoft Entra ID. Para obter uma lista das fontes de identidade suportadas pelo IAM Identity Center e as etapas para configurá-las, consulte os tutoriais de introdução no Guia do usuário do IAM Identity Center.

nota

A autenticação SAML serve apenas para acessar OpenSearch painéis por meio de um navegador da web. Usuários autenticados só podem fazer solicitações às operações da OpenSearch API por meio de ferramentas de desenvolvimento em OpenSearch painéis. Suas credenciais SAML não permitem que você faça solicitações HTTP diretas para as operações da OpenSearch API.

Para configurar a autenticação SAML, primeiro é necessário configurar um provedor de identidade (IdP) SAML. Em seguida, você inclui um ou mais usuários desse IdP em uma política de acesso a dados. Essa política concede certas permissões para coleções e/ou índices. Em seguida, um usuário pode entrar nos OpenSearch painéis e realizar as ações permitidas na política de acesso a dados.

Considerações

Considere o seguinte ao configurar a autenticação SAML:

  • Não há suporte para solicitações assinadas e criptografadas.

  • Não há suporte para declarações criptografadas.

  • Não há suporte para autenticação e desconexão iniciadas pelo IdP.

Permissões obrigatórias

A autenticação SAML para OpenSearch Serverless usa as seguintes permissões AWS Identity and Access Management (IAM):

  • aoss:CreateSecurityConfig: criar um provedor de SAML.

  • aoss:ListSecurityConfig: listar todos os provedores de SAML na conta atual.

  • aoss:GetSecurityConfig: exibir as informações do provedor de SAML.

  • aoss:UpdateSecurityConfig: modificar uma determinada configuração do provedor de SAML, incluindo os metadados XML.

  • aoss:DeleteSecurityConfig: excluir um provedor de SAML.

A seguinte política de acesso baseada em identidade permite que um usuário gerencie todas as configurações do IdP:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "aoss:CreateSecurityConfig", "aoss:DeleteSecurityConfig", "aoss:GetSecurityConfig", "aoss:UpdateSecurityConfig", "aoss:ListSecurityConfigs" ], "Effect": "Allow", "Resource": "*" } ] }

Observe que o elemento Resource deve ser um caractere curinga.

Criação de provedores de SAML (console)

Estas etapas explicam como criar provedores de SAML. Isso permite a autenticação SAML com a autenticação iniciada pelo provedor de serviços (SP) para OpenSearch painéis. Não há suporte para autenticação iniciada pelo IdP.

Para habilitar a autenticação SAML para painéis OpenSearch
  1. Faça login no console do Amazon OpenSearch Service em https://console.aws.amazon.com/aos/home.

  2. No painel de navegação à esquerda, expanda Sem Servidor e escolha Autenticação SAML.

  3. Escolha Adicionar provedor de SAML.

  4. Forneça um nome e uma descrição para o provedor.

    nota

    O nome que você especificar pode ser acessado publicamente e aparecerá em um menu suspenso quando os usuários entrarem OpenSearch nos Painéis. Certifique-se de que o nome seja facilmente reconhecível e não revele informações confidenciais sobre seu provedor de identidade.

  5. Em Configurar seu IdP, copie o URL do Assertion Consumer Service (ACS).

  6. Use o URL do ACS que você acabou de copiar para configurar seu provedor de identidade. A terminologia e as etapas variam de acordo com o provedor. Consulte a documentação do seu provedor.

    No Okta, por exemplo, você cria uma “aplicação Web SAML 2.0” e especifica o URL do ACS como URL de login único, URL do destinatário e URL de destino. Para Auth0, especifique em URLs de retorno de chamada permitidos.

  7. Forneça a restrição de público se seu IdP possuir um campo para isso. A restrição de público é um valor dentro da declaração do SAML que especifica a quem a declaração se destina. Para OpenSearch Serverless, especifique. aws:opensearch:<aws account id> Por exemplo, aws:opensearch:123456789012.

    O nome do campo de restrição de público varia de acordo com o provedor. Para o Okta, é URI do público, ID de entidade do SP. Para o IAM Identity Center, é Público de SAML da aplicação.

  8. Se você estiver usando o IAM Identity Center, você também precisará especificar o seguinte mapeamento de atributos: Subject=${user:name}, com um formato unspecified.

  9. Aopis você configurar o provedor de identidade, ele gera um arquivo de metadados IdP. Esse arquivo XML contém informações sobre o provedor, como um certificado TLS, endpoints de acesso único e o ID de entidade do provedor de identidade.

    Copie o texto no arquivo de metadados do IdP e cole-o no campo Fornecer metadados do seu IdP. Alternativamente, escolha Importar de arquivo XML e carregue o arquivo. O arquivo de metadados deve ser semelhante ao seguinte:

    <?xml version="1.0" encoding="UTF-8"?> <md:EntityDescriptor entityID="entity-id" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"> <md:IDPSSODescriptor WantAuthnRequestsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> <md:KeyDescriptor use="signing"> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:X509Data> <ds:X509Certificate>tls-certificate</ds:X509Certificate> </ds:X509Data> </ds:KeyInfo>s </md:KeyDescriptor> <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat> <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat> <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="idp-sso-url"/> <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="idp-sso-url"/> </md:IDPSSODescriptor> </md:EntityDescriptor>
  10. Mantenha o campo Atributo de ID do usuário personalizado vazio para usar o elemento NameID da declaração do SAML para o nome do usuário. Se sua asserção não usar este elemento padrão e, em vez disso, incluir o nome de usuário como um atributo personalizado, especifique esse atributo aqui. Os atributos diferenciam maiúsculas de minúsculas. Só há suporte para um único atributo de usuário.

    O exemplo a seguir mostra um atributo de substituição para NameID na declaração do SAML:

    <saml2:Attribute Name="UserId" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">annie</saml2:AttributeValue> </saml2:Attribute>
  11. (Opcional) Especifique um atributo personalizado no campo Atributo do grupo, como role ou group. Só há suporte para um único atributo de grupo. Não há atributo de grupo padrão. Se você não especificar uma, suas políticas de acesso a dados só poderão conter entidades principais de usuários.

    O exemplo a seguir mostra um atributo de grupo na declaração do SAML:

    <saml2:Attribute Name="department" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">finance</saml2:AttributeValue> </saml2:Attribute>
  12. Por padrão, os OpenSearch painéis desconectam os usuários após 24 horas. Você pode configurar esse valor para qualquer número entre 1 e 12 horas (15 e 720 minutos) especificando o tempo limite dos OpenSearch painéis. Se você tentar definir um tempo limite igual ou inferior a 15 minutos, sua sessão será redefinida para uma hora.

  13. Escolha Criar provedor de SAML.

Acessando OpenSearch painéis

Depois de configurar um provedor SAML, todos os usuários e grupos associados a esse provedor podem navegar até o endpoint do OpenSearch Dashboards. O URL do Dashboards tem o formato collection-endpoint/_dashboards/ para todas as coleções.

Se você tiver o SAML ativado, selecionar o link no AWS Management Console direcionará você para a página de seleção do IdP, na qual você poderá fazer login usando suas credenciais do SAML. Primeiro, use o menu suspenso para selecionar um provedor de identidade:

Em seguida, faça login usando suas credenciais do IdP.

Se você não tiver o SAML ativado, selecionar o link no AWS Management Console direcionará você a fazer login como usuário ou função do IAM, sem opção para SAML.

Concessão de acesso de identidades do SAML a dados de coleções

Depois de criar um provedor de SAML, você ainda precisa conceder aos usuários e grupos subjacentes acesso aos dados em suas coleções. Você concede acesso por meio de políticas de acesso a dados. Até que você forneça acesso aos usuários, eles não poderão ler, gravar ou excluir nenhum dado de suas coleções.

Para conceder acesso, crie uma política de acesso a dados e especifique seus IDs de usuário e/ou grupo do SAML na declaração Principal:

[ { "Rules":[ ... ], "Principal":[ "saml/987654321098/myprovider/user/Shaheen", "saml/987654321098/myprovider/group/finance" ] } ]

É possível conceder acesso a coleções, índices ou ambos. Se você quiser que usuários diferentes tenham permissões diferentes, crie várias regras. Para obter uma lista das permissões disponíveis, consulte Permissões de políticas com suporte. Para obter informações sobre como formatar uma política de acesso, consulte Sintaxe das políticas.

Criação de provedores de SAML (AWS CLI)

Para criar um provedor SAML usando a API OpenSearch Serverless, envie uma solicitação: CreateSecurityConfig

aws opensearchserverless create-security-config \ --name myprovider \ --type saml \ --saml-options file://saml-auth0.json

Especifique saml-options, incluindo o XML de metadados, como um mapa de chave-valor em um arquivo .json. O XML de metadados deve ser codificado como uma string de escape JSON.

{ "sessionTimeout": 70, "groupAttribute": "department", "userAttribute": "userid", "metadata": "<EntityDescriptor xmlns=\"urn:oasis:names:tc:SAML:2.0:metadata\" ... ... ... IDPSSODescriptor>\r\n<\/EntityDescriptor>" }

Exibição de provedores de SAML

A ListSecurityConfigssolicitação a seguir lista todos os provedores de SAML em sua conta:

aws opensearchserverless list-security-configs --type saml

A solicitação retorna informações sobre todos os provedores de SAML existentes, incluindo os metadados completos do IdP que seu provedor de identidade gera:

{ "securityConfigDetails": [ { "configVersion": "MTY2NDA1MjY4NDQ5M18x", "createdDate": 1664054180858, "description": "Example SAML provider", "id": "saml/123456789012/myprovider", "lastModifiedDate": 1664054180858, "samlOptions": { "groupAttribute": "department", "metadata": "<EntityDescriptor xmlns=\"urn:oasis:names:tc:SAML:2.0:metadata\" ... ... ... IDPSSODescriptor>\r\n<\/EntityDescriptor>", "sessionTimeout": 120, "userAttribute": "userid" } } ] }

Para exibir detalhes sobre um provedor específico, inclusive a configVersion para futuras atualizações, envie uma solicitação GetSecurityConfig.

Atualização de provedores de SAML

Para atualizar um provedor SAML usando o console OpenSearch Serverless, escolha a autenticação SAML, selecione seu provedor de identidade e escolha Editar. É possível modificar todos os campos, incluindo os metadados e os atributos personalizados.

Para atualizar um provedor por meio da API OpenSearch Serverless, envie uma UpdateSecurityConfigsolicitação e inclua o identificador da política a ser atualizada. Também é necessário incluir uma versão da configuração, que pode ser recuperada usando os comandos ListSecurityConfigs ou GetSecurityConfig. A inclusão da versão mais recente garante que você não anule inadvertidamente uma alteração feita por outra pessoa.

A solicitação a seguir atualiza as opções do SAML para um provedor:

aws opensearchserverless update-security-config \ --id saml/123456789012/myprovider \ --type saml \ --saml-options file://saml-auth0.json \ --config-version MTY2NDA1MjY4NDQ5M18x

Especifique suas opções de configuração do SAML como um mapa de chave-valor em um arquivo .json.

Importante

As atualizações nas opções do SAML não são incrementais. Se você não especificar um valor para um parâmetro no objeto SAMLOptions ao fazer uma atualização, os valores existentes serão substituídos por valores vazios. Por exemplo, se a configuração atual contiver um valor para userAttribute, e você fizer uma atualização em seguida e não incluir esse valor, o valor será removido da configuração. Certifique-se de saber quais são os valores existentes antes de fazer uma atualização chamando a operação GetSecurityConfig.

Exclusão de provedores de SAML

Quando você exclui um provedor de SAML, quaisquer referências a usuários e grupos associados em suas políticas de acesso a dados não funcionam mais. Para evitar confusão, sugerimos que você remova todas as referências ao endpoint em suas políticas de acesso antes de excluir o endpoint.

Para excluir um provedor SAML usando o console OpenSearch Serverless, escolha Autenticação, selecione o provedor e escolha Excluir.

Para excluir um provedor por meio da API OpenSearch Serverless, envie uma DeleteSecurityConfigsolicitação:

aws opensearchserverless delete-security-config --id saml/123456789012/myprovider