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 JWT para Amazon Service OpenSearch
O Amazon OpenSearch Service agora permite que você use JSON Web Tokens (JWTs) para autenticação e autorização. 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 OpenSearch domínio do Service. Para usar 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 JSON Web Tokens usando o console de OpenSearch serviço, o AWS Command Line Interface (AWS CLI) ou o. AWS SDKs
Considerações
Antes de usar 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 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.
-
OpenSearch 2.11 é a versão compatível mais antiga que pode ser usada para autenticação 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 (/*) é:
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 OpenSearch de serviço:
-
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.
-
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.
-
(Opcional) Em Configurações adicionais, você pode definir os seguintes campos opcionais
-
Chave de assunto — você pode deixar esse campo vazio para usar a
subchave padrão para seu JWTs. -
Chave de funções — você pode deixar esse campo vazio para usar a
roleschave padrão para sua JWTs.
Depois de fazer as alterações, salve o seu domínio.
-
Usando um endpoint JWKS para validar um JWT
Em vez de configurar uma chave pública estática, você pode configurar uma URL de endpoint do JSON Web Key Set (JWKS) para recuperar dinamicamente as chaves públicas do seu provedor de identidade. Quando um endpoint JWKS é configurado, o OpenSearch Service busca e armazena automaticamente em cache as chaves públicas usadas para validar as assinaturas do JWT, eliminando a necessidade de atualizar manualmente as chaves quando seu provedor de identidade alterna as chaves de assinatura.
A configuração do endpoint JWKS requer a OpenSearch versão 3.3 ou posterior.
nota
Quando uma URL do JWKS e uma chave pública estática são configuradas, a URL do JWKS tem precedência e a chave pública estática é ignorada.
Compatibilidade retroativa
Esse recurso mantém total compatibilidade com versões anteriores:
-
Quando não
JwksUrlé especificado ou definido como nulo, o sistema usa o mecanismo de chave pública estática existente. -
As configurações existentes do JWT continuam funcionando sem modificações.
-
Você pode alternar entre chaves estáticas e JWKS atualizando a configuração do domínio.
Configurando um endpoint JWKS
Você pode configurar um endpoint JWKS usando o console de OpenSearch serviço AWS CLI, o ou a API de configuração.
Para configurar um endpoint JWKS
-
Em Configuração do domínio, navegue até Autenticação e autorização do JWT para OpenSearch.
-
Selecione Ativar autenticação e autorização do JWT.
-
Em Fonte da chave, selecione URL do JWKS.
-
Insira o URL do endpoint JWKS fornecido pelo seu provedor de identidade (por exemplo,).
https://example.com/.well-known/jwks.json -
(Opcional) Configure os campos Chave de assunto e Chave de funções em Configurações adicionais.
-
Escolha Salvar alterações.
O AWS CLI comando a seguir configura um endpoint JWKS para autenticação JWT em um domínio existente:
aws opensearch update-domain-config \ --domain-namemy-domain\ --advanced-security-options '{"JWTOptions":{"Enabled":true, "JwksUrl":"https://example.com/.well-known/jwks.json", "SubjectKey":"sub", "RolesKey":"roles"}}'
A solicitação a seguir para a API de configuração configura um endpoint JWKS para autenticação JWT 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, "JwksUrl": "https://example.com/.well-known/jwks.json", "RolesKey": "optional-roles-key", "SubjectKey": "optional-subject-key" } } }
Requisitos de cabeçalho JWT
Ao usar um endpoint JWKS, seu cabeçalho JWT deve incluir um ID de chave (kid) que identifique a chave específica a ser usada para verificação:
{ "alg": "RS256", "typ": "JWT", "kid": "V-diposfUJIk5jDBFi_QRouiVinG5PowskcSWy5EuCo" }
O kid valor deve corresponder a um identificador de chave na resposta do endpoint JWKS.
Para obter mais informações sobre as opções de configuração e configurações de segurança do JWKS, consulte Usando um endpoint do JWKS para validar
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. 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>"}}'
Configurar 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"
}
}
}
Gerar um par de chaves
JWTs Para configurar 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:
-
openssl genrsa -out privatekey.pem 2048 -
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 o JWTs envio para o 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 sua 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.