Xoay mật khẩu MySQL: Sử dụng một người dùng duy nhất để thay đổi mật khẩu người dùng khác
Tôi hiện đang làm việc để thiết lập chiến lược xoay vòng mật khẩu cho ứng dụng dựa trên AWS Aurora / MySQL.
Kế hoạch của tôi là sử dụng một chiến lược như thế này ...
- Tên người dùng / mật khẩu của ứng dụng được lưu trữ trong các tham số được mã hóa AWS SSM.
- Máy chủ ứng dụng chỉ có quyền truy xuất thông tin đăng nhập của họ từ SSM. Bị hạn chế bởi môi trường (dàn dựng, sản xuất, v.v.)
- Lambda được cấu hình để chạy định kỳ để thay đổi mật khẩu trong MySQL và lưu trữ các giá trị mới trong SSM. Lambda để xác thực với cơ sở dữ liệu bằng vai trò AWS IAM, thay vì sử dụng mật khẩu.
Phần cuối cùng là phần tôi không chắc lắm. Cấu hình này sẽ yêu cầu vai trò / người dùng lambda có quyền thay đổi mật khẩu cho tất cả người dùng ứng dụng khác.
Đây có phải là một cách hợp lý để làm điều đó, từ góc độ bảo mật? Vì người dùng lambda mysql sẽ sử dụng vai trò IAM thay vì mật khẩu, điều này sẽ hạn chế việc sử dụng nó đối với các vai trò được ủy quyền.
Cách thay thế sẽ là không có người dùng db đặc biệt để lambda đăng nhập, mà là để hàm lambda truy xuất thông tin đăng nhập của từng người dùng từ SSM, sau đó đăng nhập với tư cách là từng người dùng để thay đổi mật khẩu của nó.
Dù bằng cách nào thì lambda cũng cần có quyền truy cập vào từng người dùng.
Giả sử tôi có thể truy xuất cẩn thận quyền truy cập vào "lambda_user" trong MySQL, có bất kỳ vấn đề rõ ràng nào khác về việc người dùng có quyền thay đổi mật khẩu người dùng khác không?
Ngoài ra, chỉ cần làm rõ, đây là những người dùng ứng dụng, không phải người dùng loại người thông thường sẽ sử dụng các thông tin xác thực này.
Trả lời
Đây là cách thực hành tốt nhất để làm điều đó, vì chính xác những lý do bạn đã phác thảo. Bằng cách để Lambda sử dụng vai trò xác thực thay vì thông tin đăng nhập, bạn giảm thiểu số lượng bí mật mà bạn giữ xung quanh, đó chắc chắn là một điều tốt. Chỉ có 2 điều đáng chỉ ra:
Giờ đây, bạn có thể sử dụng CloudFormation để tự động hóa việc cung cấp và triển khai Lambda cho một mục đích đặc biệt. Kết quả là bạn có thể làm điều này một cách tương đối dễ dàng. Cá nhân tôi không phải là một fan hâm mộ lớn của CloudFormation nhưng tôi sẽ sử dụng nó ở đây.
Việc chuyển sang điểm cuối siêu dữ liệu V2 có thể cung cấp một số bảo mật bổ sung từ SSRF được tìm thấy trong cơ sở hạ tầng của bạn cũng như các hình thức đột nhập khác, mặc dù điều đó sẽ không liên quan lắm trong trường hợp sử dụng này.