

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.

# Administración de usuarios con autenticación de quórum habilitada para la utilidad AWS CloudHSM de administración
<a name="quorum-authentication-crypto-officers"></a>

Un [oficial de AWS CloudHSM cifrado (CO)](understanding-users-cmu.md#crypto-officer) del módulo de seguridad de hardware (HSM) puede configurar la autenticación de quórum para las siguientes operaciones en el HSM:
+ Creación de usuarios de HSM
+ Eliminación de usuarios de HSM
+ Cambio de la contraseña de otro usuario de HSM

Una vez configurado el HSM para la autenticación de quórum, COs no podrá realizar las operaciones de administración de usuarios del HSM por sí solo. El siguiente ejemplo muestra el resultado cuando un CO intenta crear un usuario nuevo en el HSM. Se produce un error en el comando, `RET_MXN_AUTH_FAILED`, lo que indica un error en la autenticación de cuórum.

```
aws-cloudhsm > createUser CU user1 password
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. AWS does NOT synchronize these changes automatically with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************

Do you want to continue(y/n)? y
Creating User user1(CU) on 2 nodes
createUser failed: RET_MXN_AUTH_FAILED
creating user on server 0(10.0.2.14) failed

Retry/Ignore/Abort?(R/I/A): A
```

Para realizar una operación de administración de usuarios de HSM, un CO debe completar las siguientes tareas:

1. [Obtenga un *token de cuórum*](#quorum-crypto-officers-get-token).

1. [Obtenga las aprobaciones (firmas)](#quorum-crypto-officers-get-approval-signatures) de otros. COs

1. [Apruebe el token en el HSM](#quorum-crypto-officers-approve-token).

1. [Realice la operación de administración de usuarios de HSM](#quorum-crypto-officers-use-token).

Si aún no ha configurado el HSM para la autenticación de quórum COs, hágalo ahora. Para obtener más información, consulte [Configuración por primera vez](quorum-authentication-crypto-officers-first-time-setup.md).

## Paso 1. Cómo obtener un token de cuórum
<a name="quorum-crypto-officers-get-token"></a>

En primer lugar, el CO debe utilizar la herramienta de línea de comandos cloudhsm\$1mgmt\$1util para solicitar un *token de quórum*.

**Para obtener un token de cuórum**

1. Utilice el siguiente comando para iniciar la herramienta de línea de comandos cloudhsm\$1mgmt\$1util.

   ```
   $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
   ```

1. Utilice el comando **loginHSM** para iniciar sesión en los HSM como CO. Para obtener más información, consulte [Administrar usuarios del HSM con la utilidad de administración de CloudHSM (CMU)](manage-hsm-users-cmu.md).

1. Utilice el comando **getToken** para obtener un token de cuórum. Para obtener más información, consulte el siguiente ejemplo o utilice el comando **help getToken**.

**Example : obtener un token de cuórum**  
Este ejemplo obtiene un token de cuórum para el CO con nombre de usuario officer1 y guarda el token en un archivo denominado `officer1.token`. Para utilizar el comando de ejemplo, sustituya estos valores por los suyos:  
+ *officer1*— El nombre del CO que va a recibir el token. Debe ser el mismo CO que ha iniciado sesión en el HSM y está ejecutando este comando.
+ *officer1.token*— El nombre del archivo que se utilizará para almacenar el token de quórum.
En el siguiente comando, `3` identifica el *servicio* para el que puede utilizar el token que está obteniendo. En este caso, el token es para las operaciones de administración de usuarios de HSM (servicio 3). Para obtener más información, consulte [Paso 2. Cómo establecer el valor mínimo de cuórum en el HSM](quorum-authentication-crypto-officers-first-time-setup.md#quorum-crypto-officers-set-quorum-minimum-value).  

```
aws-cloudhsm > getToken 3 officer1 officer1.token
getToken success on server 0(10.0.2.14)
Token:
Id:1
Service:3
Node:1
Key Handle:0
User:officer1
getToken success on server 1(10.0.1.4)
Token:
Id:1
Service:3
Node:0
Key Handle:0
User:officer1
```

## Paso 2. Obtenga firmas al aprobar COs
<a name="quorum-crypto-officers-get-approval-signatures"></a>

Un CO que tenga un token de quórum debe conseguir que otro lo apruebe. COs Para dar su aprobación, el otro COs utiliza su clave de firma para firmar criptográficamente el token. Lo hacen fuera del HSM.

Existen muchas maneras diferentes de firmar el token. El siguiente ejemplo muestra cómo hacerlo con [OpenSSL](https://www.openssl.org/). Para utilizar otra herramienta de firma, asegúrese de que la herramienta utiliza la clave privada del CO (clave de firma) para firmar un resumen SHA-256 del token.

**Example — Obtenga firmas a partir de la aprobación COs**  
En este ejemplo, el CO que tiene el token (officer1) necesita al menos dos aprobaciones. Los siguientes comandos de ejemplo muestran cómo dos COs pueden usar OpenSSL para firmar criptográficamente el token.  
En el primer comando, officer1 firma su propio token. Para utilizar los siguientes comandos de ejemplo, sustituya estos valores por los suyos:  
+ *officer1.key*y*officer2.key*: el nombre del archivo que contiene la clave de firma de la entidad de certificación.
+ *officer1.token.sig1*y *officer1.token.sig2* — El nombre del archivo que se va a utilizar para almacenar la firma. Asegúrese de guardar cada firma en un archivo diferente.
+ *officer1.token*— El nombre del archivo que contiene el token que la CO está firmando.

```
$ openssl dgst -sha256 -sign officer1.key -out officer1.token.sig1 officer1.token
Enter pass phrase for officer1.key:
```
En el siguiente comando, officer2 firma el mismo token.  

```
$ openssl dgst -sha256 -sign officer2.key -out officer1.token.sig2 officer1.token
Enter pass phrase for officer2.key:
```

## Paso 3. Aprobación del token firmado en el HSM
<a name="quorum-crypto-officers-approve-token"></a>

Una vez que una CO obtiene el número mínimo de aprobaciones (firmas) de otra COs, debe aprobar el token firmado en el HSM.

**Para aprobar el token firmado en el HSM**

1. Cree un archivo de aprobación del token. Para obtener más información, consulte el siguiente ejemplo.

1. Utilice el siguiente comando para iniciar la herramienta de línea de comandos cloudhsm\$1mgmt\$1util.

   ```
   $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
   ```

1. Utilice el comando **loginHSM** para iniciar sesión en los HSM como CO. Para obtener más información, consulte [Administrar usuarios del HSM con la utilidad de administración de CloudHSM (CMU)](manage-hsm-users-cmu.md).

1. Utilice el comando **approveToken** para aprobar el token firmado, transmitiendo el archivo de aprobación del token. Para obtener más información, consulte el siguiente ejemplo.

**Example : creación de un archivo de aprobación del token y aprobar el token firmado en el HSM**  
El archivo de aprobación del token es un archivo de texto en un formato en particular que el HSM necesita. El archivo contiene información sobre el token, los aprobadores y las firmas de los aprobadores. Se muestra a continuación un archivo de aprobación del token de ejemplo.  

```
# For "Multi Token File Path", type the path to the file that contains
# the token. You can type the same value for "Token File Path", but
# that's not required. The "Token File Path" line is required in any
# case, regardless of whether you type a value.
Multi Token File Path = officer1.token;
Token File Path = ;

# Total number of approvals
Number of Approvals = 2;

# Approver 1
# Type the approver's type, name, and the path to the file that
# contains the approver's signature.
Approver Type = 2; # 2 for CO, 1 for CU
Approver Name = officer1;
Approval File = officer1.token.sig1;

# Approver 2
# Type the approver's type, name, and the path to the file that
# contains the approver's signature.
Approver Type = 2; # 2 for CO, 1 for CU
Approver Name = officer2;
Approval File = officer1.token.sig2;
```
Después de crear el archivo de aprobación del token, el CO utiliza la herramienta de línea de comandos cloudhsm\$1mgmt\$1util para iniciar sesión en el HSM. El CO utiliza después el comando **approveToken** para aprobar el token, tal y como se muestra en el siguiente ejemplo. *approval.txt*Sustitúyalo por el nombre del archivo de aprobación del token.  

```
aws-cloudhsm > approveToken approval.txt
approveToken success on server 0(10.0.2.14)
approveToken success on server 1(10.0.1.4)
```
Cuando este comando se ejecuta correctamente, el HSM ha aprobado el token de cuórum. Para comprobar el estado de un token, utilice el comando **listTokens**, tal y como se muestra en el siguiente ejemplo. El resultado del comando muestra que el token tiene el número necesario de aprobaciones.  
El tiempo de validez del token indica durante cuánto tiempo se garantiza que el token persista en el HSM. Incluso después de que transcurra el tiempo de validez del token (cero segundos), puede seguir usando el token.  

```
aws-cloudhsm > listTokens
=====================
    Server 0(10.0.2.14)
=====================
-------- Token - 0 ----------
Token:
Id:1
Service:3
Node:1
Key Handle:0
User:officer1
Token Validity: 506 sec
Required num of approvers : 2
Current num of approvals : 2
Approver-0: officer1
Approver-1: officer2
Num of tokens = 1

=====================
    Server 1(10.0.1.4)
=====================
-------- Token - 0 ----------
Token:
Id:1
Service:3
Node:0
Key Handle:0
User:officer1
Token Validity: 506 sec
Required num of approvers : 2
Current num of approvals : 2
Approver-0: officer1
Approver-1: officer2
Num of tokens = 1

listTokens success
```

## Paso 4. Utilización del token para operaciones de administración de usuarios
<a name="quorum-crypto-officers-use-token"></a>

Una vez que un CO tiene un token con el número necesario de aprobaciones, tal y como se muestra en la sección anterior, el CO puede realizar una de las siguientes operaciones de administración de usuarios de HSM:
+ Crear un usuario de HSM con el comando [createUser](cloudhsm_mgmt_util-createUser.md)
+ Eliminar un usuario de HSM con el comando **deleteUser**
+ Cambiar la contraseña de un usuario de HSM diferente con el comando **changePswd**

Para obtener más información acerca del uso de estos comandos, consulte [Usuarios de HSM](manage-hsm-users.md).

El CO puede utilizar el token para una sola operación. Cuando dicha operación se realiza correctamente, el token ya no es válido. Para hacer otra operación de administración de usuarios de HSM, el CO tiene que obtener un token de cuórum nuevo, obtener firmas nuevas de los aprobadores y aprobar el token nuevo en el HSM.

**nota**  
El token M de N solo será válido mientras se mantenga la sesión iniciada actual. Si cierra sesión en la cloudhsm\$1mgmt\$1util o si la red se desconecta, el token perderá su validez. Del mismo modo, un token autorizado solo se puede usar en cloudhsm\$1mgmt\$1util y no se puede usar para autenticarse en otra aplicación.

En el siguiente comando de ejemplo, el CO crea un usuario nuevo en el HSM.

```
aws-cloudhsm > createUser CU user1 <password>
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. AWS does NOT synchronize these changes automatically with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************

Do you want to continue(y/n)? y
Creating User user1(CU) on 2 nodes
```

Una vez que el comando anterior se ejecuta correctamente, otro comando **listUsers** posterior muestra al usuario nuevo.

```
aws-cloudhsm > listUsers
Users on server 0(10.0.2.14):
Number of users found:8

    User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
         1              PCO             admin                                    NO               0               NO
         2              AU              app_user                                 NO               0               NO
         3              CO              officer1                                YES               0               NO
         4              CO              officer2                                YES               0               NO
         5              CO              officer3                                YES               0               NO
         6              CO              officer4                                YES               0               NO
         7              CO              officer5                                YES               0               NO
         8              CU              user1                                    NO               0               NO
Users on server 1(10.0.1.4):
Number of users found:8

    User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
         1              PCO             admin                                    NO               0               NO
         2              AU              app_user                                 NO               0               NO
         3              CO              officer1                                YES               0               NO
         4              CO              officer2                                YES               0               NO
         5              CO              officer3                                YES               0               NO
         6              CO              officer4                                YES               0               NO
         7              CO              officer5                                YES               0               NO
         8              CU              user1                                    NO               0               NO
```

Si el CO intenta realizar otra operación de administración de usuarios de HSM, da error con un error de autenticación de cuórum, tal y como se muestra en el siguiente ejemplo.

```
aws-cloudhsm > deleteUser CU user1
Deleting user user1(CU) on 2 nodes
deleteUser failed: RET_MXN_AUTH_FAILED
deleteUser failed on server 0(10.0.2.14)

Retry/rollBack/Ignore?(R/B/I): I
deleteUser failed: RET_MXN_AUTH_FAILED
deleteUser failed on server 1(10.0.1.4)

Retry/rollBack/Ignore?(R/B/I): I
```

El comando **listTokens** muestra que el CO no tiene ningún token aprobado, tal y como puede verse en el siguiente ejemplo. Para realizar otra operación de administración de usuarios de HSM, el CO tiene que obtener un token de cuórum nuevo, obtener firmas nuevas de los aprobadores y aprobar el token nuevo en el HSM.

```
aws-cloudhsm > listTokens
=====================
    Server 0(10.0.2.14)
=====================
Num of tokens = 0

=====================
    Server 1(10.0.1.4)
=====================
Num of tokens = 0

listTokens success
```