Generación de una clave GPG
Los artefactos creados por la cadena de herramientas de integración continua IBM Cloud DevSecOps y registrados en el inventario deben firmarse antes de su despliegue en producción. El proceso de integración continua utiliza Skopeo como herramienta predeterminada para proporcionar la capacidad de firma de artefactos.
Crear y almacenar una clave GPG que es utilizada por el DevSecOps pipeline de integración continua de forma automática o manual.
Generar automáticamente una clave GPG
Utilizando este método, la plantilla genera automáticamente la clave GPG. Especifique el nombre y el correo electrónico para la generación de claves realizando estos pasos:
-
Vaya a Firma de artefacto y pulse Nuevo.
Firma de artefactos -
En la ventana, los campos nombre y correo electrónico se rellenan previamente con el nombre de la cadena de herramientas y el ID de correo electrónico. Cambie el nombre y el ID de correo electrónico para que reflejen los requisitos clave de GPG. También puede almacenar las claves en el proveedor de secretos seleccionando el recuadro.
Cambiar nombre y correo electrónico -
Después de generar la clave, puede copiarla para su referencia.
Figura 3 Certificado de firma de artefacto
La clave copiada está en formato base64. Decodifique la llave antes de importarla a su llavero.
echo <encoded_gpg_key> | base64 --decode
Generar manualmente una clave GPG
Descarga e instalación de herramientas de línea de mandatos de GPG
Descargue e instale el sitio Herramientas de comando GPG para su sistema operativo. Vaya a la sección de versiones binarias de GnuPG para descargar las herramientas para su sistema operativo.
Mac OS X
- Descargue e instale Mac GPG.
- Verifique la versión del GPG instalado. Desde la línea de mandatos, ejecute el mandato siguiente:
$ gpg --version
gpg (GnuPG) 2.3.1
libgcrypt 1.9.3
Copyright (C) 2021 Free Software Foundation, Inc.
- Para versiones de GPG anteriores a 2.3.1, puede que no sea posible utilizar la opción --passphrase=''. En este caso, puede omitir la contraseña en el diálogo siguiente pulsando Intro cuando se le solicite.
Windows
- Descargar e instalar GitBash (necesario para la codificación
base64). - Verifique la versión del GPG instalado. Ejecute el mandato siguiente en el indicador de mandatos de Git bash:
$ gpg --version
gpg (GnuPG) 2.2.27
libgcrypt 1.8.7
Copyright (C) 2021 g10 Code GmbH
Generación de una clave de la API
Deje la frase de contraseña y el campo vacío si el mandato generate-key abre un diálogo que solicita una frase de contraseña. Esta es una limitación con la utilidad (skopeo) de la firma de imágenes donde la tubería no puede aceptar una clave privada que está protegida con una frase de contraseña. Si usted proporciona la frase de contraseña durante la creación, entonces su pipeline falla al decodificar el certificado, y su pipeline falla en el paso de firma de la imagen. Tenga en cuenta que esto también es aplicable a la firma de etiquetas GIT.
Mac OS X y Linux™
Desde el indicador de shell, ejecute el mandato siguiente:
gpg --pinentry-mode loopback --passphrase='' --generate-key
- Introduzca su nombre y dirección de correo electrónico.
- Introduzca O para iniciar la creación de claves.
- Una vez generada la clave, seleccione la opción O.
Windows
GPG Versión > 1.4
En el indicador de mandatos del hash de Git, ejecute el mandato siguiente:
gpg --pinentry-mode loopback --passphrase='' --generate-key
- Introduzca su nombre en el campo Nombre real.
- Especifique su dirección de correo electrónico en la Dirección de correo electrónico.
- Introduzca O para iniciar la creación de la clave.
- Una vez generada la clave, seleccione la opción O.
Versión GPG < 1.4 (o cualquier fallo con el comando anterior)
En el indicador de mandatos del hash de Git, ejecute el mandato siguiente:
gpg --gen-key
- tipo de clave: seleccione la opción por defecto (1) RSA y RSA (por defecto)
- keyize: mantener por defecto (2048)
- validez de clave: mantenga el valor predeterminado como 0. Esto se debe a que la clave de valor 0 no caduca.
- Confirme su elección: introduzca y.
- Escriba su nombre en el campo Nombre real.
- Especifique su dirección de correo electrónico en la Dirección de correo electrónico.
- Introduzca O para iniciar la creación de claves.
- Una vez generada la clave, seleccione la opción O.
Verifique la creación de claves
Verifique que se haya creado la clave gpg. Desde el símbolo del comando, ejecute el siguiente comando :
gpg --list-keys
Asegúrese de que su clave aparezca en la lista. Ejemplo de salida en Windows:
$ gpg --list-keys
/c/Users/FredSmith/.gnupg/pubring.gpg
-------------------------------------
pub 2048R/1BB354B5 2021-06-08
uid Fred Smith <fred@company.com>
sub 2048R/F91C39A6 2021-06-08
Exportación de la clave
Este campo es opcional. Ejecute este mandato para asegurarse de que se puede exportar la clave gpg.
gpg --export-secret-key <Email Address>
La clave sin formato que se exporta no se debe copiar directamente. Se recomienda almacenar de forma segura la clave generada en este paso en su instancia Key Protect o Secrets Manager. Consulte las secciones siguientes para obtener más detalles.
Almacenamiento de la clave
La clave GPG se debe proporcionar a la interconexión de integración continua de una de las maneras siguientes:
- Almacenado en IBM® Key Protect for IBM Cloud®
- Almacenado en IBM Cloud® Secrets Manager
- Almacenado directamente en la cadena de herramientas de integración continua
Asegúrese de que la clave se copie en el formato correcto para evitar un error de firma de interconexión de integración continua debido a un error de importación. Utilice pbcopy ( Mac OS X ) o clip (Windows Git bash)
en el siguiente comando para copiar el contenido de la clave en el portapapeles.
Almacene la clave en Key Protect
Exporte y copie la clave GPG en el portapapeles.
Se requiere la codificación doble base64 de la clave GPG antes de almacenarla en su instancia Key Protect.
OS X
gpg --export-secret-key <Email Address> | base64 | base64 | pbcopy
Windows
gpg --export-secret-key <Email Address> | base64 -w0 | base64 -w0 | clip
Linux™
gpg --export-secret-key <Email Address> | base64 | base64
-
En la consola de IBM Cloud, seleccione la instancia de Key Protect en la que desea almacenar la clave GPG generada a partir de los pasos anteriores.
-
Pulse el icono Añadir + para añadir una clave nueva a la instancia.
-
Seleccione la opción Importar su propia clave.
-
Seleccione Seleccionar un tipo de llave como Llave estándar.
-
Introduzca el nombre apropiado en el campo Nombre de la clave. La clave GPG almacenada puede recuperarse más tarde mediante este nombre de clave.
-
Copie la clave exportada anteriormente en el campo Material clave.
Asegúrese de que cuando copie la clave y la pegue en el campo Material clave, no haya ninguna línea adicional al final de la clave.
-
Seleccione la opción Elegir un llavero por defecto.
-
Pulse Añadir clave para añadir la clave a la protección de claves.
Añade la clave a la protección de claves
Para obtener más información sobre Key Protect, consulte los documentos de Key Protect.
Almacene la clave en Secrets Manager
Es necesaria una única codificación base64 de la clave GPG antes de almacenarla en la instancia de Secrets Manager.
Exporte y copie la clave GPG en el portapapeles.
OS X
gpg --export-secret-key <Email Address> | base64 | pbcopy
Windows
gpg --export-secret-key <Email Address> | base64 -w0 | clip
Linux™
gpg --export-secret-key <Email Address> | base64
-
En la consola de IBM Cloud, seleccione la instancia de Secrets Manager donde desea almacenar la clave GPG generada a partir de los pasos anteriores.
-
Pulse el icono Añadir + para añadir una clave nueva a la instancia.
-
Seleccione la opción Otro tipo de secreto.
Otro tipo de secreto -
Seleccione el tipo Clave estándar para la opción Seleccionar un tipo de clave.
-
Introduzca un nombre apropiado en el campo Nombre. La clave GPG almacenada se puede recuperar más adelante con este nombre.
-
Elija la opción como Valor secreto y pegue la clave exportada anteriormente en el campo Valor secreto.
Asegúrese de que cuando copie la clave y la pegue en el campo Valor secreto, no haya ninguna línea adicional al final de la clave.
-
Añada la clave a la instancia de Key Protect pulsando el icono Añadir.
Añade la clave
Para obtener más información sobre Secrets Manager, consulte Cómo empezar con Secrets Manager.
Exporte la clave privada y almacénela directamente en la interconexión de integración continua
Este método no se recomienda y sólo debe utilizarse con fines experimentales. Utilice Key Protect o Secrets Manager para almacenar las claves. Para obtener más información, consulte Configuración de los almacenes de secretos
Es necesaria una única codificación base64 de la clave GPG antes de almacenarla como una propiedad de interconexión protegida.
Almacene de forma segura la clave GPG en una instancia Key Protect o Secrets Manager.
Mac OS X / Linux™
gpg --export-secret-key <Email Address> | base64
Windows
gpg --export-secret-key <Email Address> | base64 -w0