GNU/Linux >> Tutoriels Linux >  >> Linux

Comment stocker la clé d'accès utilisateur AWS et la clé secrète dans Jenkins

Vous pouvez stocker vos clés AWS en toute sécurité dans les informations d'identification Jenkins. Si vous souhaitez interagir avec AWS à partir de votre serveur Jenkins, vous pouvez stocker vos clés utilisateur AWS IAM en toute sécurité dans Jenkins plutôt que d'utiliser ouvertement les clés de votre pipeline Jenkins. Le plug-in Jenkins "CloudBees AWS Credentials" permet de stocker les informations d'identification de l'utilisateur AWS IAM dans l'API Jenkins Credentials. Nous pouvons ensuite utiliser ces informations d'identification dans notre pipeline et les injecter dans le pipeline avec l'étape "withAWS". Pour utiliser l'étape "withAWS", nous devons installer le plug-in "AWS Steps Plugin".

Dans cet article, nous allons installer le plug-in "CloudBees AWS Credentials" et stocker la clé secrète et la clé d'accès de l'utilisateur AWS IAM dans Jenkins à l'aide de ce plug-in. Nous allons installer le "AWS Steps Plugin" afin de pouvoir utiliser "awsStep" pour injecter les informations d'identification que nous avons créées. Nous effectuerons l'opération S3 Upload Object et Download Object depuis le pipeline pour tester les informations d'identification que nous avons créées.

Pré-requis

  1. Utilisateur AWS IAM avec sa clé d'accès et sa clé secrète ayant un accès en lecture/écriture aux compartiments S3 (Cliquez ici pour apprendre à créer un utilisateur IAM sur AWS).
  2. Bucket S3 (Cliquez ici pour apprendre à créer un Bucket S3 sur AWS).
  3. Serveur Jenkins (recherchez "Comment installer Jenkins à l'aide d'un fichier war sur l'instance AWS EC2 Ubuntu ?" pour apprendre à créer un serveur Jenkins)

Qu'allons-nous faire ?

  1. Installez le plug-in Cloudbees AWS Credentials.
  2. Stockez les clés d'accès et secrètes AWS dans Jenkins Credentials.
  3. Installez le plug-in d'étapes AWS.
  4. Créez un pipeline et testez les informations d'identification que nous avons créées.

Installer le plug-in Cloudbees AWS Credentials

Connectez-vous à Jenkins à l'adresse http://:8080/jenkins

Ici, j'ai http://52.87.233.129:8080/jenkins/

Vous verrez le tableau de bord comme suit. Cliquez sur "Gérer Jenkins" dans le panneau de gauche.

Ici, sous "Configuration du système", cliquez sur "Gérer les plugins" pour installer le plugin requis.

Vous verrez 4 onglets, Mises à jour, Disponible, Installé et Avancé. Cliquez sur l'onglet "Disponible" pour rechercher le plugin.

Recherchez "cloudbees secret manager" dans la zone de recherche sous l'onglet "Disponible". Cochez la case du résultat du plugin "Cloudbees AWS Credentials" que vous obtenez et cliquez sur "Installer sans redémarrage" pour installer le plugin sans redémarrer Jenkins.

Une fois le plugin installé, vous obtiendrez le message "Succès" comme suit.

Stocker les clés d'accès et secrètes AWS dans Jenkins Credentials

Nous sommes maintenant prêts à stocker les informations d'identification AWS.

Retournez au tableau de bord principal et cliquez sur "Gérer Jenkins".

Maintenant, cliquez sur "Gérer les informations d'identification" sous "Sécurité" pour stocker la clé secrète AWS et la clé d'accès.

Cliquez sur "global" sous "Magasins étendus à Jenkins" --> "Ajouter des informations d'identification".

Sur cette page, vous pourrez stocker les secrets. Cliquez sur le menu déroulant Type et sélectionnez AWS. Spécifiez un nom pour les secrets, une description, un ID de clé d'accès et une clé d'accès secrète. Cliquez sur OK pour stocker les secrets.

Vous pouvez voir que le secret est maintenant disponible.

Installer le plug-in d'étapes AWS

L'étape suivante consiste à installer le plug-in "Pipeline AWS Steps". Revenez au tableau de bord principal, cliquez sur Gérer Jenkins --> Gérer les plugins.

Sous l'onglet "Disponible", recherchez "Étapes AWS". Sélectionnez le plugin "Pipeline :AWS Steps" et cliquez sur "Installer sans redémarrage". Cela installera le plugin sans redémarrer Jenkins.

Une fois le plugin installé avec succès, vous verrez le message de réussite comme suit.

Créez un pipeline et testez les informations d'identification que nous avons créées.

Maintenant, créons un nouveau Job. Dans cette tâche, nous essaierons d'utiliser le secret que nous avons créé.

Retournez au tableau de bord principal, cliquez sur "Nouveaux éléments".

Donnez un nom au Job, et sélectionnez "Pipeline" comme type de Job. Cliquez sur "Ok", cela créera un Job de type Pipeline.

Cliquez sur "Build Triggers", faites défiler jusqu'à "Pipeline", sélectionnez "Pipeline script" et ajoutez le code suivant dans la zone de texte.

Il s'agit d'un pipeline avec 1 étape "tester les informations d'identification AWS". Dans cette étape, nous utiliserons "withAWS" et spécifierons ici notre nom secret. À l'intérieur, nous allons créer un exemple de fichier "hello.txt" avec un message "hello Jenkins". Ce fichier sera ensuite téléchargé dans le compartiment S3 "devopslee" de mon compte.

Vous devez spécifier le nom de votre bucket au lieu de devopslee.

Pour voir si le fichier est téléchargé, nous essaierons de le télécharger en tant que "downloadedHello.txt" et de l'imprimer à l'aide de la commande "cat".

Si toutes ces étapes ont réussi, cela signifie que nous avons pu utiliser avec succès notre clé secrète et notre clé d'accès à l'aide des informations d'identification que nous avons créées.

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

Maintenant, pour tester le pipeline ci-dessus, accédez au pipeline et cliquez sur "Build Now". Cela exécutera le pipeline.

Cliquez sur l'historique de compilation --> sortie de la console.

Ici, dans la sortie de la console, vous pouvez voir que le fichier a été créé, chargé, téléchargé et lu avec succès.

Cela signifie que nous avons réussi à authentifier le compartiment S3 à l'aide de la clé d'accès et du secret que nous avons stockés dans les informations d'identification.

Conclusion

Dans cet article, nous avons installé les plugins Cloudbees AWS Credentials et AWS Steps Plugin dans Jenkins. Nous avons stocké le secret et les clés d'accès de l'utilisateur AWS IAM dans Jenkins à l'aide des informations d'identification Jenkins. Nous avons également créé un pipeline Jenkins où nous avons testé les informations d'identification que nous avons créées en chargeant et en téléchargeant un objet dans le compartiment S3.


Linux
  1. Comment gérer l'expiration et le vieillissement du mot de passe utilisateur sous Linux

  2. Comment ajouter un nouvel utilisateur MySQL et accorder des privilèges d'accès

  3. Comment accéder aux systèmes de fichiers Linux dans Windows 10 et WSL 2

  4. Comment créer et supprimer un groupe d'utilisateurs sous Linux

  5. Comment intégrer Jenkins avec CloudFormation et Step Functions

Comment créer une rubrique SNS et un abonné sur AWS

Qu'est-ce que l'UID sous Linux, comment le trouver et le modifier

Comment restreindre l'accès SSH à certains utilisateurs sous Linux

Comment restreindre l'accès au répertoire et aux sous-répertoires sur Nginx

Comment créer un utilisateur Sudo sur Ubuntu et Debian

Comment limiter votre accès utilisateur root dans Debian et Ubuntu