Gestion des utilisateurs avec authentification par quorum activée pour AWS CloudHSM l'utilisation du Cloud HSM CLI - 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.

Gestion des utilisateurs avec authentification par quorum activée pour AWS CloudHSM l'utilisation du Cloud HSM CLI

Un AWS CloudHSM administrateur du module de sécurité matérielle (HSM) peut configurer l'authentification par quorum pour les opérations suivantes dans le AWS CloudHSM cluster :

Une fois le AWS CloudHSM cluster configuré pour l'authentification par quorum, les administrateurs ne peuvent pas effectuer eux-mêmes les opérations de gestion des HSM utilisateurs. L'exemple suivant montre le résultat lorsqu'un administrateur tente de créer un nouvel utilisateur sur leHSM. La commande échoue avec une erreur indiquant que l'authentification par quorum est requise.

aws-cloudhsm > user create --username user1 --role crypto-user Enter password: Confirm password: { "error_code": 1, "data": "Quorum approval is required for this operation" }

Pour effectuer une opération de gestion des HSM utilisateurs, un administrateur doit effectuer les tâches suivantes :

Étape 1. Obtention d'un jeton de quorum

Tout d'abord, l'administrateur doit utiliser Cloud HSM CLI pour demander un jeton de quorum.

Pour obtenir un jeton de quorum
  1. Utilisez la commande suivante pour démarrer Cloud HSMCLI.

    Linux
    $ /opt/cloudhsm/bin/cloudhsm-cli interactive
    Windows
    C:\Program Files\Amazon\CloudHSM\bin\> .\cloudhsm-cli.exe interactive
  2. Utilisez la commande login et connectez-vous au cluster en tant qu'administrateur.

    aws-cloudhsm>login --username admin --role admin
  3. Utilisez la commande quorum token-sign generate pour générer un jeton de quorum. Pour plus d'informations, consultez l'exemple suivant ou utilisez la commande help quorum token-sign generate.

Exemple — Génère un jeton de quorum

Cet exemple obtient un jeton de quorum pour l’administrateur avec le nom d'utilisateur admin et enregistre le jeton dans un fichier nommé admin.token. Pour utiliser l'exemple de commande, remplacez ces valeurs par les vôtres :

  • <admin> — Le nom de l'administrateur qui reçoit le jeton. Il doit s'agir du même administrateur qui est connecté au HSM et qui exécute cette commande.

  • <admin.token> — Nom du fichier à utiliser pour stocker le jeton de quorum.

Dans la commande suivante, user identifie le nom de service pour lequel vous pouvez utiliser le jeton que vous générez. Dans ce cas, le jeton est destiné aux opérations de gestion des HSM utilisateurs (userservice).

aws-cloudhsm > login --username <ADMIN> --role <ADMIN> --password <PASSWORD> { "error_code": 0, "data": { "username": "admin", "role": "admin" } } aws-cloudhsm > quorum token-sign generate --service user --token </path/admin.token> { "error_code": 0, "data": { "path": "/home/tfile" } }

La commande quorum token-sign generate génère un jeton de quorum de service utilisateur sur le chemin de fichier spécifié. Le fichier du jeton peut être inspecté :

$cat </path/admin.token> { "version": "2.0", "approval_data": "AAEAAwAAABgAAAAAAAAAAJ9eFkfcP3mNzJAlfK+OWbNhZG1pbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABj5vbeAAAAAAAAAAAAAQADAAAAFQAAAAAAAAAAW/v5Euk83amq1fij0zyvD2FkbWluAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPm9t4AAAAAAAAAAAABAAMAAAAUAAAAAAAAAABDw2XDwfK4hB8a15Xh1E0nYWRtaW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY+b23gAAAAAAAAAA", "token": "0l2LZkmAHZyAc1hPhyckOoVW33aGrgG77qmDHWQ3CJ8=", "signatures": [] }

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

  • approval_data : jeton de données brutes codé en base64 généré par le. HSM

  • jeton : un jeton codé en base64 et SHA haché -256 du fichier approval_data

  • signatures : un tableau de jetons signés codés en base64 (signatures) du jeton non signé, où chaque signature d'un approbateur prend la forme d'un JSON objet littéral :

    { "username": "<APPROVER_USERNAME>", "signature": "<APPROVER_RSA2048_BIT_SIGNATURE>" }

    Chaque signature est créée à partir du résultat d'un approbateur à l'aide de la clé privée RSA 2048 bits correspondante dont la clé publique a été enregistrée auprès du.. HSM

L'existence du jeton de quorum du service utilisateur généré sur le HSM cluster Cloud peut être confirmée en exécutant la quorum token-sign list commande :

aws-cloudhsm > quorum token-sign list { "error_code": 0, "data": { "tokens": [ { "username": "admin", "service": "user", "approvals-required": { "value": 2 }, "number-of-approvals": { "value": 0 }, "token-timeout-seconds": { "value": 597 }, "cluster-coverage": "full" } ] } }

L’heure token-timeout-seconds indique le délai d'expiration en secondes pour qu'un jeton généré soit approuvé avant son expiration.

Étape 2. Obtention des signatures des administrateurs en charge de l'approbation

Un administrateur qui possède un jeton de quorum doit obtenir le jeton approuvé par d'autres administrateurs. Pour donner leur approbation, les autres administrateurs utilisent leur clé de signature pour signer le jeton de façon cryptographique. Ils le font en dehors duHSM.

Il existe de nombreuses façons différentes de signer le jeton. L'exemple suivant montre comment procéder avec Open SSL. Pour utiliser un autre outil de signature, assurez-vous qu'il utilise la clé privée de l'administrateur (clé de signature) pour signer un condensé SHA -256 du jeton.

Exemple - Obtention des signatures des administrateurs en charge de l'approbation

Dans cet exemple, l’administrateur qui possède le jeton (admin) a besoin d'au moins deux (2) approbations. Les exemples de commandes suivants montrent comment deux (2) administrateurs peuvent utiliser Open SSL pour signer cryptographiquement le jeton.

  1. Décodez le jeton non signé codé en base64 et placez-le dans un fichier binaire :

    $echo -n '0l2LZkmAHZyAc1hPhyckOoVW33aGrgG77qmDHWQ3CJ8=' | base64 -d > admin.bin
  2. Utilisez Open SSL et la clé privée correspondante de l'approbateur (admin3) pour signer le jeton non signé du quorum désormais binaire pour le service utilisateur et créer un fichier de signature binaire :

    $openssl pkeyutl -sign \ -inkey admin3.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. Enfin, copiez et collez la signature codée en base64 dans le fichier de jeton, en suivant le format littéral d'JSONobjet spécifié précédemment pour la signature de l'approbateur :

    { "version": "2.0", "approval_data": "AAEAAwAAABgAAAAAAAAAAJ9eFkfcP3mNzJAlfK+OWbNhZG1pbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABj5vbeAAAAAAAAAAAAAQADAAAAFQAAAAAAAAAAW/v5Euk83amq1fij0zyvD2FkbWluAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPm9t4AAAAAAAAAAAABAAMAAAAUAAAAAAAAAABDw2XDwfK4hB8a15Xh1E0nYWRtaW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY+b23gAAAAAAAAAA", "token": "0l2LZkmAHZyAc1hPhyckOoVW33aGrgG77qmDHWQ3CJ8=", "signatures": [ { "username": "admin2", "signature": "O6qx7/mUaVkYYVr1PW7l8JJko+Kh3e8zBIqdk3tAiNy+1rW+OsDtvYujhEU4aOFVLcrUFmyB/CX9OQmgJLgx/pyK+ZPEH+GoJGqk9YZ7X1nOXwZRP9g7hKV+7XCtg9TuDFtHYWDpBfz2jWiu2fXfX4/jTs4f2xIfFPIDKcSP8fhxjQ63xEcCf1jzGha6rDQMu4xUWWdtDgfT7um7EJ9dXNoHqLB7cTzphaubNaEFbFPXQ1siGmYKmvETlqe/ssktwyruGFLpXs1n0tJOEglGhx2qbYTs+omKWZdORl5WIWEXW3IXw/Dg5vVObrNpvG0eZKO8nSMc27+cyPySc+ZbNw==" }, { "username": "admin3", "signature": "O6qx7/mUaVkYYVr1PW7l8JJko+Kh3e8zBIqdk3tAiNy+1rW+OsDtvYujhEU4aOFVLcrUFmyB/CX9OQmgJLgx/pyK+ZPEH+GoJGqk9YZ7X1nOXwZRP9g7hKV+7XCtg9TuDFtHYWDpBfz2jWiu2fXfX4/jTs4f2xIfFPIDKcSP8fhxjQ63xEcCf1jzGha6rDQMu4xUWWdtDgfT7um7EJ9dXNoHqLB7cTzphaubNaEFbFPXQ1siGmYKmvETlqe/ssktwyruGFLpXs1n0tJOEglGhx2qbYTs+omKWZdORl5WIWEXW3IXw/Dg5vVObrNpvG0eZKO8nSMc27+cyPySc+ZbNw==" } ] }

Étape 3. Approuver le jeton sur le cluster AWS CloudHSM et exécuter une opération de gestion des utilisateurs

Une fois qu'un administrateur a obtenu les approbations/signatures nécessaires, comme indiqué dans la section précédente, il peut fournir ce jeton au cluster AWS CloudHSM avec l'une des opérations de gestion des utilisateurs suivantes :

Pour plus d'informations sur l'utilisation de ces commandes, consultez Gestion des utilisateurs avec le Cloud HSM CLI.

Au cours de la transaction, le jeton sera approuvé au sein du AWS CloudHSM cluster et exécutera l'opération de gestion des utilisateurs demandée. Le succès de l'opération de gestion des utilisateurs dépend à la fois d'un jeton de quorum approuvé valide et d'une opération de gestion des utilisateurs valide.

L’administrateur peut utiliser le jeton pour une seule opération. Lorsque cette opération réussit, le jeton n'est plus valide. Pour effectuer une autre opération de gestion des HSM utilisateurs, l'administrateur doit répéter le processus décrit ci-dessus. En d'autres termes, l'administrateur doit générer un nouveau jeton de quorum, obtenir de nouvelles signatures de la part des approbateurs, puis approuver et utiliser le nouveau jeton lors de l'HSMopération de gestion des utilisateurs demandée.

Note

Le jeton de quorum n'est valide que tant que votre session de connexion en cours est ouverte. Si vous vous déconnectez du Cloud HSM CLI ou si le réseau se déconnecte, le jeton n'est plus valide. De même, un jeton autorisé ne peut être utilisé que dans le Cloud HSMCLI. Il ne peut pas être utilisé pour s'authentifier dans une autre application.

Exemple Création d'un nouvel utilisateur en tant qu'administrateur

Dans l'exemple suivant, un administrateur connecté crée un nouvel utilisateur sur HSM :

aws-cloudhsm > user create --username user1 --role crypto-user --approval /path/admin.token Enter password: Confirm password: { "error_code": 0, "data": { "username": "user1", "role": "crypto-user" } }

L'administrateur saisit ensuite la commande user list pour confirmer la création du nouvel utilisateur :

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": "user1", "role": "crypto-user", "locked": "false", "mfa": [], "quorum": [], "cluster-coverage": "full" }, { "username": "app_user", "role": "internal(APPLIANCE_USER)", "locked": "false", "mfa": [], "quorum": [], "cluster-coverage": "full" } ] } }

Si l'administrateur tente d'effectuer une autre opération de gestion des HSM utilisateurs, elle échoue avec une erreur d'authentification par quorum :

aws-cloudhsm > user delete --username user1 --role crypto-user { "error_code": 1, "data": "Quorum approval is required for this operation" }

Comme indiqué ci-dessous, la commande quorum token-sign list indique que l'administrateur n'a aucun jeton approuvé. Pour effectuer une autre opération de gestion des HSM utilisateurs, l'administrateur doit générer un nouveau jeton de quorum, obtenir de nouvelles signatures de la part des approbateurs et exécuter l'opération de gestion des utilisateurs souhaitée avec l'argument --approval pour fournir le jeton de quorum à approuver et à utiliser pendant l'exécution de l'opération de gestion des utilisateurs.

aws-cloudhsm > quorum token-sign list { "error_code": 0, "data": { "tokens": [] } }