Puoi archiviare le tue chiavi AWS in modo sicuro nelle credenziali Jenkins. Se desideri interagire con AWS dal tuo server Jenkins, puoi archiviare le tue chiavi utente AWS IAM in modo sicuro in Jenkins anziché utilizzare apertamente le chiavi nella tua Jenkins Pipeline. Il plug-in Jenkins "CloudBees AWS Credentials" consente di archiviare le credenziali utente AWS IAM all'interno dell'API Jenkins Credentials. Possiamo quindi utilizzare queste credenziali nella nostra pipeline e inserirle nella pipeline con il passaggio "withAWS". Per utilizzare il passaggio "conAWS", dobbiamo installare il plug-in "AWS Steps Plugin".
In questo articolo, installeremo il plug-in "CloudBees AWS Credentials" e memorizzeremo la chiave segreta dell'utente AWS IAM e la chiave di accesso in Jenkins utilizzando questo plug-in. Installeremo "AWS Steps Plugin" in modo da poter utilizzare "awsStep" per inserire le credenziali che abbiamo creato. Eseguiremo l'operazione di caricamento dell'oggetto e download dell'oggetto S3 dall'interno della pipeline per testare le credenziali che abbiamo creato.
Prerequisiti
- Utente AWS IAM con la sua chiave di accesso e chiave segreta con accesso in lettura/scrittura ai bucket S3 (fai clic qui per imparare a creare un utente IAM su AWS).
- Bucket S3(fai clic qui per imparare a creare un bucket S3 su AWS).
- Server Jenkins(Cerca "Come installare Jenkins utilizzando un file di guerra su un'istanza Ubuntu di AWS EC2?" per imparare a creare un server Jenkins)
Cosa faremo?
- Installa il plug-in Cloudbees AWS Credentials.
- Memorizza AWS Access e le chiavi segrete nelle credenziali Jenkins.
- Installa AWS Steps Plugin.
- Crea una pipeline e verifica le credenziali che abbiamo creato.
Installa il plug-in Cloudbees AWS Credentials
Accedi a Jenkins all'indirizzo http://
Qui ho http://52.87.233.129:8080/jenkins/
Vedrai la dashboard come segue. Fai clic su "Gestisci Jenkins" nel pannello di sinistra.
Qui, in "Configurazione di sistema", fai clic su "Gestisci plug-in" per installare il plug-in richiesto.
Vedrai 4 schede, Aggiornamenti, Disponibile, Installato e Avanzate. Fare clic sulla scheda "Disponibile" per cercare il plug-in.
Cerca "cloudbees secret manager" nella casella di ricerca nella scheda "Disponibile". Spunta la casella del risultato del plug-in "Cloudbees AWS Credentials" che ottieni e fai clic su "Installa senza riavviare" per installare il plug-in senza riavviare Jenkins.
Una volta installato il plugin, riceverai il messaggio "Success" come segue.
Memorizza AWS Access e le chiavi segrete nelle credenziali Jenkins
Ora siamo pronti per archiviare le credenziali AWS.
Torna alla dashboard principale e fai clic su "Gestisci Jenkins".
Ora, fai clic su "Gestisci credenziali" in "Sicurezza" per archiviare la chiave segreta AWS e la chiave di accesso.
Fai clic su "globale" in "Negozi con ambito Jenkins" --> "Aggiungi credenziali".
In questa pagina potrai memorizzare i segreti. Fai clic sul menu a discesa Tipo e seleziona AWS. Specificare un nome per i segreti, la descrizione, l'ID chiave di accesso e la chiave di accesso segreta. Fare clic su OK per memorizzare i segreti.
Puoi vedere che il Segreto è ora disponibile.
Installa il plug-in di AWS Steps
Il passaggio successivo consiste nell'installare il plug-in "Pipeline AWS Steps". Torna alla dashboard principale, fai clic su Gestisci Jenkins -> Gestisci plugin.
Nella scheda "Disponibile", cerca "Passaggi AWS". Seleziona il plug-in "Pipeline:AWS Steps" e fai clic su "Installa senza riavviare". Questo installerà il plugin senza riavviare Jenkins.
Una volta che il plugin è stato installato correttamente, visualizzerai il messaggio Success come segue.
Crea una pipeline e verifica le credenziali che abbiamo creato.
Ora creiamo un nuovo lavoro. In questo lavoro cercheremo di utilizzare il segreto che abbiamo creato.
Torna alla dashboard principale, fai clic su "Nuovi articoli".
Assegna un nome al lavoro e seleziona "Pipeline" come tipo di lavoro. Fai clic su "Ok", questo creerà un lavoro di tipo Pipeline.
Fai clic su "Build Triggers", scorri verso il basso fino a "Pipeline", seleziona "Pipeline script" e aggiungi il seguente codice nella casella di testo.
Questa è una pipeline con 1 fase di "test delle credenziali AWS". In questo passaggio, utilizzeremo "withAWS" e specificheremo il nostro nome segreto qui. Al suo interno, creeremo un file di esempio "hello.txt" con un messaggio "ciao Jenkins". Questo file verrà quindi caricato nel bucket S3 "devopslee" nel mio account.
Devi specificare il nome del tuo bucket invece di devopslee.
Per vedere se il file è stato caricato, proveremo a scaricarlo come "downloadedHello.txt" e stamparlo usando il comando "cat".
Se tutti questi passaggi hanno avuto esito positivo, significa che siamo stati in grado di utilizzare correttamente la nostra chiave segreta e la chiave di accesso utilizzando le credenziali che abbiamo creato.
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' } } } } }
Ora, per testare la pipeline sopra, vai alla pipeline e fai clic su "Build Now". Questo eseguirà la pipeline.
Fai clic su Cronologia build --> Output console.
Qui, nell'output della console, puoi vedere che il file è stato creato, caricato, scaricato e letto correttamente.
Ciò significa che siamo stati in grado di autenticare correttamente il bucket S3 utilizzando la chiave di accesso e il segreto che abbiamo archiviato nelle credenziali.
Conclusione
In questo articolo, abbiamo installato Cloudbees AWS Credentials e i plug-in AWS Steps in Jenkins. Abbiamo archiviato il segreto dell'utente AWS IAM e le chiavi di accesso in Jenkins utilizzando le credenziali Jenkins. Abbiamo anche creato una Jenkins Pipeline in cui abbiamo testato le credenziali che abbiamo creato caricando e scaricando un oggetto nel bucket S3.