Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
JWTauthentification et autorisation pour Amazon OpenSearch Service
Amazon OpenSearch Service vous permet désormais d'utiliser des jetons JSON Web (JWTs) pour l'authentification et l'autorisation. JWTssont des jetons d'accès JSON basés sur des jetons d'accès utilisés pour accorder un accès par authentification unique (SSO). Vous pouvez utiliser JWTs in OpenSearch Service pour créer des jetons d'authentification unique afin de valider les demandes adressées à votre domaine OpenSearch de service. Pour l'utiliserJWTs, le contrôle d'accès détaillé doit être activé et vous devez fournir une clé publique valide RSA ou ECDSA PEM formatée. Pour plus d'informations sur le contrôle d'accès détaillé, consultez la section Contrôle d'accès détaillé dans Amazon Service. OpenSearch
Vous pouvez configurer les jetons JSON Web à l'aide de la console de OpenSearch service, du AWS Command Line Interface (AWS CLI) ou du AWS SDKs.
Considérations
Avant de l'utiliser JWTs avec Amazon OpenSearch Service, vous devez prendre en compte les points suivants :
-
En raison de la taille des clés RSA publiques lors du PEM formatage, nous vous recommandons d'utiliser la AWS console pour configurer JWT l'authentification et l'autorisation.
-
Vous devez fournir des utilisateurs et des rôles valides lorsque vous spécifiez les champs de sujets et de rôles pour vousJWTs, sinon les demandes seront refusées.
-
OpenSearch La version 2.11 est la plus ancienne version compatible pouvant être utilisée pour JWT l'authentification.
Modification de la stratégie d'accès au domaine
Avant de configurer votre domaine pour utiliser l'JWTauthentification et l'autorisation, vous devez mettre à jour votre politique d'accès au domaine afin de permettre aux JWT utilisateurs d'accéder au domaine. Dans le cas contraire, toutes les demandes JWT autorisées entrantes sont refusées. La politique d'accès au domaine recommandée pour fournir un accès complet aux sous-ressources (/*) est la suivante :
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:ESHttp*",
"Resource": "domain-arn/*"
}
]
}
Configuration de JWT l'authentification et de l'autorisation
Vous pouvez activer JWT l'authentification et l'autorisation pendant le processus de création du domaine ou en mettant à jour un domaine existant. Les étapes de configuration varient légèrement en fonction de l'option choisie.
Les étapes suivantes expliquent comment configurer un domaine existant pour JWT l'authentification et l'autorisation dans la console OpenSearch de service :
-
Sous Configuration du domaine, accédez à JWTAuthentification et autorisation pour OpenSearch, puis sélectionnez Activer JWT l'authentification et l'autorisation.
-
Configurez la clé publique à utiliser pour votre domaine. Pour ce faire, vous pouvez soit télécharger un PEM fichier contenant une clé publique, soit le saisir manuellement.
Note
Si la clé téléchargée ou saisie n'est pas valide, un avertissement apparaît au-dessus de la zone de texte indiquant le problème.
-
(Facultatif) Sous Paramètres supplémentaires, vous pouvez configurer les champs facultatifs suivants
-
Clé d'objet : vous pouvez laisser ce champ vide pour utiliser la
sub
clé par défaut pour votreJWTs. -
Clé des rôles : vous pouvez laisser ce champ vide pour utiliser la
roles
clé par défaut pour votreJWTs.
Une fois que vous avez apporté vos modifications, enregistrez votre domaine.
-
Utiliser un JWT pour envoyer une demande de test
Après en avoir créé un nouveau JWT avec une paire sujet/rôle spécifiée, vous pouvez envoyer une demande de test. Pour ce faire, utilisez la clé privée pour signer votre demande via l'outil qui a créé leJWT. OpenSearch Le service est en mesure de valider la demande entrante en vérifiant cette signature.
Note
Si vous avez spécifié une clé de sujet ou une clé de rôle personnalisée pour votreJWT, vous devez utiliser les noms de réclamation corrects pour votreJWT.
Voici un exemple d'utilisation d'un JWT jeton pour accéder au OpenSearch Service via le point de terminaison de recherche de votre domaine :
curl -XGET "$search_endpoint" -H "Authorization: Bearer <JWT>"
La AWS CLI commande suivante active JWT l'authentification et l'autorisation à OpenSearch condition que le domaine existe :
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>"}}'
Configuration de JWT l'authentification et de l'autorisation (configuration viaAPI)
La demande suivante adressée à la configuration API active JWT l'authentification et l'autorisation OpenSearch sur un domaine existant :
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"
}
}
}
Génération d'une paire de clés
JWTsPour configurer votre OpenSearch domaine, vous devez fournir une clé publique au format Privacy-Enhanced Mail ()PEM. Amazon OpenSearch Service prend actuellement en charge deux algorithmes de chiffrement asymétriques lors de l'utilisation de JWTs : RSA etECDSA.
Pour créer une paire de RSA clés à l'aide de la bibliothèque openssl commune, procédez comme suit :
openssl genrsa -out privatekey.pem 2048
openssl rsa -in privatekey.pem -pubout -out publickey.pem
Dans cet exemple, le publickey.pem
fichier contient la clé publique à utiliser avec Amazon OpenSearch Service, tandis que le fichier privé privatekey.pem
contient la clé privée pour signer le message JWTs envoyé au service. De plus, vous avez la possibilité de convertir la clé privée dans le pkcs8
format couramment utilisé si vous en avez besoin pour générer votreJWTs.
Si vous utilisez le bouton de téléchargement pour ajouter un PEM fichier directement dans la console, le fichier doit avoir une .pem
extension, d'autres extensions de fichier telles que .crt
.cert
, ou ne .key
sont pas prises en charge pour le moment.