AWS IAM sodda tilda: foydalanuvchilar, guruhlar, rollar va siyosatlar
Asoslar4 daqInnovialabs tahririyati
Qisqacha
IAM AWS akkauntingizda kim nima qila olishini hal qiladi: foydalanuvchi, guruh va rollar huquqlarni JSON-siyosatlar orqali oladi, ruxsat berilmagan hamma narsa taqiqlangan, root akkaunt esa MFA bilan yopiladi va kundalik ishda ishlatilmaydi.
IAM nima qiladi
IAM (Identity and Access Management) — har bir so‘rov uchun bitta savolga javob beradigan AWS xizmati: bu hisob qaydnomasi shu resurs ustida shu amalni bajara oladimi? Bu konsolda ishlayotgan odamlarga, CLI orqali ishlaydigan skriptlarga va AWS API ga murojaat qiladigan ilovalarga tegishli.
Standart javob — yo‘q. Siyosat aniq ruxsat bermaguncha hech narsaga ruxsat yo‘q.
To‘rtta qurilish bloki
| Blok | Bu nima | Qayerda ishlatiladi |
|---|---|---|
| User (foydalanuvchi) | Parol va/yoki kirish kalitlariga ega doimiy hisob | Odam yoki eski sxemalarda skript |
| Group (guruh) | Foydalanuvchilar to‘plami; guruh siyosatlari barcha a’zolarga amal qiladi | «Developers», «ReadOnly», «Admins» |
| Role (rol) | Doimiy kalitlarsiz hisob: uni qabul qilishadi va vaqtinchalik ma’lumotlar olishadi | Serverlar, Lambda, CI/CD, akkauntlararo kirish |
| Policy (siyosat) | Ruxsat berilgan yoki taqiqlangan amallar ro‘yxatini saqlovchi JSON-hujjat | Foydalanuvchi, guruh yoki rolga biriktiriladi |
Siyosatlarni alohida foydalanuvchilarga emas, guruh va rollarga biriktiring. Shunda yangi xodim shunchaki guruhga qo‘shiladi, ketayotgan xodim esa undan olib tashlanadi.
JSON-siyosatni qanday o‘qish kerak
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject"],
"Resource": "arn:aws:s3:::my-app-uploads/*"
}
]
}
Uni gap sifatida o‘qing:
- Effect —
Allow(ruxsat) yokiDeny(taqiq). - Action — qaysi API amallari,
servis:Amalko‘rinishida.s3:*niqobi S3 ning barcha amallariga ruxsat beradi, bu esa kamdan-kam kerak bo‘ladi. - Resource — qaysi obyektlar ustida, ARN orqali. Bu yerda —
my-app-uploadsbucketidagi istalgan fayl, boshqa hech narsa emas. - Condition (ixtiyoriy) — qo‘shimcha shartlar, masalan ma’lum IP yoki MFA bilan kirish.
Version — siyosat tilining versiyasi, o‘zgartiriladigan sana emas.
Tekshiruv mantiqi qisqacha: aniq Deny har doim ustun, keyin aniq Allow so‘rovga ruxsat beradi, tilga olinmagan hamma narsa esa taqiqlangan.
Root akkauntni chetga olib qo‘ying
Root — akkaunt ochilgan email. U hamma narsani qila oladi, jumladan akkauntni yopish va billingni o‘zgartirishni, uning huquqlarini esa IAM siyosatlari bilan cheklab bo‘lmaydi.
Akkaunt yaratilgandan so‘ng darhol nima qilish kerak:
- Root uchun MFA ni yoqing (apparat kalit yoki autentifikator ilova).
- Root da kirish kalitlari yo‘qligiga ishonch hosil qiling, bo‘lsa — o‘chiring.
- Kuchli noyob parol qo‘ying va shaxsiy emas, kompaniya nazorat qiladigan pochtadan foydalaning.
- Kundalik ish uchun alohida administrator hisobini yarating va boshqa root bilan kirmang.
Root faqat kamdan-kam vazifalar uchun kerak, masalan billing va akkauntning ayrim sozlamalari uchun.
Kirish kalitlari o‘rniga rollar
Access keys — doimiy kalitlar juftligi. Agar ular repozitoriy, log yoki noutbuk orqali sizib chiqsa, kimdir sezib o‘chirmaguncha ishlashda davom etadi.
Rollar o‘zi muddati tugaydigan vaqtinchalik ma’lumotlar beradi. Imkon bo‘lgan joyda ulardan foydalaning:
- EC2 va konteynerlar — rolni instance yoki vazifaga biriktiring, SDK ma’lumotlarni o‘zi oladi, konfiglarda kalit bo‘lmaydi.
- Lambda — har bir funksiya execution role bilan ishlaydi.
- CI/CD — GitHub Actions va shunga o‘xshash tizimlar rolni OIDC orqali, sekretlarda kalit saqlamasdan qabul qiladi.
- Odamlar — xodimlar kirishi uchun AWS IAM Identity Center ni tavsiya qiladi, u ham vaqtinchalik ma’lumotlar beradi.
Kirish kalitlarini faqat boshqa iloji bo‘lmagan joyda qoldiring va ularni muntazam almashtiring.
Kichik jamoa uchun minimal huquqlar
Eng kam imtiyoz tamoyili (least privilege) — har bir hisobga faqat haqiqatan kerak bo‘lgan huquqlar.
- Admins guruhi — bir-ikki kishi, MFA majburiy.
- Developers guruhi — loyiha xizmatlariga kirish, ideal holatda faqat ishlab chiqish resurslariga.
- ReadOnly guruhi — menejerlar, auditorlar va qo‘llab-quvvatlash uchun.
- Har bir ilovaga alohida rol — faqat o‘z bucketi, navbati yoki bazasiga huquq.
- Deploy uchun alohida rol — uni CI/CD qabul qiladi.
Tez boshlash kerak bo‘lsa, AWS ning boshqariladigan siyosatlaridan boshlang, keyin ularni toraytiring. IAM Access Analyzer hisob haqiqatda nimadan foydalanganiga qarab siyosat taklif qila oladi.
Ko‘p uchraydigan xatolar
- Root yoki hammada
AdministratorAccessbilan kundalik ish. - Kirish kalitlari Git da yoki noutbukdagi
.envfaylida. - Ilova siyosatlarida
"Action": "*"va"Resource": "*". - Bir nechta odamga bitta umumiy foydalanuvchi — kim nima qilgani noma’lum.
- Ishdan ketgan xodimlarning unutilgan hisoblari.