Cómo almacenar la clave de acceso de usuario de AWS y la clave secreta en Jenkins

Tablero de Jenkins

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 AWS IAM de forma segura en Jenkins en lugar de usar las claves abiertamente en su canalizaci√≥n de Jenkins. El complemento de Jenkins ¬ęCloudBees AWS Credentials¬Ľ 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 del usuario de AWS IAM en Jenkins usando este complemento. Instalaremos el ¬ęComplemento de pasos de AWS¬Ľ 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

  1. Usuario de AWS IAM con su clave de acceso y clave secreta con acceso de lectura/escritura a S3 Buckets (haga clic aquí para obtener información sobre cómo crear un usuario de IAM en AWS).
  2. S3 Bucket (Haga clic aquí para aprender a crear un S3 Bucket en AWS).
  3. Servidor Jenkins (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?

  1. Instalar Credenciales de AWS de Cloudbees enchufar.
  2. Almacene las claves secretas y de acceso de AWS en las credenciales de Jenkins.
  3. Instalar Complemento de pasos de AWS.
  4. Crea un Pipeline y prueba la credencial que creamos.

Instale el complemento de credenciales de Cloudbees AWS

Inicie sesión en Jenkins en http://:8080/jenkins

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.

Tablero de Jenkins

Aqu√≠, en ¬ęConfiguraci√≥n del sistema¬Ľ, haga clic en ¬ęAdministrar complementos¬Ľ para instalar el complemento requerido.

Administrar Jenkins

Ver√° 4 pesta√Īas, Actualizaciones, Disponible, Instalado y Avanzado. Haga clic en la pesta√Īa ¬ęDisponible¬Ľ para buscar el complemento.

Administrar complementos

Busque ¬ęadministrador secreto de cloudbees¬Ľ 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.

Complemento de credenciales de CloudBees AWS

Una vez que el complemento est√© instalado, recibir√° el mensaje ¬ę√Čxito¬Ľ de la siguiente manera.

Instalación exitosa del complemento

Almacene 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¬Ľ.

Volver al tablero de Jenkins

Ahora, haga clic en ¬ęAdministrar credenciales¬Ľ en ¬ęSeguridad¬Ľ para almacenar la clave secreta y la clave de acceso de AWS.

Volver a administrar Jenkins

Haga clic en ¬ęglobal¬Ľ en ¬ęTiendas en el √°mbito de Jenkins¬Ľ –> ¬ęAgregar credenciales¬Ľ.

Administrar 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.

Almacenar credenciales de AWS

Puede ver que el Secreto ya est√° disponible.

Credenciales guardadas

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.

Complemento de pasos de AWS

Una vez que el complemento se haya instalado correctamente, verá el mensaje de éxito de la siguiente manera.

Instalación exitosa del complemento

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¬Ľ.

Volver al tablero de Jenkins

Asigne un nombre al trabajo y seleccione ¬ęPipeline¬Ľ como tipo de trabajo. Haga clic en ¬ęAceptar¬Ľ, esto crear√° un trabajo de tipo Pipeline.

Nuevo trabajo - Oleoducto Jenkins

Haga clic en ¬ęCrear disparadores¬Ľ, despl√°cese hacia abajo hasta ¬ęPipeline¬Ľ, seleccione ¬ęScript de Pipeline¬Ľ y agregue el siguiente c√≥digo en el cuadro de texto.

Canalización con secuencias de comandos

Esta es una canalizaci√≥n 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 S3 ¬ędevopslee¬Ľ 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 tuber√≠a anterior, vaya a la tuber√≠a y haga clic en ¬ęCrear ahora¬Ľ. Esto ejecutar√° la tuber√≠a.

Construya la tubería

Haga clic en Historial de compilación -> Salida de la consola.

Comprobar registros

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.

Ejecución exitosa de canalización

Conclusión

En este artículo, instalamos Credenciales de AWS de Cloudbees y Complemento de pasos de AWS Complementos en Jenkins. Almacenamos el secreto del usuario 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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *