Autenticación y autorización JWT para Amazon Service OpenSearch - OpenSearch Servicio Amazon

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Autenticación y autorización JWT para Amazon Service OpenSearch

Amazon OpenSearch Service ahora te permite utilizar los JSON Web Tokens (JWT) para la autenticación y la autorización. Los JWT son tokens de acceso basados en JSON que se utilizan para conceder el acceso de inicio de sesión único (SSO). Puedes usar los JWT in OpenSearch Service para crear tokens de inicio de sesión único que validen las solicitudes enviadas a tu dominio de Service. OpenSearch Para usar los JWT, debe tener habilitado un control de acceso detallado y debe proporcionar una clave pública válida con formato PEM de RSA o ECDSA. Para obtener más información sobre el control de acceso detallado, consulta Control de acceso detallado en Amazon Service. OpenSearch

Puede configurar los tokens web JSON mediante la consola de OpenSearch servicio, el AWS Command Line Interface ()AWS CLI o los SDK. AWS

Consideraciones

Antes de utilizar los JWT con Amazon OpenSearch Service, debes tener en cuenta lo siguiente:

  • Debido al tamaño de las claves públicas de RSA en formato PEM, recomendamos usar la AWS consola para configurar la autenticación y la autorización de JWT.

  • Debe proporcionar usuarios y roles válidos al especificar los campos de asuntos y roles de sus JWT; de lo contrario, se denegarán las solicitudes.

Modificación de la política de acceso al dominio

Antes de poder configurar el dominio para que utilice la autenticación y la autorización de JWT, debe actualizar la política de acceso al dominio para permitir que los usuarios de JWT accedan al dominio. De lo contrario, se rechazarán todas las solicitudes entrantes autorizadas por JWT. La política de acceso al dominio recomendada para proporcionar acceso total a los subrecursos (/*) es la siguiente:

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

Configurar la autenticación y la autorización de JWT

Puede habilitar la autenticación y la autorización de JWT durante el proceso de creación del dominio o actualizando un dominio existente. Los pasos de configuración varían ligeramente según la opción que elija.

Los siguientes pasos explican cómo configurar un dominio existente para la autenticación y autorización de JWT en la consola de OpenSearch servicio:

  1. En Configuración del dominio, vaya a Autenticación y autorización de JWT y seleccione Habilitar la autenticación y autorización de JWT. OpenSearch

  2. Configura la clave pública que se usará en tu dominio. Para ello, puede cargar un archivo PEM que contenga una clave pública o introducirlo manualmente.

    nota

    Si la clave cargada o ingresada no es válida, aparecerá una advertencia sobre el cuadro de texto que especifica el problema.

  3. (Opcional) En Ajustes adicionales, puede configurar los siguientes campos opcionales

    • Clave de asunto: puede dejar este campo vacío para usar la sub clave predeterminada para sus JWT.

    • Clave de funciones: puede dejar este campo vacío para usar la roles clave predeterminada para sus JWT.

    Una vez que hayas realizado los cambios, guarda tu dominio.

Utilizar un JWT para enviar una solicitud de prueba

Tras crear un nuevo JWT con un par específico de sujeto y rol, puede enviar una solicitud de prueba. Para ello, utilice la clave privada para firmar la solicitud a través de la herramienta que creó el JWT. OpenSearch El servicio puede validar la solicitud entrante al verificar esta firma.

nota

Si especificó una clave de asunto o una clave de funciones personalizadas para su JWT, debe utilizar los nombres de reclamación correctos para su JWT.

A continuación, se muestra un ejemplo de cómo usar un token de JWT para acceder al OpenSearch Servicio a través del punto de búsqueda de tu dominio:

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

El siguiente AWS CLI comando habilita la autenticación y la autorización de JWT OpenSearch siempre que el dominio 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>"}}'

Configuración de la autenticación y autorización de JWT (configuración mediante API)

La siguiente solicitud a la API de configuración habilita la autenticación y la autorización de JWT OpenSearch en un dominio 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" } } }
Generación de un key pair

Para configurar los JWT para su OpenSearch dominio, necesitará proporcionar una clave pública en formato de correo mejorado con privacidad (PEM). Actualmente, Amazon OpenSearch Service admite dos algoritmos de cifrado asimétrico cuando se utilizan los JWT: RSA y ECDSA.

Para crear un key pair de RSA mediante la biblioteca openssl común, sigue estos pasos:

  1. openssl genrsa -out privatekey.pem 2048

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

En este ejemplo, el publickey.pem archivo contiene la clave pública para su uso con Amazon OpenSearch Service, mientras que privatekey.pem contiene la privada para firmar los JWT enviados al servicio. Además, tiene la opción de convertir la clave privada al pkcs8 formato de uso común si lo necesita para generar sus JWT.

Si utiliza el botón de carga para añadir un archivo PEM directamente a la consola, el archivo debe tener una .pem extensión u otras extensiones de archivo, por ejemplo .crt.cert, o .key no ser compatibles en este momento.