AWS Secrets Manager và Parameter Store
Sử dụng Kho dữ liệu trong AWS
Dunieski Otano
AWS Solutions Architect
Thảm họa hardcode mật khẩu
Dev hardcode mật khẩu DB trong mã
Mã đẩy lên GitHub công khai
Kẻ tấn công tìm thấy trong 12 phút
DB bị xóa, bị đòi tiền chuộc
Vì sao không bao giờ hardcode bí mật
Lỗi thường gặp
Hardcode trong mã nguồn
Văn bản thuần trong file cấu hình
Commit vào hệ thống quản lý phiên bản
Hệ quả
Lộ lọt trên repo công khai
Khó xoay vòng
Thiếu nhật ký kiểm toán
Tổng quan AWS Secrets Manager
Mục đích
Lưu và xoay vòng thông tin xác thực tự động
Lưu những gì
Mật khẩu DB, khóa API, token OAuth
Tính năng chính
Xoay vòng tự động, mã hóa KMS, ghi nhật ký kiểm toán
Tự động xoay vòng trong Secrets Manager
Quy trình xoay vòng
Lambda cập nhật thông tin xác thực
Cửa sổ xoay vòng
Thiết lập thời điểm xoay (rate hoặc cron)
Không gián đoạn
Mật khẩu cũ và mới đều dùng được trong lúc xoay vòng
Lưu bí mật ở dạng JSON
Bí mật có cấu trúc
Lưu nhiều giá trị trong một secret
Định dạng JSON
{"username": "admin", "password": "...", "host": "db.example.com"}
Truy xuất và phân tích
Dùng API GetSecretValue
Tổng quan Parameter Store
Thuộc
AWS Systems Manager
Mục đích
Lưu cấu hình và bí mật tĩnh
Tổ chức phân cấp
/app/prod/db/password
/app/dev/api-key
Miễn phí
Tối đa 10.000 tham số chuẩn (tối đa 4 KB)
Tham số nâng cao (tối đa 8 KB) tính phí
Các loại tham số của Parameter Store
String
Văn bản thuần (cờ tính năng, endpoint)
StringList
Danh sách phân tách bằng dấu phẩy (địa chỉ IP)
SecureString
Mã hóa bằng KMS (mật khẩu, khóa API)
Hướng dẫn chọn: Secrets Manager vs Parameter Store
Dùng Secrets Manager khi
Cần xoay vòng tự động
Lưu thông tin đăng nhập DB
Dùng Parameter Store khi
Giá trị cấu hình tĩnh
Nhạy chi phí (tầng miễn phí)
Dùng kết hợp
Mẫu phổ biến trong production
Ayo berlatih!
Sử dụng Kho dữ liệu trong AWS
Preparing Video For Download...