+22

Lỗi bảo mật khi làm CI/CD trên AWS mà các bạn không để ý

Bài viết cập nhật mới: Bảo mật CI/CD AWS

Khi ta xây dựng luồng CI/CD với các dịch vụ ở trên AWS. Ví dụ là EC2, ta thường SSH lên con EC2 và thực thi các câu lệnh. Hoặc là khi ta làm việc với AWS S3 ta thường dùng câu lệnh AWS CLI để tải tệp tin từ S3 xuống, để AWS CLI hoạt động được ta phải cấu hình AWS KEY, và mình thấy các bạn thường để thẳng trong tệp tin CI/CD. Nhìn thì không có gì sai nhưng nó là lỗi bảo mật rất quang trọng.

Vấn đề

Ví dụ các bạn xem tệp tin buildspec.yaml của CodeBuild sau:

image.png

Trong đoạn code của buildspec.yaml trên có rất nhiều lỗi bảo mật:

  • Thứ nhất là AWS Key để thẳng trong tệp tin
  • Thứ hai là thông tin DB để ở dạng plain text
  • Thứ ba là bạn dùng scp để chuyển tệp tin cấu hình password của DB ra ngoài internet
  • Thứ tư là trong tệp tin này bạn có thể để lộ SSH Key, IP và user của Server

Mình nghĩ khá nhiều bạn mới thường sẽ mắc một trong các lỗi trên.

Giải pháp

Để tăng thêm độ bảo mật cho tệp tin buildspec.yaml ta có thể dùng các cách sau:

  • Thứ nhất dùng IAM Role gắn vào CodeBuild thay vì để AWS Key vào tệp tin buildspec.yaml. Nếu bạn sử dụng GitlabCI hoặc Jenkins thì dùng AWS STS
  • Thứ hai là dùng Parameter Store hoặc AWS Secrets Manager để chứa thông tin DB
  • Thứ ba và tư thì thay vì dùng scp và ssh ta nên sử dụng AWS Systems Manager Run Command

DevOps VN

Theo dõi kênh tiktok của DevOps VN

image.png


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí