Utilisation de l'authentification par quorum pour les administrateurs : première configuration - AWS CloudHSM

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.

Utilisation de l'authentification par quorum pour les administrateurs : première configuration

Les rubriques suivantes décrivent les étapes que vous devez suivre pour configurer votre module de sécurité matériel (HSM) afin que les administrateurs puissent utiliser l'authentification par quorum. Vous devez suivre ces étapes une seule fois lorsque vous configurez l'authentification par quorum pour les administrateurs. Une fois que vous avez terminé ces étapes, consultez Utilisation de l'authentification par quorum pour les administrateurs.

Prérequis

Pour comprendre cet exemple, vous devez bien connaître la CLI CloudHSM. Dans cet exemple, le AWS CloudHSM cluster possède deux HSM, chacun ayant les mêmes administrateurs, comme indiqué dans le résultat suivant de la user list commande. Pour plus d'informations sur la création d'utilisateurs, consultez Utilisation de la CLI CloudHSM.

aws-cloudhsm>user list { "error_code": 0, "data": { "users": [ { "username": "admin", "role": "admin", "locked": "false", "mfa": [], "quorum": [], "cluster-coverage": "full" }, { "username": "admin2", "role": "admin", "locked": "false", "mfa": [], "quorum": [], "cluster-coverage": "full" }, { "username": "admin3", "role": "admin", "locked": "false", "mfa": [], "quorum": [], "cluster-coverage": "full" }, { "username": "admin4", "role": "admin", "locked": "false", "mfa": [], "quorum": [], "cluster-coverage": "full" }, { "username": "app_user", "role": "internal(APPLIANCE_USER)", "locked": "false", "mfa": [], "quorum": [], "cluster-coverage": "full" } ] } }

Création et enregistrement d'une clé pour la signature

Pour utiliser l'authentification par quorum, chaque administrateur doit effectuer toutes les étapes suivantes :

Créer une paire de clés RSA

Il existe de nombreuses manières différentes de créer et de protéger une paire de clés. Les exemples suivants montrent comment procéder avec OpenSSL.

Exemple — Créer une clé privée à l'aide d'OpenSSL

L'exemple suivant montre comment utiliser OpenSSL pour créer une clé RSA de 2048 bits, protégée par une phrase secrète. Pour utiliser cet exemple, remplacez <admin.key> par le nom du fichier dans lequel vous souhaitez stocker la clé.

$ openssl genrsa -out <admin.key> -aes256 2048 Generating RSA private key, 2048 bit long modulus .....................................+++ .+++ e is 65537 (0x10001) Enter pass phrase for admin.key: Verifying - Enter pass phrase for admin.key:

Générez ensuite la clé publique à l'aide de la clé privée que vous venez de créer.

Exemple — Crée une clé publique avec OpenSSL

L'exemple suivant montre comment utiliser OpenSSL pour créer une clé publique à partir de la clé privée que vous venez de créer.

$ openssl rsa -in admin.key -outform PEM -pubout -out admin1.pub Enter pass phrase for admin.key: writing RSA key

Créez et signez un jeton d'enregistrement

Vous créez un jeton et vous le signez avec la clé privée que vous venez de générer à l'étape précédente.

Exemple — Créez un jeton d'enregistrement
  1. Utilisez la commande suivante pour démarrer la CLI CloudHSM :

    Linux
    $ /opt/cloudhsm/bin/cloudhsm-cli interactive
    Windows
    C:\Program Files\Amazon\CloudHSM\bin\> .\cloudhsm-cli.exe interactive
  2. Créez un jeton d'enregistrement en exécutant la commande quorum token-sign generate :

    aws-cloudhsm > quorum token-sign generate --service registration --token /path/tokenfile { "error_code": 0, "data": { "path": "/path/tokenfile" } }
  3. La commande quorum token-sign generate génère un jeton d'enregistrement sur le chemin de fichier spécifié. Inspectez le fichier du jeton :

    $ cat /path/tokenfile{ "version": "2.0", "tokens": [ { "approval_data": <approval data in base64 encoding>, "unsigned": <unsigned token in base64 encoding>, "signed": "" } ] }

    Le chemin d'accès au fichier se compose des éléments suivants :

    • approval_data : jeton de données aléatoire codé en base64 dont les données brutes ne dépassent pas le maximum de 245 octets.

    • non signé : un jeton codé en base64 et haché SHA256 de approval_data.

    • signé : jeton signé codé en base64 (signature) du jeton non signé, utilisant la clé privée RSA 2048 bits précédemment générée avec OpenSSL.

    Vous signez le jeton non signé avec la clé privée pour démontrer que vous avez accès à la clé privée. Vous aurez besoin du fichier de jeton d'enregistrement entièrement rempli d'une signature et de la clé publique pour enregistrer l'administrateur en tant qu'utilisateur du quorum auprès du AWS CloudHSM cluster.

Exemple — Signez le jeton d'enregistrement non signé
  1. Décodez le jeton non signé codé en base64 et placez-le dans un fichier binaire :

    $ echo -n '6BMUj6mUjjko6ZLCEdzGlWpR5sILhFJfqhW1ej3Oq1g=' | base64 -d > admin.bin
  2. Utilisez OpenSSL et la clé privée pour signer le jeton d'enregistrement non signé désormais binaire et créer un fichier de signature binaire :

    $ openssl pkeyutl -sign \ -inkey admin.key \ -pkeyopt digest:sha256 \ -keyform PEM \ -in admin.bin \ -out admin.sig.bin
  3. Encodez la signature binaire en base64 :

    $ base64 -w0 admin.sig.bin > admin.sig.b64
  4. Copiez et collez la signature codée en base64 dans le fichier de jeton :

    { "version": "2.0", "tokens": [ { "approval_data": <approval data in base64 encoding>, "unsigned": <unsigned token in base64 encoding>, "signed": <signed token in base64 encoding> } ] }

Enregistrez la clé publique avec le HSM

Après avoir créé une clé, l'administrateur doit enregistrer la clé publique auprès du AWS CloudHSM cluster.

Pour enregistrer une clé publique avec le HSM
  1. Utilisez la commande suivante pour démarrer la CLI CloudHSM.

    Linux
    $ /opt/cloudhsm/bin/cloudhsm-cli interactive
    Windows
    C:\Program Files\Amazon\CloudHSM\bin\> .\cloudhsm-cli.exe interactive
  2. À l'aide de la CLI CloudHSM, connectez-vous en tant qu'administrateur.

    aws-cloudhsm > login --username admin --role admin Enter password: { "error_code": 0, "data": { "username": "admin", "role": "admin" } }
  3. Utilisez la commande user change-quorum token-sign register pour enregistrer la clé publique. Pour plus d'informations, consultez l'exemple suivant ou utilisez la commande help user change-quorum token-sign register.

Exemple — Enregistrez une clé publique auprès AWS CloudHSM du cluster

L'exemple suivant montre comment utiliser la commande user change-quorum token-sign register de la CLI CloudHSM pour enregistrer la clé publique d'un administrateur avec le HSM. Pour utiliser cette commande, l’administrateur doit être connecté au HSM. Remplacez les valeurs suivantes par les vôtres :

aws-cloudhsm > user change-quorum token-sign register --public-key </path/admin.pub> --signed-token </path/tokenfile> { "error_code": 0, "data": { "username": "admin", "role": "admin" } }
Note

/path/admin.pub : chemin d'accès au fichier PEM à clé publique

Obligatoire : oui

/path/tokenfile : le chemin du fichier avec le jeton signé par la clé privée de l'utilisateur

Obligatoire : oui

Une fois que tous les administrateurs ont enregistré leurs clés publiques, le résultat de la commande user list l'indique dans le champ de quorum, indiquant la stratégie de quorum activée utilisée, comme indiqué ci-dessous :

aws-cloudhsm > user list { "error_code": 0, "data": { "users": [ { "username": "admin", "role": "admin", "locked": "false", "mfa": [], "quorum": [ { "strategy": "token-sign", "status": "enabled" } ], "cluster-coverage": "full" }, { "username": "admin2", "role": "admin", "locked": "false", "mfa": [], "quorum": [ { "strategy": "token-sign", "status": "enabled" } ], "cluster-coverage": "full" }, { "username": "admin3", "role": "admin", "locked": "false", "mfa": [], "quorum": [ { "strategy": "token-sign", "status": "enabled" } ], "cluster-coverage": "full" }, { "username": "admin4", "role": "admin", "locked": "false", "mfa": [], "quorum": [ { "strategy": "token-sign", "status": "enabled" } ], "cluster-coverage": "full" }, { "username": "app_user", "role": "internal(APPLIANCE_USER)", "locked": "false", "mfa": [], "quorum": [], "cluster-coverage": "full" } ] } }

Définition de la valeur minimale de quorum sur le HSM

Pour utiliser l'authentification par quorum, un administrateur doit se connecter au HSM, puis définir la valeur minimale de quorum. Il s'agit du nombre minimal d'approbations d’administrateur qui sont nécessaires pour effectuer des opérations de gestion des utilisateurs HSM. Tout administrateur sur le HSM peut définir la valeur minimale de quorum, y compris les administrateurs qui n'ont pas enregistré de clé pour la signature. Vous pouvez modifier la valeur minimale de quorum à tout moment ; pour plus d'informations, veuillez consulter Modifier la valeur minimale..

Pour définir la valeur minimale de quorum sur le HSM
  1. Utilisez la commande suivante pour démarrer la CLI CloudHSM.

    Linux
    $ /opt/cloudhsm/bin/cloudhsm-cli interactive
    Windows
    C:\Program Files\Amazon\CloudHSM\bin\> .\cloudhsm-cli.exe interactive
  2. À l'aide de la CLI CloudHSM, connectez-vous en tant qu'administrateur.

    aws-cloudhsm > login --username admin --role admin Enter password: { "error_code": 0, "data": { "username": "admin", "role": "admin" } }
  3. Utilisez la commande signe du jeton quorum set-quorum-value pour définir la valeur minimale de quorum. Pour plus d'informations, consultez l'exemple suivant ou utilisez la commande help quorum token-sign set-quorum-value.

Exemple - Définition de la valeur minimale de quorum sur le HSM

Cet exemple utilise une valeur minimale de quorum de deux (2). Vous pouvez choisir n'importe quelle valeur comprise entre deux (2) et huit (8), jusqu'au nombre total d’administrateurs sur le HSM. Dans cet exemple, le HSM compte quatre (4) administrateurs, la valeur maximale possible est donc de quatre (4).

Pour utiliser l'exemple de commande suivant, remplacez le nombre final (<2>) par la valeur minimale de quorum que vous préférez.

aws-cloudhsm > quorum token-sign set-quorum-value --service user --value <2> { "error_code": 0, "data": "Set quorum value successful" }

Dans cet exemple, le service identifie le service HSM dont vous définissez la valeur minimale de quorum. La commande signe du jeton quorum list-quorum-values répertorie les types, les noms et les descriptions des services HSM inclus dans le service.

Services d'administrateur : l'authentification par quorum est utilisée pour les services dotés de privilèges d'administrateur tels que la création d'utilisateurs, la suppression d'utilisateurs, la modification des mots de passe des utilisateurs, la définition des valeurs de quorum et la désactivation des fonctionnalités de quorum et de MFA.

Chaque type de service est ensuite décomposé en un nom de service éligible, qui contient un ensemble spécifique d'opérations de service prises en charge par le quorum qui peuvent être effectuées.

Nom du service Type de service Opérations de service
utilisateur Administrateur
  • créer un utilisateur

  • supprimer un utilisateur

  • modifier un mot de passe utilisateur

  • modifier la MFA d’un utilisateur

quorum Administrateur
  • signe du jeton quorum set-quorum-value

Utilisez la commande quorum token-sign list-quorum-values pour obtenir la valeur minimale du quorum pour un service.

aws-cloudhsm > quorum token-sign list-quorum-values { "error_code": 0, "data": { "user": 2, "quorum": 1 } }

La sortie de la commande quorum token-sign list-quorum-values précédente indique que la valeur minimale de quorum pour le service des utilisateurs HSM, responsable des opérations de gestion des utilisateurs, est désormais égale à deux (2). Une fois que vous avez terminé ces étapes, consultez Utilisation du quorum (M sur N).