Inicialice el clúster en AWS CloudHSM - AWS CloudHSM

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.

Inicialice el clúster en AWS CloudHSM

Tras crear el clúster y añadir el módulo de seguridad de hardware (HSM) AWS CloudHSM, puede inicializarlo. Complete los pasos de los siguientes temas para inicializar un clúster de .

nota

Antes de inicializar el clúster, revise el proceso mediante el cual puede comprobar la identidad y la autenticidad del. HSMs Este proceso es opcional y solo funciona hasta que se inicializa un clúster. Una vez inicializado el clúster, no podrá utilizar este proceso para obtener sus certificados ni para verificarlos. HSMs

Descripción general de

El proceso de inicialización del clúster establece su propiedad y control sobre el clúster y usted HSMs mediante un sistema de autenticación basado en certificados. Este proceso demuestra criptográficamente que usted es el único propietario del HSMs clúster y crea la base de confianza que se necesitará para todas las conexiones futuras con usted HSMs.

Esta página le mostrará cómo hacer lo siguiente:

  • Recupera la solicitud de firma de certificado (CSR) de tu clúster.

  • Genera y usa las claves privadas para crear un certificado raíz autofirmado o una cadena de certificados.

  • Firme la CSR de su clúster para generar un certificado HSM firmado.

  • Inicialice el clúster con el certificado HSM firmado y el certificado o la cadena de certificados autofirmados.

Cuando esté listo para empezar, vaya al Paso 1. Obtención del CSR del clúster.

Paso 1. Obtención del CSR del clúster

Para poder inicializar el clúster, debe descargar y firmar una solicitud de firma de certificado (CSR) generada por el primer HSM del clúster. Si ha seguido los pasos para verificar la identidad del HSM del clúster, ya tiene la CSR y puede firmarla. De lo contrario, obtén la CSR ahora mediante la AWS CloudHSM consola, la AWS Command Line Interface (AWS CLI) o la API. AWS CloudHSM

Console
Para obtener la CSR (consola)
  1. Abre la AWS CloudHSM consola en https://console.aws.amazon.com/cloudhsm/casa.

  2. Seleccione el botón de opción situado junto a la ID del clúster con el HSM que desea verificar.

  3. Seleccione Acciones. En el menú desplegable, elija Inicializar.

  4. Si no ha completado el paso anterior para crear un HSM, elija una zona de disponibilidad (AZ) para el HSM que va a crear. A continuación, seleccione Crear.

  5. Cuando la CSR esté lista, verá un enlace para descargarla.

    Descargue la página de solicitud de firma de certificados en la AWS CloudHSM consola.
  6. Elija Cluster CSR para descargar y guardar la CSR.

AWS CLI
Para obtener la CSR (AWS CLI)
  • En un símbolo del sistema, ejecute el siguiente comando describe-clusters, que extrae la CSR y la guarda en un archivo. <cluster ID>Sustitúyala por el ID del clúster que creaste anteriormente.

    $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \ --output text \ --query 'Clusters[].Certificates.ClusterCsr' \ > <cluster ID>_ClusterCsr.csr
AWS CloudHSM API
Para obtener la CSR (AWS CloudHSM API)
  1. Envíe una solicitud DescribeClusters.

  2. Extraiga y guarde la CSR de la respuesta.

Paso 2. Cree una clave privada para su CA raíz

nota

Para un clúster de producción, la clave debe crearse de forma segura mediante una fuente de asignación al azar. Recomendamos que utilice un HSM externo seguro que esté sin conexión o equivalente. Guarde la clave de forma segura. La clave establece la identidad del clúster y su control exclusivo sobre HSMs lo que contiene.

Durante las fases de desarrollo y pruebas, puede utilizar cualquier herramienta adecuada (como OpenSSL) para crear y firmar el certificado del clúster. En el ejemplo siguiente se muestra cómo crear una clave. Cuando haya utilizado la clave para crear un certificado autofirmado (vea el procedimiento a continuación), debe guardarla de forma segura. Para iniciar sesión en la AWS CloudHSM instancia, el certificado debe estar presente, pero la clave privada no.

En la siguiente tabla se describen los algoritmos, los tamaños de clave y las curvas compatibles para la generación de certificados.

Algoritmos Tamaño/curvas

RAS 5. PKCSv1

2048, 3072, 4096

RSA-PSS

2048, 3072, 4096

ECDSA

prime 256 v1, secp 384r1, secp 521r1

Resumir

SHA-224, SHA-256, SHA-384 y SHA-512

Utilice el siguiente comando de ejemplo para crear una clave privada para la CA raíz autofirmada.

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

Paso 3. Firmar la CSR

En los pasos anteriores, recuperó la CSR del clúster y creó una clave privada para la CA raíz. En este paso, utilizará su clave privada para generar un certificado de firma con el fin de firmar la CSR de su clúster. Los temas siguientes le guiarán a través del proceso de creación de un único certificado autofirmado, o una cadena de certificados, mediante OpenSSL. No lo necesitas AWS CLI para este paso y tampoco es necesario que el shell esté asociado a tu cuenta. AWS

importante

Para inicializar su clúster, su anclaje de confianza debe cumplir con RFC 5280 y satisfacer los siguientes requisitos:

  • Si usa extensiones X509v3, debe estar presente la extensión X509v3 Basic Constraints.

  • El anclaje de confianza debe ser un certificado autofirmado.

  • Los valores de extensión no deben entrar en conflicto entre sí.

Elige uno de los siguientes métodos para firmar la CSR de tu clúster:

Elija su método de certificación

Debe elegir uno de los dos enfoques siguientes. No complete ambos enfoques.

Opción A: certificado único autofirmado

Cree un único certificado raíz autofirmado para firmar la CSR de su clúster. Este es el método más simple y directo de establecer confianza.

Recomendado para:

  • Entornos en los que no se requiere una PKI externa

  • Entornos de prueba y desarrollo en los que se prefiere la simplicidad

Diríjase a: Cree un único certificado autofirmado

Opción B: cadena de certificados con CA intermedia

Cree una cadena de certificados con una autoridad de certificación intermedia. Una cadena de certificados intermedia proporciona mayor seguridad, escalabilidad y flexibilidad, ya que permite que las autoridades de certificación raíz (CAs) permanezcan desconectadas y deleguen la emisión de los certificados a las entidades intermedias CAs, lo que reduce el riesgo de comprometer a la entidad emisora de certificados raíz.

Recomendado para:

  • Entornos en los que se requiere una PKI externa

  • Integración con AWS Private Certificate Authority (PCA)

Ejemplo de integración de AWS PCA: puede usar una autoridad de certificación AWS privada para crear y administrar sus certificados de CA intermedios. Esto proporciona una administración automatizada del ciclo de vida de los certificados, incluidas la renovación y la revocación, al tiempo que mantiene los beneficios de seguridad de mantener su CA raíz fuera de línea. Para obtener más información sobre la AWS PCA, consulte la Guía del usuario de AWS Private Certificate Authority.

Vaya a: Cree una cadena de entidades de certificación (ICA) intermedia

Cree un único certificado autofirmado

El hardware de confianza que se utiliza para crear la clave privada del clúster de producción también debe proporcionar una herramienta de software para generar un certificado autofirmado con dicha clave. En el siguiente ejemplo, se utiliza OpenSSL y la clave privada que creó en el paso anterior para crear un certificado de firma de CA raíz autofirmado. El certificado es válido durante 10 años (3652 días). Lea las instrucciones que aparecen en pantalla y siga las indicaciones.

$ openssl req -new -x509 -days 3652 -key customerRootCA.key -out customerRootCA.crt Enter pass phrase for customerRootCA.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []: Email Address []:

Este comando crea un archivo de certificado denominado customerRootCA.crt. Coloque este certificado en todos los hosts desde los que se conectará al clúster. AWS CloudHSM Si asigna otro nombre al archivo o lo almacenarla en una ruta distinta de la raíz del host, debe editar el archivo de configuración del cliente según sea necesario. Utilice el certificado y la clave privada que acaba de crear para firmar la solicitud de firma de certificado (CSR) del clúster en el paso siguiente.

Firme la CSR del clúster con su CA raíz autofirmada

El hardware de confianza que se utiliza para crear la clave privada del clúster de producción también debe proporcionar una herramienta para firmar la CSR con dicha clave. En el siguiente ejemplo se usa OpenSSL para firmar la CSR del clúster. El siguiente comando de ejemplo firma la CSR con la firma autofirmada customerRootCA.crt

$ openssl x509 -req -days 3652 -in <cluster ID>_ClusterCsr.csr \ -CA <customerRootCA>.crt \ -CAkey <customerRootCA>.key \ -CAcreateserial \ -out <cluster ID>_CustomerHsmCertificate.crt Signature ok subject=/C=US/ST=CA/O=Cavium/OU=N3FIPS/L=SanJose/CN=HSM:<HSM identifier>:PARTN:<partition number>, for FIPS mode Getting CA Private Key Enter pass phrase for <customerRootCA>.key:

Este comando crea un archivo denominado <cluster ID>_CustomerHsmCertificate.crt. Utilice este archivo como el certificado firmado al inicializar el clúster.

Verifique el certificado firmado con la CA raíz (opcional):

$ openssl verify -purpose sslserver -CAfile customerRootCA.crt <cluster ID>_CustomerHsmCertificate.crt <cluster ID>_CustomerHsmCertificate.crt: OK

Tras producir el certificado HSM firmado con su CA raíz autofirmada, vaya a. Paso 4. Inicio del clúster

Cree una cadena de entidades de certificación (ICA) intermedia

En los siguientes ejemplos, se explica cómo crear una cadena de certificados de longitud 2, compuesta por una autoridad de certificación (CA) raíz y una CA intermedia. Primero creará un certificado de CA raíz autofirmado y, a continuación, generará una CA intermedia firmada por la CA raíz. Por último, utilizará la CA intermedia para firmar la CSR de su clúster, lo que creará una cadena de confianza completa desde el certificado de HSM hasta la CA raíz. Este enfoque proporciona una mayor seguridad al mantener la CA raíz desconectada y, al mismo tiempo, utilizar la CA intermedia para las operaciones de day-to-day certificación.

importante

Para inicializar el clúster con una cadena de certificados, la cadena debe cumplir los siguientes requisitos:

  • La cadena debe estar ordenada, empezando por la CA intermedia que firma la CSR del clúster. En este orden, la primera ICA debe tener un emisor que coincida con el asunto de la siguiente ICA de la cadena, y así sucesivamente.

  • Solo la CA raíz debe estar autofirmada, lo que significa que su emisor y su sujeto deben ser idénticos.

  • La cadena no debe tener más de 4 certificados (incluida la CA raíz al final) y el tamaño total de la cadena no debe superar los 16 kb (kilobytes).

  • Todas las autoridades de certificación (CAs) deben cumplir las directrices del RFC 5280.

En esta sección se proporcionan ejemplos para crear una cadena de entidades de certificación intermedias mediante dos enfoques diferentes: OpenSSL para la generación local de certificados y AWS Private Certificate Authority (PCA) para los servicios de certificados gestionados. Elija el enfoque que mejor se adapte a sus requisitos de entorno y seguridad.

nota

Los siguientes ejemplos son casos de uso general y están simplificados, ya que utilizan la configuración más básica. Para los entornos de producción, revise las opciones de configuración adicionales y los requisitos de seguridad específicos de su caso de uso.

OpenSSL

Cree un archivo de configuración de OpenSSL con las extensiones v3 comunes para CA:

$ cat > ca-extensions.conf <<EOF [req] distinguished_name = req_distinguished_name [req_distinguished_name] C = Country Name (2 letter code) ST = State or Province Name (full name) L = Locality Name (eg, city) O = Organization Name (eg, company) OU = Organizational Unit Name (eg, section) CN = Common Name (e.g. server FQDN or YOUR name) [v3_ca] subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always,issuer basicConstraints = critical,CA:true keyUsage = critical, keyCertSign, cRLSign, digitalSignature EOF

Genere una CA raíz autofirmada mediante OpenSSL:

$ openssl req -new -x509 -days 3652 -key customerRootCA.key -out customerRootCA.crt -extensions v3_ca -config ca-extensions.conf Enter pass phrase for customerRootCA.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []: Email Address []:

Genere una clave de CA intermedia:

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

Cree la solicitud de firma de certificado (CSR) de CA intermedia:

$ openssl req -new -key intermediateCA.key -out intermediateCA.csr Enter pass phrase for intermediateCA.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []: Email Address []:

Con la CA raíz autofirmada, cree el certificado de CA intermedia:

$ openssl x509 -req -in intermediateCA.csr \ -CA customerRootCA.crt \ -CAkey customerRootCA.key \ -CAcreateserial \ -days 3652 \ -extensions v3_ca \ -extfile ca-extensions.conf \ -out intermediateCA.crt Certificate request self-signature ok subject=C= , ST= , L= , O= , OU=

Combine los certificados en un archivo en cadena:

$ cat intermediateCA.crt customerRootCA.crt > chainCA.crt -----BEGIN CERTIFICATE----- [Intermediate CA] -----END CERTIFICATE----- ... ... -----BEGIN CERTIFICATE----- [Root CA] -----END CERTIFICATE-----

Firme la CSR del clúster con su CA intermedia:

$ openssl x509 -req -days 3652 -in <cluster ID>_ClusterCsr.csr \ -CA intermediateCA.crt \ -CAkey intermediateCA.key \ -CAcreateserial \ -out <cluster ID>_CustomerHsmCertificate.crt Signature ok subject=/C=US/ST=CA/O=Cavium/OU=N3FIPS/L=SanJose/CN=HSM:<HSM identifier>:PARTN:<partition number>, for FIPS mode Getting CA Private Key Enter pass phrase for intermediateCA.key:
AWS PCA

Cree y active una CA raíz con AWS Private Certificate Authority:

$ # 1. Create Root CA aws acm-pca create-certificate-authority \ --certificate-authority-configuration \ "KeyAlgorithm=RSA_4096, SigningAlgorithm=SHA256WITHRSA, Subject={Country=US,Organization=MyOrg,OrganizationalUnit=IT,CommonName=RootCA}" \ --certificate-authority-type ROOT # Store the Root CA Authority ARN from the previous output ROOT_CA_AUTHORITY_ARN="arn:aws:acm-pca:<region>:<account-id>:certificate-authority/<ca-authority-id>" # 2. Generate Root CA CSR aws acm-pca get-certificate-authority-csr \ --certificate-authority-arn $ROOT_CA_AUTHORITY_ARN \ --output text > customerRootCA.csr # 3. Self-sign Root CA Certificate aws acm-pca issue-certificate \ --certificate-authority-arn $ROOT_CA_AUTHORITY_ARN \ --csr fileb://customerRootCA.csr \ --signing-algorithm SHA256WITHRSA \ --template-arn arn:aws:acm-pca:::template/RootCACertificate/V1 \ --validity Value=3652,Type=DAYS # Store the Root CA certificate ARN from the previous output ROOT_CA_ARN="arn:aws:acm-pca:<region>:<account-id>:certificate-authority/<ca-authority-id>/certificate/<cert-id>" # 4. Retrieve the Root CA certificate aws acm-pca get-certificate \ --certificate-authority-arn $ROOT_CA_AUTHORITY_ARN \ --certificate-arn $ROOT_CA_ARN \ --output text > customerRootCA.crt # 5. Import the Root CA Certificate aws acm-pca import-certificate-authority-certificate \ --certificate-authority-arn $ROOT_CA_AUTHORITY_ARN \ --certificate fileb://customerRootCA.crt

Cree y active una CA subordinada (también conocida como CA intermedia):

$ # 6. Create Subordinate CA aws acm-pca create-certificate-authority \ --certificate-authority-configuration \ "KeyAlgorithm=RSA_4096, SigningAlgorithm=SHA256WITHRSA, Subject={Country=US,Organization=MyOrg,OrganizationalUnit=IT,CommonName=SubordinateCA}" \ --certificate-authority-type SUBORDINATE # Store the Subordinate CA Authority ARN from the previous output SUB_CA_AUTHORITY_ARN="arn:aws:acm-pca:<region>:<account-id>:certificate-authority/<sub-ca-authority-id>" # 7. Generate Subordinate CA CSR aws acm-pca get-certificate-authority-csr \ --certificate-authority-arn $SUB_CA_AUTHORITY_ARN \ --output text > intermediateCA.csr # 8. Issue Subordinate CA Certificate using Root CA aws acm-pca issue-certificate \ --certificate-authority-arn $ROOT_CA_AUTHORITY_ARN \ --csr fileb://intermediateCA.csr \ --signing-algorithm SHA256WITHRSA \ --template-arn arn:aws:acm-pca:::template/SubordinateCACertificate_PathLen0/V1 \ --validity Value=3651,Type=DAYS # Store the Subordinate CA certificate ARN from the previous output SUB_CA_ARN="arn:aws:acm-pca:<region>:<account-id>:certificate-authority/<sub-ca-authority-id>" # 9. Retrieve Subordinate CA Certificate aws acm-pca get-certificate \ --certificate-authority-arn $ROOT_CA_AUTHORITY_ARN \ --certificate-arn $SUB_CA_ARN \ --query 'Certificate' \ --output text > intermediateCA.crt # 10. Import the Subordinate CA Certificate aws acm-pca import-certificate-authority-certificate \ --certificate-authority-arn $SUB_CA_AUTHORITY_ARN \ --certificate fileb://intermediateCA.crt \ --certificate-chain fileb://customerRootCA.crt

Combine los certificados en un archivo en cadena:

$ cat intermediateCA.crt customerRootCA.crt > chainCA.crt -----BEGIN CERTIFICATE----- [Intermediate CA] -----END CERTIFICATE----- ... ... -----BEGIN CERTIFICATE----- [Root CA] -----END CERTIFICATE-----

Firme la CSR del clúster con AWS PCA:

$ aws acm-pca issue-certificate \ --certificate-authority-arn $SUB_CA_AUTHORITY_ARN \ --csr fileb://<cluster ID>_ClusterCsr.csr \ --signing-algorithm SHA256WITHRSA \ --template-arn arn:aws:acm-pca:::template/EndEntityCertificate/V1 \ --validity Value=3650,Type=DAYS # Store your cluster's cert ARN from the previous output CLUSTER_CERT_ARN="arn:aws:acm-pca:<region>:<account-id>:certificate-authority/<cluster-cert-arn>"

Descargue el certificado de clúster firmado:

$ aws acm-pca get-certificate \ --certificate-authority-arn $SUB_CA_AUTHORITY_ARN \ --certificate-arn $CLUSTER_CERT_ARN \ --output text --query Certificate > <cluster ID>_CustomerHsmCertificate.crt

Este comando crea un archivo denominado <cluster ID>_CustomerHsmCertificate.crt. Utilice este archivo como el certificado firmado al inicializar el clúster.

Verifique el certificado firmado con la cadena de certificados (opcional):

$ openssl verify -purpose sslserver -CAfile chainCA.crt <cluster ID>_CustomerHsmCertificate.crt <cluster ID>_CustomerHsmCertificate.crt: OK

Tras producir el certificado HSM firmado con su CA intermedia, vaya aPaso 4. Inicio del clúster.

Paso 4. Inicio del clúster

Use el certificado HSM firmado y su certificado de firma para inicializar el clúster. Puede utilizar la AWS CloudHSM consola AWS CLI, la o la AWS CloudHSM API.

Console
Para inicializar el clúster (consola)
  1. Abre la AWS CloudHSM consola en https://console.aws.amazon.com/cloudhsm/casa.

  2. Seleccione el botón de opción situado junto a la ID del clúster con el HSM que desea verificar.

  3. Seleccione Acciones. En el menú desplegable, elija Inicializar.

  4. Si no ha completado el paso anterior para crear un HSM, elija una zona de disponibilidad (AZ) para el HSM que va a crear. A continuación, seleccione Crear.

  5. En la página de descarga de solicitud de firma de certificado, elija Next (Siguiente). Si la opción Next no está disponible, primero elija uno de los enlaces de certificados o de CSR. A continuación, elija Siguiente.

  6. En la página Sign certificate signing request (CSR), elija Next.

  7. En la página Upload the certificates, haga lo siguiente:

    1. Junto a Cluster certificate, elija Upload file. A continuación, localice y seleccione el certificado del HSM que firmó anteriormente. Si ha realizado los pasos de la sección anterior, seleccione el archivo <cluster ID>_CustomerHsmCertificate.crt.

    2. Junto a Issuing certificate, elija Upload file. A continuación, seleccione su certificado de firma según el método que haya elegido:

      • Si eligió la opción A (certificado único autofirmado): seleccione el archivo denominado <customerRootCA>.crt

      • Si eligió la opción B (cadena de certificados): seleccione el archivo denominado <chainCA>.crt

    3. Elija Upload and initialize.

AWS CLI
Para inicializar un clúster (AWS CLI)
  • En el símbolo del sistema, ejecute el comando initialize-cluster. Proporcione lo siguiente:

    • El ID del clúster que ha creado anteriormente.

    • El certificado del HSM que firmó anteriormente. Si ha realizado los pasos de la sección anterior, se encuentra en un archivo denominado <cluster ID>_CustomerHsmCertificate.crt.

    • Su certificado de firma se basa en el enfoque que haya elegido:

      • Si eligió la opción A (certificado único autofirmado): utilice el archivo denominado <customerRootCA>.crt

      • Si eligió la opción B (cadena de certificados): utilice el archivo denominado <chainCA>.crt

    $ aws cloudhsmv2 initialize-cluster --cluster-id <cluster ID> \ --signed-cert file://<cluster ID>_CustomerHsmCertificate.crt \ --trust-anchor file://<customerRootCA.crt OR chainCA.crt> { "State": "INITIALIZE_IN_PROGRESS", "StateMessage": "Cluster is initializing. State will change to INITIALIZED upon completion." }
AWS CloudHSM API
Para inicializar un clúster (AWS CloudHSM API)
  • Envíe una solicitud InitializeCluster con lo siguiente:

    • El ID del clúster que ha creado anteriormente.

    • El certificado del HSM que firmó anteriormente. Si ha realizado los pasos de la sección anterior, se encuentra en un archivo denominado <cluster ID>_CustomerHsmCertificate.crt.

    • Su certificado de firma se basa en el enfoque que haya elegido:

      • Si eligió la opción A (certificado único autofirmado): utilice el archivo denominado <customerRootCA>.crt

      • Si eligió la opción B (cadena de certificados): utilice el archivo denominado <chainCA>.crt