Bạn có thể lưu trữ khóa AWS của mình một cách an toàn trong thông tin xác thực Jenkins. Nếu bạn muốn tương tác với AWS từ máy chủ Jenkins của mình, bạn có thể lưu trữ khóa người dùng AWS IAM của mình một cách an toàn trong Jenkins thay vì sử dụng công khai các khóa trong Jenkins Pipeline của mình. Plugin Jenkins "CloudBees AWS Credentials" cho phép lưu trữ thông tin xác thực người dùng AWS IAM trong API Jenkins Credentials. Sau đó, chúng ta có thể sử dụng các thông tin xác thực này trong đường ống của mình và đưa chúng vào đường ống với bước "withAWS". Để sử dụng bước "withAWS", chúng ta cần cài đặt plugin "AWS Steps Plugin".
Trong bài viết này, chúng ta sẽ cài đặt plugin "CloudBees AWS Credentials" và lưu trữ khóa bí mật và khóa truy cập của người dùng AWS IAM trong Jenkins bằng plugin này. Chúng ta sẽ cài đặt "AWS Steps Plugin" để có thể sử dụng "awsStep" để đưa thông tin xác thực mà chúng ta đã tạo. Chúng tôi sẽ thực hiện thao tác S3 Upload Object và Download Object từ bên trong đường ống để kiểm tra thông tin xác thực mà chúng tôi đã tạo.
Ở đây, tôi cóhttp://52.87.233.129:8080/jenkins/http://52.87.233.129/jenkins/?utm_source=diendancongnghe.com
Bạn sẽ thấy bảng điều khiển như sau. Nhấp vào "Quản lý Jenkins" ở bảng điều khiển bên trái.
Tại đây, trong "Cấu hình hệ thống", hãy nhấp vào "Quản lý plugin" để cài đặt plugin cần thiết.
Bạn sẽ thấy 4 tab, Cập nhật, Có sẵn, Đã cài đặt và Nâng cao. Nhấp vào tab "Có sẵn" để tìm kiếm plugin.
Tìm kiếm "cloudbees secret manager" trong hộp tìm kiếm bên dưới tab "Có sẵn". Đánh dấu vào hộp kiểm của kết quả plugin "Cloudbees AWS Credentials" mà bạn nhận được và nhấp vào "Cài đặt mà không cần khởi động lại" để cài đặt plugin mà không cần khởi động lại Jenkins.
Sau khi plugin được cài đặt, bạn sẽ nhận được thông báo "Thành công" như sau.
Quay lại bảng điều khiển chính và nhấp vào "Quản lý Jenkins".
Bây giờ, hãy nhấp vào "Quản lý thông tin xác thực" trong "Bảo mật" để lưu trữ Khóa bí mật AWS và Khóa truy cập.
Nhấp vào "toàn cầu" trong "Lưu trữ trong phạm vi Jenkins" --> "Thêm thông tin xác thực".
Trên trang này, bạn sẽ có thể lưu trữ các bí mật. Nhấp vào menu thả xuống Loại và chọn AWS. Chỉ định tên cho các bí mật, mô tả, ID Khóa truy cập và Khóa truy cập bí mật. Nhấp vào OK để lưu trữ các bí mật.
Bạn có thể thấy Bí mật hiện đã khả dụng.
Trong tab "Có sẵn", hãy tìm kiếm "AWS Steps". Chọn plugin "Pipeline: AWS Steps" và nhấp vào "Cài đặt mà không cần khởi động lại". Thao tác này sẽ cài đặt plugin mà không cần khởi động lại Jenkins.
Sau khi plugin được cài đặt thành công, bạn sẽ thấy thông báo Success như sau.
Quay lại bảng điều khiển chính, nhấp vào "New items".
Đặt tên cho Job và chọn "Pipeline" làm loại Job. Nhấp vào "Ok", thao tác này sẽ tạo Job loại Pipeline.
Nhấp vào "Build Triggers", cuộn xuống "Pipeline", chọn "Pipeline script" và thêm mã sau vào hộp văn bản.
Đây là Pipeline có 1 giai đoạn "test AWS credentials". Trong bước này, chúng ta sẽ sử dụng "withAWS" và chỉ định tên bí mật của chúng ta ở đây. Bên trong đó, chúng ta sẽ tạo một tệp mẫu "hello.txt" với thông báo "hello Jenkins". Sau đó, tệp này sẽ được tải lên thùng S3 "devopslee" trong tài khoản của tôi.
Bạn cần chỉ định tên thùng của mình thay vì devopslee.
Để xem tệp đã được tải lên chưa, chúng ta sẽ thử tải xuống dưới dạng "downloadedHello.txt" và in tệp đó bằng lệnh "cat".
Nếu các bước này thành công, điều đó có nghĩa là chúng ta đã có thể sử dụng thành công khóa bí mật và khóa truy cập của mình bằng thông tin xác thực đã tạo.
Bây giờ, để kiểm tra đường ống trên, đi đến đường ống và nhấp vào "Xây dựng ngay". Thao tác này sẽ chạy đường ống.
Nhấp vào Lịch sử xây dựng -- > Đầu ra bảng điều khiển.
Tại đây, trong đầu ra bảng điều khiển, bạn có thể thấy rằng tệp đã được tạo, tải lên, tải xuống và đọc thành công.
Điều này có nghĩa là chúng tôi đã có thể xác thực thành công thùng S3 bằng khóa truy cập và bí mật mà chúng tôi đã lưu trữ trong thông tin xác thực.
Trong bài viết này, chúng ta sẽ cài đặt plugin "CloudBees AWS Credentials" và lưu trữ khóa bí mật và khóa truy cập của người dùng AWS IAM trong Jenkins bằng plugin này. Chúng ta sẽ cài đặt "AWS Steps Plugin" để có thể sử dụng "awsStep" để đưa thông tin xác thực mà chúng ta đã tạo. Chúng tôi sẽ thực hiện thao tác S3 Upload Object và Download Object từ bên trong đường ống để kiểm tra thông tin xác thực mà chúng tôi đã tạo.
Điều kiện tiên quyết
- Người dùng AWS IAM có khóa truy cập và khóa bí mật có quyền truy cập đọc/ghi vào S3 Bucket (Nhấp vào đây để tìm hiểu cách tạo người dùng IAM trên AWS).
- S3 Bucket (Nhấp vào đây để tìm hiểu cách tạo S3 Bucket trên AWS).
- Jenkins Server (Tìm kiếm "Cách cài đặt Jenkins bằng tệp war trên phiên bản AWS EC2 Ubuntu?" để tìm hiểu cách tạo Jenkins Server)
Chúng ta sẽ làm gì?
- Cài đặtPlugin Cloudbees AWS Credentials.
- Lưu trữ AWS Access và Secret keys trong Jenkins Credentials.
- Cài đặtPlugin AWS Steps.
- Tạo Pipeline và kiểm tra thông tin xác thực mà chúng ta đã tạo.
Cài đặt plugin Cloudbees AWS Credentials
Đăng nhập vào Jenkins tại http://<Jenkins-IP>:8080/jenkinsỞ đây, tôi cóhttp://52.87.233.129:8080/jenkins/http://52.87.233.129/jenkins/?utm_source=diendancongnghe.com
Bạn sẽ thấy bảng điều khiển như sau. Nhấp vào "Quản lý Jenkins" ở bảng điều khiển bên trái.
Tại đây, trong "Cấu hình hệ thống", hãy nhấp vào "Quản lý plugin" để cài đặt plugin cần thiết.
Bạn sẽ thấy 4 tab, Cập nhật, Có sẵn, Đã cài đặt và Nâng cao. Nhấp vào tab "Có sẵn" để tìm kiếm plugin.
Tìm kiếm "cloudbees secret manager" trong hộp tìm kiếm bên dưới tab "Có sẵn". Đánh dấu vào hộp kiểm của kết quả plugin "Cloudbees AWS Credentials" mà bạn nhận được và nhấp vào "Cài đặt mà không cần khởi động lại" để cài đặt plugin mà không cần khởi động lại Jenkins.
Sau khi plugin được cài đặt, bạn sẽ nhận được thông báo "Thành công" như sau.
Lưu trữ khóa Truy cập và Bí mật AWS trong Thông tin xác thực Jenkins
Bây giờ chúng ta đã sẵn sàng lưu trữ thông tin xác thực AWS.Quay lại bảng điều khiển chính và nhấp vào "Quản lý Jenkins".
Bây giờ, hãy nhấp vào "Quản lý thông tin xác thực" trong "Bảo mật" để lưu trữ Khóa bí mật AWS và Khóa truy cập.
Nhấp vào "toàn cầu" trong "Lưu trữ trong phạm vi Jenkins" --> "Thêm thông tin xác thực".
Trên trang này, bạn sẽ có thể lưu trữ các bí mật. Nhấp vào menu thả xuống Loại và chọn AWS. Chỉ định tên cho các bí mật, mô tả, ID Khóa truy cập và Khóa truy cập bí mật. Nhấp vào OK để lưu trữ các bí mật.
Bạn có thể thấy Bí mật hiện đã khả dụng.
Cài đặt Plugin AWS Steps
Bước tiếp theo là cài đặt plugin "Pipeline AWS Steps". Quay lại bảng điều khiển chính, nhấp vào Quản lý Jenkins -- > Quản lý Plugin.Trong tab "Có sẵn", hãy tìm kiếm "AWS Steps". Chọn plugin "Pipeline: AWS Steps" và nhấp vào "Cài đặt mà không cần khởi động lại". Thao tác này sẽ cài đặt plugin mà không cần khởi động lại Jenkins.
Sau khi plugin được cài đặt thành công, bạn sẽ thấy thông báo Success như sau.
Tạo Pipeline và kiểm tra thông tin xác thực mà chúng ta đã tạo.
Bây giờ, hãy tạo một Job mới. Trong Job này, chúng ta sẽ thử sử dụng secrete mà chúng ta đã tạo.Quay lại bảng điều khiển chính, nhấp vào "New items".
Đặt tên cho Job và chọn "Pipeline" làm loại Job. Nhấp vào "Ok", thao tác này sẽ tạo Job loại Pipeline.
Nhấp vào "Build Triggers", cuộn xuống "Pipeline", chọn "Pipeline script" và thêm mã sau vào hộp văn bản.
Đây là Pipeline có 1 giai đoạn "test AWS credentials". Trong bước này, chúng ta sẽ sử dụng "withAWS" và chỉ định tên bí mật của chúng ta ở đây. Bên trong đó, chúng ta sẽ tạo một tệp mẫu "hello.txt" với thông báo "hello Jenkins". Sau đó, tệp này sẽ được tải lên thùng S3 "devopslee" trong tài khoản của tôi.
Bạn cần chỉ định tên thùng của mình thay vì devopslee.
Để xem tệp đã được tải lên chưa, chúng ta sẽ thử tải xuống dưới dạng "downloadedHello.txt" và in tệp đó bằng lệnh "cat".
Nếu các bước này thành công, điều đó có nghĩa là chúng ta đã có thể sử dụng thành công khóa bí mật và khóa truy cập của mình bằng thông tin xác thực đã tạo.
Mã:
pipeline { agent any stages { stage('test AWS credentials') { steps { withAWS(credentials: 'jenkins-test-user', region: '[B]us-east-1[/b]') { sh 'echo "hello Jenkins">hello.txt' s3Upload acl: 'Private', bucket: '[B]devopslee[/b]', file: 'hello.txt' s3Download bucket: 'devopslee', file: 'downloadedHello.txt', path: 'hello.txt' sh 'cat downloadedHello.txt' } } } }}
Nhấp vào Lịch sử xây dựng -- > Đầu ra bảng điều khiển.
Tại đây, trong đầu ra bảng điều khiển, bạn có thể thấy rằng tệp đã được tạo, tải lên, tải xuống và đọc thành công.
Điều này có nghĩa là chúng tôi đã có thể xác thực thành công thùng S3 bằng khóa truy cập và bí mật mà chúng tôi đã lưu trữ trong thông tin xác thực.