Khi khách hàng trở nên chuyên nghiệp hơn trong việc sử dụng AWS, họ sẽ bắt đầu tìm hiểu cách sử dụng các dịch vụ AWS bổ sung để đáp ứng mục tiêu của mình. Trong nhiều trường hợp, giai đoạn ban đầu sẽ liên quan đến việc nghiên cứu và thử nghiệm dịch vụ trước khi triển khai trên môi trường đám mây của họ. Đối với khách hàng có thể cần duy trì tuân thủ một hoặc nhiều tiêu chuẩn tuân thủ như NIST hoặc PCI họ có thể bắt đầu thử nghiệm với AWS Config.
AWS Config là một dịch vụ cho phép bạn đánh giá trạng thái cấu hình của tài nguyên của bạn so với các cấu hình mong muốn và báo cáo trạng thái hiện tại của mỗi tài nguyên. Ví dụ, nếu các Amazon S3 bucket của bạn cần được mã hóa mọi lúc, bạn có thể sử dụng Config để đánh giá các tài nguyên đó và đánh dấu chúng là không tuân thủ nếu bất kỳ tài nguyên nào chưa được mã hóa.
Để sử dụng AWS Config, bạn phải kích hoạt bộ ghi cấu hình, theo dõi cấu hình tài nguyên của bạn và thiết lập một kênh giao hàng được sử dụng để cập nhật các bản ghi trạng thái cấu hình. Theo thiết kế, AWS Config được kích hoạt cho mỗi khu vực cho mỗi tài khoản và bạn sẽ cần kích hoạt nó trong mỗi khu vực mà bạn muốn sử dụng nó. Tuy nhiên, bạn có thể sử dụng Quick Setup, một tính năng của AWS Systems Manager, để kích hoạt AWS Config trên toàn tổ chức AWS Organizations của bạn chỉ trong vài cú nhấp chuột.
Quick Setup giúp đơn giản hóa và tự động hóa việc thiết lập dịch vụ trên các tài khoản và vùng của bạn trên AWS mà không cần viết bất kỳ dòng mã nào. Nếu bạn đã kích hoạt AWS Config trong các tài khoản AWS riêng lẻ của mình và muốn thiết lập AWS Config trên toàn tổ chức AWS sử dụng Quick Setup, bạn phải loại bỏ bộ ghi âm cấu hình hiện có và kênh giao hàng trước khi chuyển sang triển khai trên toàn tổ chức với Quick Setup.
Trong bài viết này, chúng tôi sẽ hướng dẫn cách di chuyển từ AWS Config trên một tài khoản đến triển khai trên toàn tổ chức. Bạn sẽ tìm hiểu cách loại bỏ bộ ghi âm cấu hình và kênh giao hàng từ tất cả các tài khoản riêng lẻ để chuyển sang triển khai trên toàn tổ chức.
Tổng quan về giải pháp
Giải pháp được triển khai bằng một Stack AWS CloudFormation . Stack này được triển khai trong một tài khoản quản lý (trung tâm) với các thành phần sau:
- Tài nguyên tùy chỉnh CloudFormation – Stack CloudFormation bao gồm một triển khai tài nguyên tùy chỉnh. Tài nguyên tùy chỉnh cung cấp một cách để viết logic triển khai tùy chỉnh được chạy bởi CloudFormation. Logic triển khai tùy chỉnh được hỗ trợ bởi một hàm Lambda được tự động kích hoạt khi thực hiện các hoạt động Stack (ví dụ: tạo, cập nhật và xóa).
- Tài nguyên tùy chỉnh AWS Lambda – Stack CloudFormation triển khai một hàm Lambda được sử dụng để kích hoạt một tài liệu tự động của Systems Manager trên các vùng/ tài khoản khác nhau. AWS Lambda Function được kích hoạt bởi tài nguyên tùy chỉnh CloudFormation khi tạo Stack.
- Tài liệu tự động của Systems Manager (runbooks) – Tài liệu tự động của AWS Systems Manager xác định các hành động tự động để thực hiện trên các nguồn tài nguyên AWS của bạn. Một trong những hành động đó là aws:executeScript mà chúng tôi sử dụng ở đây để thực hiện các cuộc gọi API để thực hiện các hoạt động sau đây:
- Lưu cấu hình và trạng thái ghi âm Config vào Parameter Store trước khi xóa.
- Xóa AWS Config.
- Amazon SQS Dead-Letter Queues – Mẫu CloudFormation cũng triển khai một hàng đợi thư Amazon Simple Queue Service (Amazon SQS) để nhận các thông báo lỗi AWS Lambda. Hàng đợi thư Dead-letter rất hữu ích để gỡ lỗi và cô lập các thông báo chưa được xử lý để xác định tại sao xử lý thất bại.
Sơ đồ sau đây cho thấy kiến trúc của giải pháp:

Hình 1: Tự động xóa cấu hình recorder và delivery channel trên các tài khoản
Khi CloudFormation stack được triển khai, các bước theo thứ tự sau sẽ xảy ra như được thể hiện trong sơ đồ trên:
- CloudFormation Custom Resource gọi bất đồng bộ AWS Lambda Function.
- Tiếp theo, AWS Lambda Function sẽ kích hoạt System Manager Automation Document (Runbook) đa tài khoản / đa vùng.
- System Manager Automation Document giả định vai trò IAM (AWSConfigDeletion-ExecutionRole) được tạo ra trong các tài khoản đích. (Bạn có thể triển khai vai trò IAM này cho tất cả các tài khoản đích của mình thông quaAWS CloudFormation StackSets)
- Vai trò thực hiện sẽ gọi một tài liệu tự động hóa trong các tài khoản / khu vực đích.
- Tài liệu tự động hóa sau đó sử dụng aws:executeScript để thực hiện một cuộc gọi API để lưu trữ cấu hình AWS Config trong Parameter store và sau đó xóa AWS Config.
Điều kiện tiên quyết
Để triển khai giải pháp này, cần phải hoàn thành các yêu cầu tiên quyết sau:
- Giải pháp này sử dụng một tài khoản quản lý (trung tâm) trong AWS Organizations để điều phối việc triển khai. Bạn phải có định danh quản trị cho tài khoản này, đây là tài khoản được gọi là “Management Account” trong Hình 1.
- Giải pháp này sử dụng AWS CloudFormation StackSets để dễ dàng triển khai các tài nguyên IAM của AWS từ tài khoản trung tâm đến các tài khoản đích. Khi triển khai một tập hợp stack, các tài khoản phải có các quyền cần thiết để thực hiện các hoạt động StackSets để điều phối việc triển khai các mẫu CloudFormation của bạn. Bạn có thể sử dụng quyền quản lý gồm tự quản lý hoặc dịch vụ quản lý.
Cấu hình Stack Set
Bạn cần cấu hình các quyền cần thiết cho StackSet cả trong Management Account và các tài khoản đích. Liên kết đến các yêu cầu tiên quyết
Triển khai AWS Config Execution Role (AWSConfigDeletion-ExecutionRole) trên các tài khoản đích:
Template này tạo một Vai trò IAM trên các tài khoản được chỉ định, Vai trò IAM này được giả định bởi tài liệu tự động và có các quyền cần thiết để xóa các quy tắc và cài đặt AWS Config.
Trên Tài khoản Management /Central:
- Tải xuống tệp mẫu IAM AWSConfigDeletion-ExecutionRole.yaml
- Di chuyển đến bảng điều khiển CloudFormation StackSets console.
- Chọn Tạo StackSet (Create StackSet )
- Từ danh sách thả xuống, chọn với new resources (standard)
- Trên trang Tạo StackSet, chọn Tải lên tệp mẫu(Upload a template file), chọn Choose file, tải lên tệp mẫu đã tải xuống “AWSConfigDeletion-ExecutionRole.yaml”, sau đó chọn Tiếp theo (Next)
- Trong Specify StackSet:
- Để tên Stack, nhập tên Stack.
- Đối với ManagementAccountNumber, nhập ID Tài khoản Quản lý AWS hoặc Central Account ID.

Hình 2. Chỉ định chi tiết StackSet
- Chọn Tiếp theo (Next.)
- Trong phần Tài khoản, nhập ID tài khoản AWS của bạn. Ngoài ra, bạn có thể chọn triển khai vào các đơn vị tổ chức cụ thể trong tổ chức AWS của bạn.
- Trong phần Chỉ định khu vực, Chọn khu vực ưa thích.

Hình 3. Đặt các khu vực và tài khoản triển khai
- Chọn Tiếp theo (Next.)
- Tiếp tục từng trang còn lại.
- Trên trang cuối cùng, chọn xác nhận rằng các tài nguyên IAM có thể được tạo.

Hình 4. Đảm bảo rằng bạn đã chọn ô xác nhận và tiếp tục
Triển khai giải pháp
Trong tài khoản Management / Central của bạn:
- Tải xuống tệp mẫu giải pháp. AWSConfigDeletion-Automation-Multiaccounts.yaml
- Truy cập vào bảng điều khiển AWS CloudFormation, chọn Tạo stack.
- Từ danh sách thả xuống, chọn với new resources (standard).
- Trên trang Tạo stack, chọn Tải lên tệp mẫu đã tải xuống có tên “AWSConfigDeletion-Automation-Multiaccounts.yaml”, sau đó chọn Tiếp theo.

Hình 5. Tên Stack và các tham số
- Chọn Next
- Tiếp tục điều hướng các trang còn lại

Hình 6. Thiết lập các tùy chọn cho stack của bạn
- Trên trang cuối cùng, chọn hộp chọn “ xác nhận tạo tài nguyên”.

Hình 7. Chọn hộp xác nhận trước khi tạo stack.
Cleaning up
Để tránh phát sinh các chi phí lặp lại, chúng tôi khuyến khích bạn xóa bỏ môi trường khi không cần thiết nữa.
Để xóa tài nguyên được tạo ra trong các bước 1-2 của bài viết này, hãy truy cập vào bảng điều khiển AWS CloudFormation trong tài khoản quản lý. Từ thanh điều hướng bên trái, chọn StackSets, sau đó chọn StackSet mà bạn đã tạo. Từ Actions, chọn Delete StackSet.
Để biết thêm thông tin, xem Hướng dẫn người dùng AWS CloudFormation về Xóa StackSets trên bảng điều khiển AWS CloudFormation.
Để xóa tài nguyên được tạo ra trong bước 3 của bài viết này, hãy truy cập vào bảng điều khiển AWS CloudFormation trong tài khoản quản lý. Chọn stack bạn đã tạo, sau đó chọn Delete.
Để biết thêm thông tin, xem Hướng dẫn người dùng AWS CloudFormation về Xóa một stack trên bảng điều khiển AWS CloudFormation.
Tổng kết
Trong bài viết này, chúng tôi chia sẻ một giải pháp cung cấp một phương pháp tự động để xóa bất kỳ kênh giao hàng hoặc bản ghi cấu hình nào được triển khai trên một môi trường AWS. Điều này loại bỏ một số phức tạp cho khách hàng đang tìm cách thực hiện một khung tuân thủ chuẩn hóa tiêu chuẩn trên tất cả các tài khoản và khu vực AWS của họ. Bằng cách sử dụng giải pháp này, chúng tôi đã có thể tự động quá trình loại bỏ bộ ghi và kênh giao hàng từ các tài khoản riêng lẻ, điều này trước đây sẽ phải được thực hiện bằng tay trước khi triển khai AWS Config tại cấp tổ chức. Nếu bạn muốn tìm hiểu thêm về AWS Config, hãy đọc về các best practices cho AWS Config và AWS Config Conformance Packs.
Bài được dịch từ bài viết trên AWS Blogs, bạn có thể xem bài viết gốc tại đây.