ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်
IAM User က AWS account ထဲမှာ create လုပ်တဲ့ identity တစ်ခု (developer တစ်ယောက်, application တစ်ခု) ကို ကိုယ်စားပြုပါတယ် — username/password ဒါမှမဟုတ် access key နဲ့ authenticate လုပ်ပါတယ်။ IAM Group က user တွေကို logical အုပ်စု (ဥပမာ - 'developers', 'admins') ခွဲထားပြီး, permission ကို group level မှာ တစ်ခါတည်း assign လုပ်လို့ရပါတယ်။ IAM Policy က 'ဘယ် resource ကို ဘာလုပ်ခွင့်ရှိလဲ' ဆိုတဲ့ permission document (JSON format) ပါ — user/group တစ်ခုကို policy တစ်ခု (ဒါမှမဟုတ် အများ) attach လုပ်လို့ရပါတယ်။ Best practice ကတော့ 'least privilege' — လိုအပ်သလောက်ပဲ permission ပေးရန် ဆိုတဲ့ principle ပါ.
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
Developer team အသစ်တစ်ဖွဲ့ ဝင်လာရင် — IAM Group 'developers' ကို EC2/S3 permission (production database permission မပါ) attach ထားရင်, developer တစ်ယောက်စီကို User create ပြီး group ထဲ ထည့်ရုံနဲ့ permission set ချက်ချင်း ရပါတယ် — user တစ်ယောက်ချင်းကို policy တစ်ခုချင်း manual attach ရမှာ မဟုတ်တော့ပါ.
အတူတူ ကြည့်မယ်
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:ListBucket"],
"Resource": ["arn:aws:s3:::my-tutorial-bucket", "arn:aws:s3:::my-tutorial-bucket/*"]
}
]
}$ (AWS Console) IAM > Users > developer-1: attached policies: [S3ReadOnlyTutorial]၅ မိနစ် စမ်းကြည့်
IAM User တစ်ခု (ကိုယ်ပိုင် practice account ထဲ) create လုပ်ကြည့်ပြီး, S3 read-only permission ပါတဲ့ policy တစ်ခု attach ကြည့်ပါ — permission ကို console ထဲက confirm လုပ်ကြည့်ပါ။
သတိလေးတစ်ချက်
IAM access key ကို public repository ထဲ တစ်ခါတစ်ရံ commit မိရင် (accident ဖြင့်တောင်) AWS bot/attacker တွေက minute အနည်းငယ်အတွင်း ရှာတွေ့ပြီး misuse လုပ်နိုင်ပါတယ် — leak ဖြစ်ရင် access key ကို ချက်ချင်း deactivate/rotate လုပ်ပါ။