Bài đăng trên blog này được viết bởi Glenn Chia Jin Wee, Associate Cloud Architect, and Randall Han, Professional Services.
Bạn có thể yêu cầu phê duyệt thủ công Amazon Machine Image (AMI) được xây dựng từ đường ống Amazon Elastic Compute Cloud (Amazon EC2) Image Builder trước khi chia sẻ AMI này với các tài khoản AWS khác hoặc với tổ chức AWS. Hiện tại, Image Builder cung cấp một đường ống từ đầu đến cuối tự động chia sẻ AMI sau khi chúng được xây dựng.
Trong bài đăng này, chúng tôi sẽ hướng dẫn các bước để kích hoạt thông báo phê duyệt trước khi AMI được chia sẻ với các tài khoản AWS khác. Image Builder hỗ trợ kiểm tra hình ảnh tự động bằng cách sử dụng các thành phần kiểm tra. Thực hành tốt được khuyến nghị là tự động hóa các bước kiểm tra, tuy nhiên, các tình huống có thể xảy ra khi các bước kiểm tra trở nên khó khăn để tự động hóa hoặc chính sách tuân thủ nội bộ yêu cầu thực hiện kiểm tra thủ công trước khi phân phối hình ảnh. Trong những tình huống như vậy, có một bước phê duyệt thủ công hữu ích nếu bạn muốn xác minh cấu hình AMI trước khi chia sẻ nó với các tài khoản AWS khác hoặc tổ chức AWS. Bước phê duyệt thủ công giảm thiểu khả năng chia sẻ AMI được cấu hình sai với các nhóm khác có thể dẫn đến các vấn đề hậu cần. Giải pháp này gửi một email với một liên kết để phê duyệt hoặc từ chối AMI. Người dùng phê duyệt AMI sau khi đã xác minh rằng nó được xây dựng theo các thông số kỹ thuật. Sau khi phê duyệt AMI, giải pháp sẽ tự động chia sẻ nó với các tài khoản AWS được chỉ định.
Tổng quan

- Trong giải pháp này, một Image Builder Pipeline được chạy để xây dựng một Golden AMI trong Account A. Sau khi AMI được xây dựng, Image Builder xuất dữ liệu về AMI đó đến một Amazon Simple Notification Service (Amazon SNS).
- SNS Topic chuyển dữ liệu đến một hàm Lambda AWS đăng ký theo dõi nó.
- Hàm Lambda đăng ký theo dõi chủ đề này lấy dữ liệu, định dạng nó, sau đó khởi động một SSM Automation, truyền cho nó Tên và ID của AMI.
- Bước đầu tiên của SSM Automation là bước phê duyệt thủ công. SSM Automation đầu tiên xuất bản vào một chủ đề SNS có đăng ký email với email của người phê duyệt. Người phê duyệt sẽ nhận được email với một URL mà họ có thể nhấp để phê duyệt bước này.
- Bước phê duyệt xác định một role quản lý cụ thể của Identity và Access Management (IAM) của AWS làm người phê duyệt. role này có các quyền tối thiểu cần thiết để phê duyệt bước phê duyệt thủ công. Sau khi thực hiện các bài kiểm tra thủ công trên Golden AMI, người chấp thuận sẽ đảm nhận role này.
- Sau khi đảm nhận role này, người phê duyệt sẽ nhấp vào liên kết phê duyệt đã được gửi qua email. Sau khi phê duyệt bước này, một Hàm Lambda AWS được kích hoạt.
- Hàm Lambda này chia sẻ Golden AMI với Account B và gửi email thông báo cho Người nhận Tài khoản Đích rằng AMI đã được chia sẻ.
Yêu cầu tiên quyết
Để thực hiện hướng dẫn này, bạn cần có những điều sau:
- Hai tài khoản AWS – một tài khoản để chứa các tài nguyên của giải pháp và tài khoản thứ hai nhận Golden AMI được chia sẻ.
- Trong tài khoản chứa giải pháp, chuẩn bị một nguyên lý quản lý truy cập và xác thực AWS Identity and Access Management (IAM) có quyền sts:AssumeRole. Nguyên lý này phải giả định role IAM được liệt kê là người phê duyệt trong bước phê duyệt của Systems Manager. ARN của nguyên lý IAM này được sử dụng trong tham số AWS CloudFormation Approver và được thêm vào chính sách tin tưởng của role IAM phê duyệt.
- Ngoài ra, trong tài khoản chứa giải pháp, hãy đảm bảo rằng nguyên lý IAM triển khai mẫu CloudFormation có các quyền cần thiết để tạo các tài nguyên trong stack.
- Một Virtual Private Cloud Amazon (Amazon VPC) mới sẽ được tạo ra từ stack. Hãy đảm bảo rằng bạn có ít hơn năm VPC trong Khu vực đã chọn.
Hướng dẫn chi tiết
Trong phần này, chúng tôi sẽ hướng dẫn bạn qua các bước cần thiết để triển khai giải pháp Image Builder. Giải pháp được triển khai với CloudFormation.
Trong kịch bản này, chúng tôi triển khai giải pháp trong tài khoản của người phê duyệt. Email phê duyệt sẽ được gửi đến địa chỉ email được xác định trước để phê duyệt thủ công, trước khi AMI mới được tạo ra được chia sẻ cho các tài khoản đích.
Người phê duyệt trước tiên giả định role IAM phê duyệt và sau đó chọn liên kết phê duyệt. Điều này dẫn đến trang phê duyệt trình quản lý hệ thống. Sau khi được phê duyệt, một thông báo email sẽ được gửi đến địa chỉ email tài khoản đích được xác định trước, thông báo cho các bên liên quan rằng AMI đã được chia sẻ thành công.
Các bước cấp cao mà chúng tôi sẽ làm theo là:
- Trong Tài khoản A, triển khai mẫu AWS CloudFormation được cung cấp. Điều này bao gồm một Pipeline Image Builder mẫu, các chủ đề Amazon SNS, các chức năng Lambda và một Tài liệu tự động SSM.
- Phê duyệt đăng ký SNS từ địa chỉ email được cung cấp của bạn.
- Chạy pipeline từ Bảng điều khiển Amazon EC2 Image Builder.
- [Tùy chọn] Để thực hiện các bài kiểm tra thủ công, khởi chạy một trường hợp Amazon EC2 từ AMI đã được xây dựng sau khi pipeline chạy.
- Một email sẽ được gửi đến bạn với các tùy chọn để phê duyệt hoặc từ chối bước. Đảm bảo rằng bạn đã giả định role IAM phê duyệt trước khi nhấp vào liên kết phê duyệt dẫn đến trang phê duyệt bảng điều khiển SSM.
- Sau khi phê duyệt bước, một chức năng AWS Lambda sẽ chia sẻ AMI đến Tài khoản B và cũng gửi một email đến các người nhận email tài khoản đích thông báo rằng AMI đã được chia sẻ.
- Đăng nhập vào Tài khoản B và xác nhận rằng AMI đã được chia sẻ.
Bước 1: Triển khai AWS CloudFormation template
- Template CloudFormation, template.yaml triển khai giải pháp cũng có thể được tìm thấy tại kho GitHub này. Làm theo hướng dẫn tại kho để triển khai ngăn xếp.
Bước 2: Xác minh địa chỉ email của bạn
- Sau khi chạy quá trình triển khai, bạn sẽ nhận được một email yêu cầu xác nhận Đăng ký tại địa chỉ email của người phê duyệt. Chọn Xác nhận đăng ký.

- Điều này dẫn đến màn hình sau, cho thấy rằng đăng ký của bạn đã được xác nhận.

- Lặp lại 2 bước trước đó cho địa chỉ email đích.
Bước 3: Chạy pipeline từ Image Builder console
Trong console của Image Builder, dưới mục Image pipelines, chọn checkbox bên cạnh Pipeline đã tạo, chọn Actions và chọn Run pipeline.

Lưu ý: Pipeline sẽ mất khoảng 20-30 phút để hoàn thành.
Bước 4: [Tùy chọn] Khởi chạy một instance Amazon EC2 từ AMI đã được tạo
Nếu bạn cần phải xác minh AMI thủ công trước khi chia sẻ nó với các tài khoản khác hoặc với tổ chức AWS, người phê duyệt sẽ khởi chạy một instance Amazon EC2 từ AMI đã được tạo và tiến hành kiểm tra thủ công trên instance EC2 để đảm bảo nó hoạt động đúng cách.
- Trong console Amazon EC2, chọn Images, sau đó chọn AMIs. Xác minh rằng AMI đã được tạo.

- Theo tài liệu AWS: Khởi chạy một instance EC2 từ AMI tùy chỉnh cho các bước để khởi chạy một instance Amazon EC2 từ AMI.
Bước 5: Chọn URL phê duyệt trong email được gửi
- Khi pipeline được chạy thành công, bạn sẽ nhận được một email khác với một URL để phê duyệt AMI.

- Trước khi nhấp vào liên kết phê duyệt, bạn phải giả định IAM Role đã được cài đặt làm người phê duyệt cho bước Systems Manager.
- Trong bảng điều khiển CloudFormation, chọn stack đã triển khai.

- Chọn Outputs và sao chép tên IAM Role.

- Trong khi đăng nhập với IAM Principal có quyền truy cập để giả định IAM Role phê duyệt, làm theo hướng dẫn tại tài liệu AWS IAM để chuyển đổi một role bằng cách sử dụng bảng điều khiển để giả định role phê duyệt.
Trong trang Chuyển đổi Role, dán tên IAM Role mà bạn đã sao chép ở bước trước.
Lưu ý: IAM Role này được triển khai với quyền tối thiểu. Do đó, việc nhìn thấy các thông báo cảnh báo trên bảng điều khiển là điều dễ hiểu sau khi giả định role này.

- Bây giờ trong email phê duyệt, chọn URL Phê duyệt. Điều này dẫn đến bảng điều khiển Systems Manager. Chọn Gửi.

- Sau khi phê duyệt bước thủ công, bước thứ hai được thực thi, chia sẻ AMI với tài khoản đích.

Bước 6: Xác minh rằng AMI đã được chia sẻ đến Tài khoản B
- Đăng nhập vào Tài khoản B.
- Trong bảng điều khiển Amazon EC2, bên dưới Images, chọn AMIs. Sau đó trong danh sách thả xuống, chọn Private images. Xác minh rằng AMI đã được chia sẻ.

- Xác minh rằng thông báo email thành công đã được gửi đến địa chỉ email tài khoản đích đã cung cấp.

Dọn dẹp
Phần này cung cấp thông tin cần thiết để xóa các tài nguyên được tạo ra như là một phần của bài viết này.
- Hủy đăng ký AMI đã tạo và đã chia sẻ.
- Đăng nhập vào Tài khoản A và làm theo các bước tại Tài liệu AWS: Hủy đăng ký AMI Linux của bạn.
- Xóa mẫu CloudFormation. Để biết hướng dẫn, xem Xóa một stack trên bảng điều khiển AWS CloudFormation.
Kết luận
Trong bài viết này, chúng tôi đã giải thích cách kích hoạt thông báo phê duyệt cho một đường ống Image Builder trước khi AMI được chia sẻ với các tài khoản khác. Giải pháp này có thể được mở rộng để chia sẻ với nhiều tài khoản AWS hơn hoặc ngay cả với một tổ chức AWS. Với giải pháp này, bạn sẽ được thông báo khi các hình ảnh vàng mới được tạo, cho phép bạn xác minh tính chính xác của cấu hình trước khi chia sẻ chúng để sử dụng rộng rãi. Điều này giảm khả năng chia sẻ AMI với các cấu hình không chính xác mà các bài kiểm tra đã không xác định được.
Chúng tôi mời bạn thử nghiệm với các AMI khác nhau được tạo bằng Image Builder và các thành phần Image Builder khác nhau. Kiểm tra kho GitHub này cho các ví dụ khác nhau sử dụng Image Builder. Hãy kiểm tra blog này về các tích hợp Image Builder với EC2 Auto Scaling Instance Refresh. Hãy cho chúng tôi biết câu hỏi và kết quả của bạn trong phần bình luận, và hãy vui vẻ!