Ricerca nel sito web

Come archiviare la chiave di accesso utente AWS e la chiave segreta in Jenkins


Su questa pagina

  1. Prerequisiti
  2. Cosa faremo?
  3. Installa il plug-in delle credenziali AWS di Cloudbees
  4. Memorizza AWS Access e chiavi segrete nelle credenziali Jenkins
  5. Installa il plug-in AWS Steps
  6. Crea una pipeline e testa le credenziali che abbiamo creato.
  7. Conclusione

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é apertamente utilizzare 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 \withAWS\, dobbiamo installare il plug-in \AWS Steps Plugin\.

In questo articolo, installeremo il plug-in \CloudBees AWS Credentials\ e memorizzeremo la chiave segreta e la chiave di accesso degli utenti AWS IAM 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 S3 Upload Object e Download Object dall'interno della pipeline per testare le credenziali che abbiamo creato.

Prerequisiti

  1. Utente AWS IAM con la sua chiave di accesso e chiave segreta con accesso in lettura/scrittura ai bucket S3 (fai clic qui per sapere come creare un utente IAM su AWS).
  2. Bucket S3 (fai clic qui per imparare a creare un bucket S3 su AWS).
  3. Jenkins Server(Cerca \Come installare Jenkins utilizzando un file war su un'istanza AWS EC2 Ubuntu?\ per imparare a creare un server Jenkins)

Che cosa faremo?

  1. Installa il plug-in Cloudbees AWS Credentials.
  2. Memorizza AWS Access e chiavi segrete nelle credenziali Jenkins.
  3. Installa il plug-in AWS Steps.
  4. Crea una pipeline e testa le credenziali che abbiamo creato.

Installa il plug-in Cloudbees AWS Credenziali

Accedi a Jenkins all'indirizzo http://:8080/jenkins

Ecco, ho http://52.87.233.129:8080/jenkins/

Vedrai la dashboard come segue. Fai clic su \Gestisci Jenkins\ nel pannello di sinistra.

Qui, sotto \Configurazione di sistema\ fai clic su \Gestisci plug-in\ per installare il plug-in richiesto.

Vedrai 4 schede, Aggiornamenti, Disponibile, Installato e Avanzato. Fare clic sulla scheda \Disponibile\ per cercare il plug-in.

Cerca \cloudbees secret manager\ nella casella di ricerca sotto la scheda \Disponibile\. Seleziona la casella di controllo 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 le chiavi segrete e di accesso AWS 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 sull'elenco a discesa Tipo e seleziona AWS. Specificare un nome per i segreti, la descrizione, l'ID della 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 AWS Steps

Il passaggio successivo consiste nell'installare il plug-in \Pipeline AWS Steps\. Torna alla dashboard principale, fai clic su Gestisci Jenkins -> Gestisci plug-in.

Nella scheda \Disponibile\, cerca \AWS Steps\. 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 plug-in è stato installato correttamente, visualizzerai il messaggio di successo come segue.

Crea una pipeline e testa le credenziali che abbiamo creato.

Ora creiamo un nuovo lavoro. In questo lavoro, proveremo a utilizzare il segreto che abbiamo creato.

Torna alla dashboard principale, fai clic su \Nuovi elementi\.

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 \credenziali AWS di prova\. In questo passaggio, utilizzeremo \withAWS\ e specificheremo qui il nostro nome segreto. Al suo interno, creeremo un file di esempio \ciao.txt\ con un messaggio \ciao Jenkins\. Questo file verrà quindi caricato nel bucket S3 \devopslee\ nel mio account.

Devi specificare il nome del bucket invece di devopslee.

Per vedere se il file è stato caricato, proveremo a scaricarlo come \downloadedHello.txt\ ea stamparlo utilizzando 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 di cui 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 archiviati nelle credenziali.

Conclusione

In questo articolo, abbiamo installato i plug-in AWS Steps Plugin in Jenkins. Abbiamo archiviato il segreto degli utenti AWS IAM e le chiavi di accesso in Jenkins utilizzando le credenziali Jenkins. Abbiamo anche creato una pipeline Jenkins in cui abbiamo testato le credenziali create caricando e scaricando un oggetto nel bucket S3.