Cómo almacenar la clave de acceso de usuario de AWS y la clave secreta en Jenkins
En esta página
- Requisitos previos
- ¿Qué haremos?
- Instalar el complemento de credenciales de AWS de Cloudbees
- Almacenar las claves secretas y de acceso de AWS en las credenciales de Jenkins
- Instalar complemento de pasos de AWS
- Cree una canalización y pruebe la credencial que creamos.
- Conclusión
Puede almacenar sus claves de AWS de forma segura en las credenciales de Jenkins. Si desea interactuar con AWS desde su servidor Jenkins, puede almacenar sus claves de usuario de IAM de AWS de forma segura en Jenkins en lugar de utilizar abiertamente las claves en su canalización de Jenkins. \CloudBees AWS Credentials\ El complemento de Jenkins permite almacenar las credenciales de usuario de AWS IAM dentro de la API de credenciales de Jenkins. Luego, podemos usar estas credenciales en nuestra canalización e inyectarlas en la canalización con el paso \withAWS\. Para usar el paso \withAWS\, necesitamos instalar el complemento \AWS Steps Plugin\.
En este artículo, instalaremos el complemento \CloudBees AWS Credentials\ y almacenaremos la clave secreta y la clave de acceso de los usuarios de AWS IAM en Jenkins usando este complemento. Instalaremos el \AWS Steps Plugin\ para que podamos usar \awsStep\ para inyectar la credencial que creamos. Realizaremos la operación Cargar objeto y Descargar objeto de S3 desde dentro de la canalización para probar la credencial que creamos.
requisitos previos
- Usuario de IAM de AWS con su clave de acceso y clave secreta con acceso de lectura/escritura a los depósitos de S3 (haga clic aquí para obtener información sobre cómo crear un usuario de IAM en AWS).
- Cubo de S3 (haga clic aquí para obtener información sobre cómo crear un cubo de S3 en AWS).
- Jenkins Server (busque \¿Cómo instalar Jenkins usando un archivo war en una instancia de AWS EC2 Ubuntu?\ para aprender a crear un servidor Jenkins)
¿Que haremos?
- Instale el complemento de credenciales de AWS de Cloudbees.
- Almacene las claves secretas y de acceso de AWS en las credenciales de Jenkins.
- Instale el complemento de pasos de AWS.
- Cree una canalización y pruebe la credencial que creamos.
Instale el complemento de credenciales de Cloudbees AWS
Inicie sesión en Jenkins en http://
Aquí tengo http://52.87.233.129:8080/jenkins/
Verá el tablero de la siguiente manera. Haga clic en \Administrar Jenkins\ en el panel izquierdo.
Aquí, en \Configuración del sistema\, haga clic en \Administrar complementos\ para instalar el complemento requerido.
Verá 4 pestañas, Actualizaciones, Disponible, Instalado y Avanzado. Haga clic en la pestaña \Disponible\ para buscar el complemento.
Busque \cloudbees secret manager\ en el cuadro de búsqueda debajo de la pestaña \Disponible\. Marque la casilla de verificación del resultado del complemento \Cloudbees AWS Credentials\ que obtiene y haga clic en \Instalar sin reiniciar\ para instalar el complemento sin reiniciar Jenkins.
Una vez que el complemento esté instalado, obtendrá el mensaje \Éxito\ de la siguiente manera.
Almacenar las claves secretas y de acceso de AWS en las credenciales de Jenkins
Ahora estamos listos para almacenar las credenciales de AWS.
Regrese al tablero principal y haga clic en \Administrar Jenkins\.
Ahora, haga clic en \Administrar credenciales\ en \Seguridad\ para almacenar la clave secreta y la clave de acceso de AWS.
Haga clic en \global\ en \Tiendas en el ámbito de Jenkins\ --> \Agregar credenciales\.
En esta página, podrá almacenar los secretos. Haga clic en el menú desplegable Tipo y seleccione AWS. Especifique un nombre para los secretos, descripción, ID de clave de acceso y clave de acceso secreta. Haga clic en Aceptar para almacenar los secretos.
Puede ver que el Secreto ya está disponible.
Instale el complemento de pasos de AWS
El siguiente paso es instalar el complemento \Pipeline AWS Steps\. Vuelva al panel principal, haga clic en Administrar Jenkins -> Administrar complementos.
En la pestaña \Disponible\, busque \AWS Steps\. Seleccione el complemento \Pipeline: AWS Steps\ y haga clic en \Instalar sin reiniciar\. Esto instalará el complemento sin reiniciar Jenkins.
Una vez que el complemento se haya instalado correctamente, verá el mensaje de éxito de la siguiente manera.
Crea un Pipeline y prueba la credencial que creamos.
Ahora, vamos a crear un nuevo trabajo. En este trabajo, intentaremos usar el secreto que creamos.
Vuelva al panel principal, haga clic en \Nuevos elementos\.
Asigne un nombre al trabajo y seleccione \Pipeline\ como tipo de trabajo. Haga clic en \Ok\, esto creará un trabajo de tipo Pipeline.
Haga clic en \Desencadenadores de compilación\, desplácese hacia abajo hasta \Pipeline\, seleccione \Script de canalización\ y agregue el siguiente código en el cuadro de texto.
Este es un Pipeline con 1 etapa \probar las credenciales de AWS\. En este paso, usaremos \withAWS\ y especificaremos nuestro nombre secreto aquí. Dentro de él, crearemos un archivo de muestra \hello.txt\ con un mensaje \hello Jenkins\. Luego, este archivo se cargará en el depósito \devopslee\ S3 en mi cuenta.
Debe especificar el nombre de su depósito en lugar de devopslee.
Para ver si el archivo está cargado, intentaremos descargarlo como \downloadedHello.txt\ e imprimirlo usando el comando \cat\.
Si todos estos pasos fueron exitosos, significa que pudimos usar con éxito nuestra clave secreta y la clave de acceso usando la credencial que creamos.
pipeline {
agent any
stages {
stage('test AWS credentials') {
steps {
withAWS(credentials: 'jenkins-test-user', region: 'us-east-1') {
sh 'echo "hello Jenkins">hello.txt'
s3Upload acl: 'Private', bucket: 'devopslee', file: 'hello.txt'
s3Download bucket: 'devopslee', file: 'downloadedHello.txt', path: 'hello.txt'
sh 'cat downloadedHello.txt'
}
}
}
}
}
Ahora, para probar la canalización anterior, vaya a la canalización y haga clic en \Crear ahora\. Esto ejecutará la canalización.
Haga clic en Historial de compilación -> Salida de la consola.
Aquí, en la salida de la consola, puede ver que el archivo se creó, cargó, descargó y leyó correctamente.
Esto significa que pudimos autenticar con éxito el depósito S3 usando la clave de acceso y el secreto que almacenamos en las credenciales.
Conclusión
En este artículo, instalamos los complementos AWS Steps Plugin en Jenkins. Almacenamos el secreto de los usuarios de AWS IAM y las claves de acceso en Jenkins usando las credenciales de Jenkins. También creamos una canalización de Jenkins donde probamos la credencial que creamos cargando y descargando un objeto en el depósito S3.