GNU/Linux >> Belajar Linux >  >> Linux

Cara menyimpan kunci akses pengguna AWS dan kunci rahasia di Jenkins

Anda dapat menyimpan kunci AWS dengan aman di kredensial Jenkins. Jika ingin berinteraksi dengan AWS dari server Jenkins, Anda dapat menyimpan kunci pengguna AWS IAM dengan aman di Jenkins daripada secara terbuka menggunakan kunci di Jenkins Pipeline. Plugin Jenkins "CloudBees AWS Credentials" memungkinkan penyimpanan kredensial pengguna AWS IAM dalam Jenkins Credentials API. Kami kemudian dapat menggunakan kredensial ini di pipa kami dan menyuntikkannya ke dalam pipa dengan langkah "withAWS". Untuk menggunakan langkah "withAWS", kita perlu menginstal plugin "AWS Steps Plugin".

Pada artikel ini, kita akan menginstal plugin "CloudBees AWS Credentials" dan menyimpan kunci rahasia dan kunci akses pengguna AWS IAM di Jenkins menggunakan plugin ini. Kami akan menginstal "AWS Steps Plugin" sehingga kami dapat menggunakan "awsStep" untuk memasukkan kredensial yang kami buat. Kami akan melakukan operasi S3 Upload Object dan Download Object dari dalam pipeline untuk menguji kredensial yang kami buat.

Prasyarat

  1. Pengguna AWS IAM dengan kunci akses dan kunci rahasianya yang memiliki akses baca/tulis ke Bucket S3(Klik di sini untuk mempelajari cara membuat pengguna IAM di AWS).
  2. S3 Bucket(Klik di sini untuk mempelajari cara membuat Bucket S3 di AWS).
  3. Server Jenkins(Cari "Bagaimana cara menginstal Jenkins menggunakan file perang pada instans AWS EC2 Ubuntu?" untuk mempelajari cara membuat Server Jenkins)

Apa yang akan kita lakukan?

  1. Instal plugin Cloudbees AWS Credentials.
  2. Simpan AWS Access dan kunci Rahasia di Kredensial Jenkins.
  3. Instal AWS Steps Plugin.
  4. Buat Pipeline dan uji kredensial yang kita buat.

Instal plugin Cloudbees AWS Credentials

Masuk ke Jenkins di http://:8080/jenkins

Di sini, saya punya http://52.87.233.129:8080/jenkins/

Anda akan melihat dashboard sebagai berikut. Klik "Kelola Jenkins" di panel kiri.

Di sini, di bawah "Konfigurasi Sistem", klik "Kelola Plugin" untuk menginstal plugin yang diperlukan.

Anda akan melihat 4 tab, Updates, Available, Installed dan Advanced. Klik tab "Tersedia" untuk mencari plugin.

Cari "pengelola rahasia cloudbees" di kotak pencarian di bawah tab "Tersedia". Centang pada kotak centang hasil plugin "Cloudbees AWS Credentials" yang Anda dapatkan dan klik "Install without restart" untuk menginstal plugin tanpa memulai ulang Jenkins.

Setelah plugin terinstal, Anda akan mendapatkan pesan "Success" sebagai berikut.

Simpan AWS Access dan kunci Rahasia di Jenkins Credentials

Kami sekarang siap untuk menyimpan kredensial AWS.

Kembali ke dasbor utama dan klik "Kelola Jenkins".

Sekarang, klik "Kelola Kredensial" di bawah "Keamanan" untuk menyimpan kunci Rahasia AWS dan kunci Akses.

Klik "global" di bawah "Toko yang dicakup untuk Jenkins" --> "Tambahkan kredensial".

Di halaman ini, Anda akan dapat menyimpan rahasia. Klik pada tarik-turun Jenis dan pilih AWS. Tentukan nama untuk secretes, description, Access Key ID dan Secret Access Key. Klik OK untuk menyimpan rahasia.

Anda dapat melihat Rahasia sekarang tersedia.

Instal AWS Steps Plugin

Langkah selanjutnya adalah menginstal plugin "Pipeline AWS Steps". Kembali ke dasbor utama, klik Kelola Jenkins --> Kelola Plugin.

Di bawah tab "Tersedia", cari "AWS Steps". Pilih plugin "Pipeline:AWS Steps" dan klik "Install without restart". Ini akan menginstal plugin tanpa memulai ulang Jenkins.

Setelah plugin berhasil diinstal, Anda akan mendapatkan pesan Success sebagai berikut.

Buat Pipeline dan uji kredensial yang kita buat.

Sekarang, mari kita buat Job baru. Dalam Job ini, kita akan mencoba menggunakan rahasia yang kita buat.

Kembali ke dasbor utama, klik "Item baru".

Beri nama Job, dan pilih "Pipeline" sebagai jenis Job. Klik "Ok", ini akan membuat Job tipe Pipeline.

Klik "Build Triggers", gulir ke bawah ke "Pipeline", pilih "Pipeline script" dan tambahkan kode berikut di kotak teks.

Ini adalah Pipeline dengan 1 tahap "tes kredensial AWS". Pada langkah ini, kami akan menggunakan "withAWS" dan menentukan nama rahasia kami di sini. Di dalamnya, kita akan membuat file sampel "hello.txt" dengan pesan "hello Jenkins". File ini kemudian akan diunggah ke ember S3 "devopslee" di akun saya.

Anda perlu menentukan nama bucket, bukan devopslee.

Untuk melihat apakah file sudah terupload, kami akan mencoba mendownloadnya sebagai "downloadedHello.txt" dan mencetaknya menggunakan perintah "cat".

Jika semua langkah ini berhasil, itu berarti kami berhasil menggunakan kunci rahasia dan kunci akses kami menggunakan kredensial yang kami buat.

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

Sekarang, untuk menguji jalur pipa di atas, buka jalur pipa dan klik "Build Now". Ini akan menjalankan jalur pipa.

Klik pada Riwayat pembuatan --> Keluaran konsol.

Di sini, di keluaran konsol, Anda dapat melihat bahwa file berhasil dibuat, diunggah, diunduh, dan dibaca.

Ini berarti kami berhasil mengautentikasi bucket S3 menggunakan kunci akses dan rahasia yang kami simpan di kredensial.

Kesimpulan

Dalam artikel ini, kami menginstal Cloudbees AWS Credentials dan plugin AWS Steps Plugin di Jenkins. Kami menyimpan rahasia dan kunci akses pengguna AWS IAM di Jenkins menggunakan Kredensial Jenkins. Kami juga membuat Jenkins Pipeline tempat kami menguji kredensial yang kami buat dengan mengunggah dan mengunduh objek ke bucket S3.


Linux
  1. Cara membuat dan menghapus grup pengguna di Linux

  2. Cara mengintegrasikan Jenkins dengan CloudFormation dan Step Functions

  3. Bagaimana Cara Membuat Pengguna Baru Dengan Akses Ssh?

  1. Cara Mengelola Kedaluwarsa dan Penuaan Kata Sandi Pengguna di Linux

  2. Cara Menambahkan Pengguna MySQL Baru dan Memberikan Hak Akses

  3. Cara Mengunci dan Membuka Kunci Pengguna di Linux

  1. Rahasia Kubernetes – Cara Membuat, Menggunakan, dan Mengakses Rahasia

  2. Cara Mengakses Sistem File Linux di Windows 10 dan WSL 2

  3. Bagaimana Cara Mengubah Frasa Sandi Kunci Rahasia Gpg dengan Benar?