Utilizzo dell'autenticazione del quorum per gli amministratori - AWS CloudHSM

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo dell'autenticazione del quorum per gli amministratori

Un amministratore dell'HSM può configurare l'autenticazione del quorum per le seguenti operazioni nel cluster AWS CloudHSM:

Dopo che il cluster AWS CloudHSM è stato configurato per l'autenticazione del quorum, gli amministratori non possono svolgere operazioni di gestione degli utenti HSM in modo autonomo. Nell'esempio seguente è mostrato l'output dopo che un amministratore ha tentato di creare un nuovo utente nell'HSM. Il comando ha esito negativo e viene restituito un errore che indica che è richiesta l'autenticazione del quorum.

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

Per svolgere un'operazione di gestione degli utenti HSM, un amministratore deve completare le seguenti attività:

Ottenere un token del quorum

Innanzitutto, l'amministratore deve utilizzare la CLI di CloudHSM per richiedere un token del quorum.

Per ottenere un token del quorum
  1. Utilizza il seguente comando per avviare la CLI di CloudHSM.

    Linux
    $ /opt/cloudhsm/bin/cloudhsm-cli interactive
    Windows
    C:\Program Files\Amazon\CloudHSM\bin\> .\cloudhsm-cli.exe interactive
  2. Utilizza il comando login ed esegui l'accesso al cluster come amministratore.

    aws-cloudhsm>login --username admin --role admin
  3. Utilizza il comando quorum token-sign generate per generare un token del quorum. Per ulteriori informazioni, vedi l'esempio seguente oppure utilizza il comando help quorum token-sign generate.

Esempio - Generare un token del quorum

In questo esempio si ottiene un token del quorum per l'amministratore con il nome utente admin, che viene salvato nel file admin.token. Per utilizzare il comando di esempio, sostituisci i valori i tuoi personali:

  • <admin>: il nome dell'amministratore che riceve il token. Deve essere lo stesso amministratore che ha eseguito l'accesso all'HSM e sta eseguendo il comando.

  • <admin.token>: il nome del file da usare per memorizzare il token del quorum.

Nel comando seguente, user identifica il nome del servizio per cui potrai utilizzare il token che stai generando. In questo caso, il token è destinato alle operazioni di gestione degli utenti HSM (servizio user).

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" } }

Il comando quorum token-sign generate genera un token del quorum per il servizio utente nel percorso del file specificato. Il file del token può essere ispezionato:

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

Il file del token comprende:

  • approval_data: un token di dati non elaborati con codifica base64 generato dall'HSM.

  • token: un token con codifica base64 sottoposto ad hashing SHA-256 di approval_data

  • firme: una serie di token con codifica base64 firmati (firme) del token non firmato, in cui ogni firma di un approvatore è sotto forma di valore letterale di un oggetto JSON:

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

    Ogni firma viene creata come conseguenza di un approvatore che utilizza la propria chiave privata RSA a 2048 bit corrispondente la cui chiave pubblica è stata registrata nell'HSM.

È possibile confermare l'esistenza del token del quorum per il servizio utente generato nel cluster CloudHSM eseguendo il comando quorum token-sign list:

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" } ] } }

Il tempo token-timeout-seconds indica il periodo di timeout in secondi per l'approvazione di un token generato prima della scadenza.

Ottenere le firme dagli amministratori di approvazione

Un amministratore che dispone di un token del quorum deve ottenerne l'approvazione da parte di altri amministratori. Per concedere l'approvazione, gli altri amministratori utilizzano la chiave di firma per firmare crittograficamente il token. Tale operazione viene svolta esternamente all'HSM.

Sono disponibili vari modi per firmare il token. L'esempio seguente mostra come eseguire questa operazione con OpenSSL. Per utilizzare un altro strumento di firma, assicurati che lo strumento utilizzi la chiave privata dell'amministratore (chiave di firma) per firmare un digest SHA-256 del token.

Esempio - Ottenere le firme dagli amministratori di approvazione

In questo esempio, l'amministratore che dispone del token (admin) necessita di almeno due (2) approvazioni. I seguenti comandi di esempio mostrano come due (2) amministratori possono utilizzare OpenSSL per firmare crittograficamente il token.

  1. Decodifica il token non firmato con codifica base64 e inseriscilo in un file binario:

    $echo -n '0l2LZkmAHZyAc1hPhyckOoVW33aGrgG77qmDHWQ3CJ8=' | base64 -d > admin.bin
  2. Utilizza OpenSSL e la rispettiva chiave privata dell'approvatore (admin3) per firmare il token non firmato del quorum ora binario per il servizio utente e creare un file di firma binario:

    $openssl pkeyutl -sign \ -inkey admin3.key \ -pkeyopt digest:sha256 \ -keyform PEM \ -in admin.bin \ -out admin.sig.bin
  3. Codifica la firma binaria in base64:

    $base64 -w0 admin.sig.bin > admin.sig.b64
  4. Infine, copia e incolla la firma con codifica base64 nel file token, seguendo il formato di valore letterale dell'oggetto JSON specificato in precedenza per la firma dell'approvatore:

    { "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==" } ] }

Approva il token sul cluster AWS CloudHSM ed esegui un'operazione di gestione degli utenti

Dopo aver ottenuto le approvazioni/firme necessarie, come descritto nella sezione precedente, l'amministratore può fornire quel token al cluster AWS CloudHSM ed effettuare una delle seguenti operazioni di gestione degli utenti:

Per ulteriori informazioni sull'utilizzo di questi comandi, consulta Uso della CLI di CloudHSM.

Durante la transazione, il token verrà approvato all'interno del cluster AWS CloudHSM ed eseguirà l'operazione di gestione degli utenti richiesta. La riuscita dell'operazione di gestione degli utenti dipende sia da un token del quorum approvato valido e sia da un'operazione di gestione degli utenti valida.

L'amministratore può utilizzare il token per un'unica operazione. Quando tale operazione va a buon fine, il token non è più valido. Per eseguire un'altra operazione di gestione degli utenti HSM, l'amministratore deve ripetere la procedura descritta sopra. Vale a dire che l'amministratore deve generare un nuovo token del quorum e nuove firme dagli approvatori, quindi approvare e utilizzare il nuovo token nell'HSM con l'operazione di gestione degli utenti richiesta.

Nota

Il token del quorum è valido solo finché la sessione di accesso corrente è aperta. Se ti disconnetti dalla CLI di CloudHSM o se la rete si disconnette, il token non è più valido. Analogamente, un token autorizzato può essere utilizzato solo all'interno della CLI di CloudHSM. Non può essere utilizzato per l'autenticazione in un'applicazione diversa.

Esempio Creare un nuovo utente amministratore

Nel seguente esempio, un amministratore che ha effettuato l'accesso crea un nuovo utente nell'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'amministratore immette quindi il comando user list per confermare la creazione del nuovo utente:

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" } ] } }

Se l'amministratore tenta di eseguire un'altra operazione di gestione degli utenti HSM, questa avrà esito negativo con un errore di autenticazione del quorum:

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

Come mostrato di seguito, il comando quorum token-sign list mostra che l'amministratore non ha token approvati. Per eseguire un'altra operazione di gestione degli utenti HSM, l'amministratore deve generare un nuovo token del quorum, ottenere nuove firme dagli approvatori ed eseguire l'operazione di gestione degli utenti desiderata con l'argomento --approval per fornire il token del quorum da approvare e utilizzato durante l'esecuzione dell'operazione di gestione degli utenti.

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