Am urmatoarea configuratie:
- Infrastructura este configurată folosind AWS CDK;
- Am o singură stivă/mediu (producție, montare...);
- Fiecare stivă are un S3 Bucket diferit (utilizat pentru găzduirea site-ului);
- Am o stivă care creează un utilizator IAM (utilizat de CI/CD);
- CI/CD în acest caz este GitHub Actions (se implementează de fiecare dată când o îmbinare la
principal
se întâmplă);
- Utilizatorul IAM a pus doar drepturi la toate Bucket-urile (deploy înseamnă a pune activele în Bucket);
Care este cel mai bun mod de a stoca/manipula cheile pentru acel utilizator?
Am început să-l printez în Outputs, dar nu este sigur. Toată lumea îl poate vedea (dacă au acces la jurnalele CI/CD, de exemplu).
Mi s-a sugerat să le stochez în SSM: funcționează, dar nu îl puteți crea ca SecureString, așa că ar fi doar un șir.
Am aruncat o privire și în Secrets Manager: funcționează și pare a fi mai sigur (nu sunt sigur dacă sentimentul meu de aici este totuși valid).
Ceva idei/pareri aici?
Mulțumiri!
În cod arată ceva de genul:
// Stiva de producție
const bucket = Bucket nou (aceasta, „Găleată”, {
bucketName: „producție”,
});
// Staging Stack
const bucket = Bucket nou (aceasta, „Găleată”, {
bucketName: „proiectare”,
});
// Stiva IAM
utilizator const = utilizator nou (acest, „Utilizator”, {
userName: „ci-cd-user”,
});
const userAccessKey = noua cheie de acces(aceasta, "UserAccessKey", { user });
// Acesta este doar un exemplu, trec prin toate Bucket-urile disponibile
bucketProduction.grantPut(utilizator);
bucketStaging.grantPut(utilizator);