Autenticação e autorização do JWT para Amazon Service 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 e autorização do JWT para Amazon Service OpenSearch

O Amazon OpenSearch Service agora permite que você use JSON Web Tokens (JWTs) para autenticação e autorização. Os JWTs são tokens de acesso baseados em JSON usados para conceder acesso de login único (SSO). Você pode usar o JWTs in OpenSearch Service para criar tokens de login único para validar solicitações para seu domínio do Service. OpenSearch Para usar o JWTs, você deve ter um controle de acesso refinado ativado e fornecer uma chave pública válida formatada em RSA ou ECDSA PEM. Para obter mais informações sobre controle de acesso refinado, consulte Controle de acesso refinado no Amazon Service. OpenSearch

Você pode configurar os JSON Web Tokens usando o console OpenSearch de serviço, o AWS Command Line Interface (AWS CLI) ou os AWS SDKs.

Considerações

Antes de usar o JWTs com o Amazon OpenSearch Service, você deve considerar o seguinte:

  • Devido ao tamanho das chaves públicas RSA na formatação PEM, recomendamos usar o AWS console para configurar a autenticação e autorização do JWT.

  • Você deve fornecer usuários e funções válidos ao especificar os campos de assuntos e funções para seus JWTs, caso contrário, as solicitações serão negadas.

Modificar a política de acesso ao domínio

Antes de configurar seu domínio para usar a autenticação e autorização do JWT, você deve atualizar sua política de acesso ao domínio para permitir que os usuários do JWT acessem o domínio. Caso contrário, todas as solicitações autorizadas recebidas do JWT serão negadas. A política de acesso ao domínio recomendada para fornecer acesso total aos subrecursos (/*) é:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESHttp*", "Resource": "domain-arn/*" } ] }

Configurando a autenticação e autorização do JWT

Você pode ativar a autenticação e autorização do JWT durante o processo de criação do domínio ou atualizando um domínio existente. As etapas de configuração variam um pouco, dependendo da opção escolhida.

As etapas a seguir explicam como configurar um domínio existente para autenticação e autorização do JWT no console OpenSearch de serviço:

  1. Em Configuração do domínio, navegue até Autenticação e autorização do JWT para OpenSearch, selecione Habilitar autenticação e autorização do JWT.

  2. Configure a chave pública a ser usada em seu domínio. Para fazer isso, você pode carregar um arquivo PEM contendo uma chave pública ou inseri-lo manualmente.

    nota

    Se a chave enviada ou inserida não for válida, um aviso aparecerá acima da caixa de texto especificando o problema.

  3. (Opcional) Em Configurações adicionais, você pode configurar os seguintes campos opcionais

    • Chave de assunto — você pode deixar esse campo vazio para usar a sub chave padrão para seus JWTs.

    • Chave de funções — você pode deixar esse campo vazio para usar a roles chave padrão para seus JWTs.

    Depois de fazer suas alterações, salve seu domínio.

Usando um JWT para enviar uma solicitação de teste

Depois de criar um novo JWT com um par específico de assunto e função, você pode enviar uma solicitação de teste. Para fazer isso, use a chave privada para assinar sua solicitação por meio da ferramenta que criou o JWT. OpenSearch O serviço é capaz de validar a solicitação recebida verificando essa assinatura.

nota

Se você especificou uma chave de assunto ou chave de funções personalizada para seu JWT, você deve usar os nomes de reivindicações corretos para seu JWT.

Veja a seguir um exemplo de como usar um token JWT para acessar o OpenSearch Serviço por meio do endpoint de pesquisa do seu domínio:

curl -XGET "$search_endpoint" -H "Authorization: Bearer <JWT>"

O AWS CLI comando a seguir ativa a autenticação e autorização do JWT, OpenSearch desde que o domínio exista:

aws opensearch update-domain-config --domain-name <your_domain_name> --advanced-security-options '{"JWTOptions":{"Enabled":true, "PublicKey": "<your_public_key>", "SubjectKey": "<your_subject_key>", "RolesKey": "<your_roles_key>"}}'

Configurando a autenticação e autorização do JWT (configuração via API)

A solicitação a seguir para a API de configuração permite a autenticação e autorização do JWT OpenSearch em um domínio existente:

POST https://es.us-east-1.amazonaws.com/2021-01-01/opensearch/domain/my-domain/config { "AdvancedSecurityOptions": { "JWTOptions": { "Enabled": true, "PublicKey": "public-key", "RolesKey": "optional-roles-key", "SubjectKey": "optional-subject-key" } } }
Gerando um par de chaves

Para configurar JWTs para seu OpenSearch domínio, você precisará fornecer uma chave pública no formato Privacy-Enhanced Mail (PEM). Atualmente, o Amazon OpenSearch Service oferece suporte a dois algoritmos de criptografia assimétrica ao usar JWTs: RSA e ECDSA.

Para criar um par de chaves RSA usando a biblioteca comum do openssl, siga estas etapas:

  1. openssl genrsa -out privatekey.pem 2048

  2. openssl rsa -in privatekey.pem -pubout -out publickey.pem

Neste exemplo, o publickey.pem arquivo contém a chave pública para uso com o Amazon OpenSearch Service, enquanto privatekey.pem contém a privada para assinar os JWTs enviados ao serviço. Além disso, você tem a opção de converter a chave privada no pkcs8 formato comumente usado se precisar dela para gerar seus JWTs.

Se você usar o botão de upload para adicionar um arquivo PEM diretamente ao console, o arquivo deverá ter uma .pem extensão, outras extensões de arquivo.crt, como,.cert, ou não .key serão suportadas no momento.