Có nhiều sự cố Git được mở trên bản đồ Terraform về vấn đề này, với nhiều nhận xét thú vị, nhưng hiện tại tôi vẫn chưa thấy giải pháp cho vấn đề này.Mật khẩu và mật khẩu rõ ràng trong tập tin trạng thái (từ xa)
Terraform lưu trữ các giá trị văn bản thuần túy, bao gồm cả mật khẩu, trong các tệp tfstate.
Hầu hết người dùng được yêu cầu lưu trữ chúng từ xa để nhóm có thể làm việc đồng thời trên cùng một cơ sở hạ tầng với hầu hết trong số họ lưu trữ các tệp trạng thái trong S3.
Vậy làm cách nào để ẩn mật khẩu?
Có ai ở đây sử dụng Terraform để sản xuất không? Bạn có giữ mật khẩu ở dạng văn bản thuần túy không? Bạn có quy trình làm việc đặc biệt để xóa hoặc ẩn chúng không? Điều gì sẽ xảy ra khi bạn chạy terraform apply
sau đó?
Tôi đã xem xét các tùy chọn sau:
- cửa hàng chúng trong Lãnh sự - Tôi không sử dụng Lãnh
- loại bỏ chúng khỏi tập tin trạng thái - điều này đòi hỏi một quá trình được thực hiện mỗi lần và tôi không biết cách Terraform xử lý tài nguyên bằng mật khẩu trống/không thể đọc/không hoạt động
- lưu trữ mật khẩu mặc định sau đó thay đổi (vì vậy Terraform sẽ không có mật khẩu hoạt động trong tệp tfstate) - giống như trên
- sử dụng tài nguyên Vault - nghe nó không hoàn thành quy trình làm việc nào được nêu ra
- lưu trữ chúng trong Git với git-repo-crypt - Git không phải là tùy chọn
- mã hóa toàn cầu nhóm S3 - điều này sẽ không ngăn mọi người nhìn thấy mật khẩu văn bản thuần túy nếu họ có quyền truy cập vào AWS như một mức độ "quản lý", nhưng nó có vẻ là lựa chọn tốt nhất cho đến nay
Từ quan điểm của tôi, đây là những gì tôi muốn thấy:
- tập tin trạng thái không bao gồm mật khẩu
- tệp trạng thái được mã hóa
- mật khẩu trong file trạng thái là "con trỏ" để các nguồn lực khác, như "hầm: backend-type:/path/to/password"
- mỗi lần chạy Terraform sẽ tập hợp các mật khẩu cần thiết từ nhà cung cấp quy định
Đây chỉ là một điều ước.
Nhưng để quay lại câu hỏi - bạn sử dụng Terraform như thế nào trong sản xuất?
Re: 'aws ssm', tôi đang kéo từ ssm trong một kịch bản wrapper chạy ứng dụng trong docker, và nó đã được xuất sắc. Tôi đã luôn luôn ghét có ngay cả bí mật được mã hóa trong kiểm soát phiên bản. – voxobscuro