Tôi đã thiết lập như sau:
- Cơ sở hạ tầng được thiết lập bằng AWS CDK;
- Tôi có một Ngăn xếp/Môi trường (Sản xuất, Dàn dựng...);
- Mỗi Stack có một S3 Bucket khác nhau (được sử dụng để lưu trữ trang web);
- Tôi có một Ngăn xếp tạo Người dùng IAM (được sử dụng bởi CI/CD);
- CI/CD trong trường hợp này là GitHub Actions (triển khai mỗi khi hợp nhất thành
chủ yếu
xảy ra);
- Người dùng IAM chỉ có quyền đối với tất cả các Nhóm (triển khai có nghĩa là đưa nội dung vào Nhóm);
Cách tốt nhất để lưu trữ/xử lý các khóa cho người dùng đó là gì?
Tôi đã bắt đầu in nó trong Đầu ra nhưng nó không an toàn. Mọi người đều có thể nhìn thấy nó (ví dụ: nếu họ có quyền truy cập vào nhật ký của CI/CD).
Tôi đã được đề xuất lưu trữ chúng trong SSM: nó hoạt động nhưng bạn không thể tạo nó dưới dạng SecureString nên nó sẽ chỉ là một Chuỗi.
Tôi cũng đã xem qua Secrets Manager: nó cũng hoạt động và có vẻ an toàn hơn (mặc dù tôi không chắc liệu cảm giác của tôi ở đây có đúng không).
Bất kỳ ý tưởng/ý kiến ở đây?
Cảm ơn!
Trong mã nó trông giống như:
// Ngăn xếp sản xuất
const bucket = new Bucket(this, "Bucket", {
bucketName: "sản xuất",
});
// Dàn dựng ngăn xếp
const bucket = new Bucket(this, "Bucket", {
bucketName: "dàn dựng",
});
// Ngăn xếp IAM
const user = new user(this, "User", {
tên người dùng: "ci-cd-user",
});
const userAccessKey = new AccessKey(this, "UserAccessKey", { user });
// Đây chỉ là một ví dụ, tôi xem qua tất cả các Bucket có sẵn
bucketProduction.grantPut(người dùng);
xôStaging.grantPut(người dùng);