Configurar la autenticación de cuórum para los administradores de AWS CloudHSM mediante la CLI de CloudHSM - AWS CloudHSM

Configurar la autenticación de cuórum para los administradores de AWS CloudHSM mediante la CLI de CloudHSM

En los siguientes temas, se describen los pasos que debe seguir para configurar su módulo de seguridad de hardware (HSM) de forma que los administradores de AWS CloudHSM puedan usar la autenticación de cuórum. Debe seguir estos pasos solo una vez cuando configure por primera vez la autenticación de cuórum para administradores. Después de completar estos pasos, consulte Administración de usuarios con autenticación de cuórum habilitada para AWS CloudHSM mediante la CLI de CloudHSM.

Requisitos previos

Para comprender este ejemplo, debe conocer la CLI de CloudHSM. En este ejemplo, el clúster de AWS CloudHSM tiene dos HSM, cada uno de ellos con el mismo administrador, tal y como se muestra en el siguiente resultado del comando user list. Para obtener más información sobre la creación de usuarios, consulte Administración de usuarios con la CLI de 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" } ] } }

Paso 1. Creación y registro de una clave de firma

Para usar la autenticación de cuórum, cada administrador debe completar todos los pasos indicados:

Creación de un par de claves RSA

Hay muchas formas de crear y proteger un par de claves. El siguiente ejemplo muestra cómo hacerlo con OpenSSL.

ejemplo : creación de una clave privada con OpenSSL

El siguiente ejemplo ilustra cómo utilizar OpenSSL para crear una clave RSA de 2048 bits que está protegida por una frase de contraseña. Para utilizar este ejemplo, sustituya <admin.key> por el nombre del archivo donde desea almacenar la clave.

$ 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:

A continuación, genere la clave pública usando la clave privada que acaba de crear.

ejemplo : creación de una clave pública con OpenSSL

El siguiente ejemplo muestra cómo usar OpenSSL para crear una clave pública a partir de la clave privada que acaba de crear.

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

Creación y firma de un token de registro

Cree un token y fírmelo con la clave privada que acaba de generar en el paso anterior.

ejemplo Creación de un token de registro
  1. Use el siguiente comando para iniciar la CLI de CloudHSM:

    Linux
    $ /opt/cloudhsm/bin/cloudhsm-cli interactive
    Windows
    C:\Program Files\Amazon\CloudHSM\bin\> .\cloudhsm-cli.exe interactive
  2. Cree un token de registro ejecutando el comando quorum token-sign generate:

    aws-cloudhsm > quorum token-sign generate --service registration --token /path/tokenfile { "error_code": 0, "data": { "path": "/path/tokenfile" } }
  3. El comando quorum token-sign generate genera un token de registro en la ruta de archivo especificada. Inspeccione el archivo del token:

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

    El archivo del token consta de lo siguiente:

    • approval_data: un token de datos aleatorios codificado en base64 cuyos datos sin procesar no exceden el máximo de 245 bytes.

    • unsigned: un token de approval_data codificado en base64 y con hash SHA-256

    • signed: un token firmado (firma) codificado en base64 del token sin firmar que emplea la clave privada RSA de 2048 bits generada anteriormente con OpenSSL.

    Firme el token sin firmar con la clave privada para demostrar que tiene acceso a la clave privada. Necesitará completar el archivo del token de registro con una firma y la clave pública para registrar al administrador como usuario de cuórum en el clúster de AWS CloudHSM.

ejemplo : firme el token de registro sin firmar.
  1. Decodifique el token sin firmar codificado en base64 e introdúzcalo en un archivo binario:

    $ echo -n '6BMUj6mUjjko6ZLCEdzGlWpR5sILhFJfqhW1ej3Oq1g=' | base64 -d > admin.bin
  2. Use OpenSSL y la clave privada para firmar el token de registro ahora binario sin firmar, y cree un archivo de firma binaria:

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

    $ base64 -w0 admin.sig.bin > admin.sig.b64
  4. Copie y pegue la firma codificada en base64 en el archivo del token:

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

Cómo registrar una clave pública con el HSM

Tras crear una clave, el administrador debe registrar la clave pública en el clúster de AWS CloudHSM.

Para registrar una clave pública en el HSM
  1. Use el siguiente comando para iniciar la CLI de CloudHSM:

    Linux
    $ /opt/cloudhsm/bin/cloudhsm-cli interactive
    Windows
    C:\Program Files\Amazon\CloudHSM\bin\> .\cloudhsm-cli.exe interactive
  2. Inicie sesión en la CLI de CloudHSM como administrador.

    aws-cloudhsm > login --username admin --role admin Enter password: { "error_code": 0, "data": { "username": "admin", "role": "admin" } }
  3. Utilice el comando Registro de una estrategia de cuórum con firma de token de un usuario mediante la CLI de CloudHSM para registrar la clave pública. Para obtener más información, consulte el siguiente ejemplo o utilice el comando help user change-quorum token-sign register.

ejemplo : registre una clave pública con el clúster de AWS CloudHSM.

En el siguiente ejemplo, se explica cómo se utiliza el comando user change-quorum token-sign register la CLI de CloudHSM para registrar una clave pública del administrador con el HSM. Para utilizar este comando, el administrador tiene que haber iniciado sesión en el HSM. Reemplace estos valores por sus propios valores:

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

/path/admin.pub: ruta del archivo PEM de clave pública

Obligatorio: sí

/path/tokenfile: ruta del archivo con el token firmado por la clave privada del usuario

Obligatorio: sí

Una vez que todos los administradores hayan registrado sus claves públicas, el resultado del comando user list mostrará lo siguiente en el campo de cuórum e indicará la estrategia de cuórum habilitada, tal como se muestra a continuación:

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

Paso 2. Cómo establecer el valor mínimo de cuórum en el HSM

Para utilizar autenticación de cuórum para administradores, un administrador debe iniciar sesión en el HSM y, a continuación, establecer el valor mínimo de cuórum. Este es el número mínimo de aprobaciones del administrador necesarias para realizar las operaciones de administración de usuarios de HSM. Cualquier administrador en el HSM puede establecer el valor mínimo de cuórum, incluidos los administradores que no han registrado una clave para firmar. Puede cambiar el valor mínimo del cuórum en cualquier momento; para obtener más información, consulte Cambio del valor mínimo.

Para establecer el valor mínimo de cuórum en el HSM
  1. Use el siguiente comando para iniciar la CLI de CloudHSM:

    Linux
    $ /opt/cloudhsm/bin/cloudhsm-cli interactive
    Windows
    C:\Program Files\Amazon\CloudHSM\bin\> .\cloudhsm-cli.exe interactive
  2. Inicie sesión en la CLI de CloudHSM como administrador.

    aws-cloudhsm > login --username admin --role admin Enter password: { "error_code": 0, "data": { "username": "admin", "role": "admin" } }
  3. Utilice el comando Actualización de un valor de cuórum mediante la CLI de CloudHSM para establecer el valor mínimo de cuórum. Para obtener más información, consulte el siguiente ejemplo o utilice el comando help quorum token-sign set-quorum-value.

ejemplo : establecimiento del valor mínimo de cuórum del HSM

Este ejemplo utiliza un valor mínimo de cuórum de dos (2). Puede elegir cualquier valor entre dos (2) y ocho (8), hasta alcanzar el número total de administradores en el HSM. En este ejemplo, el HSM tiene cuatro (4) administradores, por lo que el valor máximo posible es cuatro (4).

Para utilizar el siguiente comando de ejemplo, reemplace el número final (<2>) por el valor mínimo de cuórum preferido.

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

En este ejemplo, el servicio identifica el servicio HSM cuyo valor mínimo de quórum está establecido. El comando Mostrar los valores de cuórum mediante la CLI de CloudHSM muestra los tipos, nombres y descripciones de los servicios de HSM que se incluyen en el servicio.

Servicios de administración: la autenticación de cuórum se utiliza para los servicios con privilegios de administrador, como la creación y eliminación de usuarios, el cambio de las contraseñas de los usuarios, la configuración de los valores de cuórum y la desactivación de las capacidades de cuórum y MFA.

Además, cada tipo de servicio se divide en un nombre de servicio válido que contiene un conjunto específico de operaciones de servicio compatibles con cuórum que se pueden realizar.

Nombre del servicio Tipo de servicio Operaciones de servicio
usuario Administrador
  • user create

  • user delete

  • user change-password

  • user change-mfa

quorum Administrador
  • quorum token-sign set-quorum-value

cluster1 Administrador
  • cluster mtls register-trust-anchor

  • cluster mtls deregister-trust-anchor

  • cluster mtls set-enforcement

[1] El servicio de clústeres está disponible exclusivamente en hsm2m.medium

Utilice el comando quorum token-sign list-quorum-values para obtener el valor mínimo de cuórum del servicio.

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

El resultado del comando quorum token-sign list-quorum-values anterior muestra que el valor mínimo de cuórum para las operaciones de gestión de usuarios de HSM ahora es dos (2). Después de completar estos pasos, consulte Administración de usuarios con cuórum (M de N).