bewaar je AWS gebruikerstoegangssleutel en geheime sleutel in Jenkins

Je kunt je AWS sleutels veilig opslaan in Jenkins credentials. Als je vanuit je Jenkins server met AWS wilt interageren, kun je je AWS IAM gebruikerssleutels veilig in Jenkins opslaan in plaats van de sleutels openlijk in je Jenkins Pipeline te gebruiken. “CloudBees AWS Credentials” Jenkins plugin maakt het mogelijk om AWS IAM gebruikerssleutels op te slaan binnen de Jenkins Credentials API. We kunnen deze geloofsbrieven dan in onze pijplijn gebruiken en ze in de pijplijn injecteren met de “withAWS” stap. Om de “withAWS” stap te gebruiken, moeten we de “AWS Steps Plugin” plugin installeren.

In dit artikel zullen we de “CloudBees AWS Credentials” plugin installeren en de geheime sleutel en toegangssleutel van de AWS IAM gebruiker in Jenkins opslaan met behulp van deze plugin. We zullen de “AWS Steps Plugin” installeren, zodat we “awsStep” kunnen gebruiken om de gemaakte credential te injecteren. We zullen S3 Upload Object en Download Object bewerkingen uitvoeren vanuit de pijplijn om de credential die we gemaakt hebben te testen.

Pre-requisites

  1. AWS IAM Gebruiker met zijn toegangssleutel en geheime sleutel die lees/schrijftoegang heeft tot S3 Buckets(Klikhier om te leren hoe je een IAM gebruiker op AWS maakt).
  2. S3 Bucket(Klikhier om te leren hoe je een S3 Bucket op AWS maakt).
  3. Jenkins Server(Zoek naar “How to install Jenkins using a war file on AWS EC2 Ubuntu instance?” om te leren een Jenkins Server te maken).

Wat zullen we doen?

  1. InstalleerCloudbees AWS Credentials plugin.
  2. Sla AWS Access en Secret sleutels op in Jenkins Credentials.
  3. Installeerde AWS Stappen Plugin.
  4. Maak een Pipeline en test de credential die we gemaakt hebben.

Installeer Cloudbees AWS Credentials plugin

Log in op Jenkins op http://<Jenkins-IP>:8080/jenkins

Hier heb ik http://52.87.233.129:8080/jenkins/

Je ziet het dashboard als volgt. Klik op “Manage Jenkins” in het linkerpaneel.

Jenkins Dashboard

Klik hier onder “System Configuration” op “Manage Plugins” om de vereiste plugin te installeren.

Beheer Jenkins

Je ziet 4 tabbladen, Updates, Beschikbaar, Geïnstalleerd en Geavanceerd. Klik op de tab “Available” om de plugin te zoeken.

Plugins beheren

Zoek naar “cloudbees secret manager” in het zoekvak onder de tab “Available”. Vink het selectievakje aan van het plugin resultaat “Cloudbees AWS Credentials” dat je krijgt en klik op “Install without restart” om de plugin te installeren zonder Jenkins opnieuw te starten.

CloudBees AWS Credentials Plugin

Als de plugin geïnstalleerd is, krijg je de “Success” melding als volgt.

Succesvolle plugin installatie

Sla AWS toegangs- en geheime sleutels op in Jenkins Credentials

We zijn nu klaar om AWS credentials op te slaan.

Ga terug naar het hoofddashboard en klik op “Manage Jenkins”.

Terug naar Jenkins dashboard

Klik nu op “Manage Credentials” onder “Security” om AWS Geheime sleutel en Toegangssleutel op te slaan.

Terug naar Jenkins beheren

Klik op “global” onder “Stores scoped to Jenkins” –> “Credentials toevoegen”.

Geloofsbrieven beheren

Op deze pagina kun je de geheimen opslaan. Klik op de Kind drop-down en kies AWS. Specificeer een naam voor de secretes, beschrijving, Access Key ID en Secret Access Key. Klik op OK om de geheimen op te slaan.

Sla AWS geloofsbrieven op

Je ziet dat het Geheim nu beschikbaar is.

Bewaarde geloofsbrieven

Installeer de AWS Stappen Plugin

De volgende stap is het installeren van de “Pipeline AWS Steps” plugin. Ga terug naar het hoofddashboard, klik op Manage Jenkins — > Manage Plugins.

Zoek onder het tabblad “Available” naar “AWS Steps”. Selecteer de plugin “Pipeline: AWS Steps” en klik op “Installeren zonder herstarten”. Hiermee wordt de plugin geïnstalleerd zonder Jenkins opnieuw te starten.

AWS Stappen plugin

Als de plugin met succes geïnstalleerd is, krijg je het volgende Succesbericht.

Succesvolle plugin installatie

Maak een Pipeline en test de credential die we maakten.

Laten we nu een nieuwe Job aanmaken. In deze Job zullen we proberen het door ons gemaakte secreet te gebruiken.

Ga terug naar het hoofddashboard, klik op “New items”.

Terug naar Jenkins dashboard

Geef een naam aan de Job, en kies “Pipeline” als type Job.Klik op “Ok”, dit maakt een Job van het type Pipeline.

New Job - Jenkins Pipeline

Klik op “Build Triggers”, scroll omlaag naar “Pipeline”, kies “Pipeline script” en voeg de volgende code toe in het tekstvak.

Gescripte pijplijn

Dit is een Pipeline met 1 stap “test AWS credentials”. In deze stap gebruiken we “withAWS” en specificeren hier onze geheime naam. Daarbinnen maken we een voorbeeldbestand “hello.txt” met een “hello Jenkins” boodschap. Dit bestand wordt dan geüpload naar “devopslee” S3 bucket in mijn account.

Je moet je emmernaam opgeven in plaats van devopslee.

Om te zien of het bestand geüpload is, proberen we het te downloaden als “downloadedHello.txt” en het af te drukken met het commando “cat”.

Als al deze stappen gelukt zijn, betekent dit dat we met succes onze secrete sleutel en toegangssleutel konden gebruiken met de credential die we maakten.

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'
                }
            }
        }
    }
}

Ga nu, om de bovenstaande pijplijn te testen, naar de pijplijn en klik op “Build Now”.Dit zal de pijplijn uitvoeren.

Bouw de pijplijn

Klik op de Build history — > Console output.

Controleer de logboeken

Hier, in de console uitvoer, zie je dat het bestand met succes gemaakt, geüpload, gedownload en gelezen werd.

Dit betekent dat we de S3 emmer met succes konden authenticeren met de toegangssleutel en het geheim dat we in de geloofsbrieven hadden opgeslagen.

Succesvolle uitvoering van pijpleidingen

Conclusie

In dit artikel installeerden weCloudbees AWS Credentials enAWS Steps Plugin plugins in Jenkins. We sloegen het geheim en de toegangssleutels van de AWS IAM gebruiker op in Jenkins met behulp van Jenkins Credentials. We maakten ook een Jenkins Pipeline waarin we de credential die we maakten testten door een object naar de S3 bucket te uploaden en te downloaden.