Autorização e autenticação do JWT para o Amazon OpenSearch Service - 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á.

Autorização e autenticação do JWT para o Amazon OpenSearch Service

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 com autenticação única (SSO). Você pode usar JWTs no OpenSearch Service para criar tokens de logon único para validar solicitações para seu domínio do OpenSearch Service. Para usar JWTs, você deve ter um controle de acesso refinado habilitado e fornecer uma chave pública válida formatada em RSA ou ECDSA PEM. Para obter mais informações sobre o controle de acesso granular, consulte Controle de acesso granular do Amazon OpenSearch Service.

Você pode configurar JSON Web Tokens usando o console do OpenSearch Service, a 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 console da AWS para configurar a autenticação e autorização do JWT.

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

  • O OpenSearch 2.11 é a versão compatível mais antiga que pode ser usada para autenticação do JWT.

Modificar a política de acesso ao domínio

Antes de poder configurar a autenticação e autorização do JWT, é necessário 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 do JWT recebidas 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/*" } ] }

Configurar 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 de qual opção você escolher.

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

  1. Em Configuração do domínio, navegue até Autenticação e autorização do JWT para o 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 definir os seguintes campos opcionais

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

    • Chave de perfis: você pode deixar esse campo vazio para usar a chave padrão roles para seus JWTs.

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

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

Depois de criar um novo JWT com um par específico de assunto e perfil, 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. O OpenSearch Service é 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 do JWT para acessar o OpenSearch Service por meio do endpoint de pesquisa do seu domínio:

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

O comando AWS CLI a seguir ativa a autenticação e autorização do JWT para o 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>"}}'

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

A seguinte solicitação para a API de configuração habilita a autenticação e autorização do JWT para o 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" } } }
Gerar um par de chaves

Para configurar JWTs para seu domínio do OpenSearch, 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 arquivo publickey.pem 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 formato pkcs8 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 extensão .pem, outras extensões de arquivo, como .crt, .cert ou .key não têm suporte no momento.