ЁЯЧЭя╕П рдзрдбрд╛ 01 тАФ IAM рдХрд╛: рдорд╛рд╕реНрдЯрд░-рдЪрд╛рд╡реА рдмрдВрдж рдХрд░реВрди рдареЗрд╡рд╛
ЁЯУН рддреБрдореНрд╣реА рдЗрдереЗ рдЖрд╣рд╛рдд: 12 рдкреИрдХреА рдзрдбрд╛ 01 ┬╖ рдкреБрдвреЗ: lesson-02-users-groups
ЁЯУж рдпрд╛ рдмреНрд░рдБрдЪрдордзреНрдпреЗ рдХрд╛рдп рдЖрд╣реЗ
AWS рд╕реБрд░рдХреНрд╖реЗрдЪрд╛ рдкрд╛рдпрд╛: рдУрд│рдЦ (identity) рдореБрд│рд╛рдд рдХрд╛ рдЕрд╕рддреЗ, рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рдирд╡реНрдпрд╛ AWS account рдиреЗ рд╕рд░реНрд╡рд╛рдд рдЖрдзреА рдХрд░рд╛рдпрдЪреА рдЧреЛрд╖реНрдЯ тАФ root рдмрдВрдж рдХрд░реВрди рдареЗрд╡рдгреЗ.
ЁЯзТ 5 рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рдореБрд▓рд╛рд▓рд╛ рд╕рдордЬрд╛рд╡рд▓реНрдпрд╛рд╕рд╛рд░рдЦреЗ
рдПрдХрд╛ рд╢рд╛рд│реЗрдХрдбреЗ рдПрдХрдЪ рдорд╛рд╕реНрдЯрд░-рдЪрд╛рд╡реА ЁЯЧЭя╕П рдЖрд╣реЗ рдЬреА рд╕рдЧрд│реЗ рдЙрдШрдбрддреЗ тАФ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ, рдХрд╛рд░реНрдпрд╛рд▓рдп, рдкрд░реАрдХреНрд╖реЗрдЪреЗ рдкреЗрдкрд░ рдареЗрд╡рд▓реЗрд▓реА рддрд┐рдЬреЛрд░реА. рдХрд▓реНрдкрдирд╛ рдХрд░рд╛, рдореБрдЦреНрдпрд╛рдзреНрдпрд╛рдкрд┐рдХреЗрдиреЗ "рд╕реЛрдкреЗ рд╡реНрд╣рд╛рд╡реЗ рдореНрд╣рдгреВрди" рддрд┐рдЪреНрдпрд╛ photocopy рдХрд╛рдвреВрди рдкреНрд░рддреНрдпреЗрдХ рд╢рд┐рдХреНрд╖рд┐рдХрд╛, рд╡рд┐рджреНрдпрд╛рд░реНрдереА рдЖрдгрд┐ рд╢рд┐рдкрд╛рдпрд╛рд▓рд╛ рдПрдХреЗрдХ рджрд┐рд▓реА.
рдЖрддрд╛: рдкрд░реАрдХреНрд╖реЗрдЪреЗ рдкреЗрдкрд░ рдлреБрдЯрддрд╛рдд. рд╣реЗ рдХреЛрдгреА рдХреЗрд▓реЗ? рдХреЛрдгрд╛рд▓рд╛рдЪ рдорд╛рд╣реАрдд рдирд╛рд╣реА тАФ рдкреНрд░рддреНрдпреЗрдХрд╛рдЪреА рдЪрд╛рд╡реА рддреА рддрд┐рдЬреЛрд░реА рдЙрдШрдбрддреЗ. рдХреЛрдгреА рд╢рд╛рд│рд╛ рд╕реЛрдбреВрди рдЧреЗрд▓реЗ? рддрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреБрд▓реВрдк рдмрджрд▓рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓.
рддреА рдорд╛рд╕реНрдЯрд░-рдЪрд╛рд╡реА рдореНрд╣рдгрдЬреЗ рддреБрдордЪреЗ AWS root account тАФ рдЬреНрдпрд╛ email рдиреЗ рддреБрдореНрд╣реА sign up рдХреЗрд▓реЗ рддреЗ. рддреЗ рд╕рдЧрд│реЗ рдХрд╛рд╣реА, рдХрд╛рдпрдордЪреЗ рдХрд░реВ рд╢рдХрддреЗ, рд╕рдВрдкреВрд░реНрдг account delete рдХрд░рдгреНрдпрд╛рд╕рд╣. AWS рдЪрд╛ рдкрд╣рд┐рд▓рд╛ рдирд┐рдпрдо:
рдорд╛рд╕реНрдЯрд░-рдЪрд╛рд╡реА рддрд┐рдЬреЛрд░реАрдд рдмрдВрдж рдХрд░рд╛. ЁЯФТ Root рд▓рд╛ MFA рдорд┐рд│рддреЗ (рддреБрдордЪрд╛ phone рд▓рд╛рдЧрдгрд╛рд░реЗ рджреБрд╕рд░реЗ рдХреБрд▓реВрдк), account-рдкрд╛рддрд│реАрдЪреНрдпрд╛ рдХрд╛рдорд╛рдВрд╕рд╛рдареА рд╡рд░реНрд╖рд╛рддреВрди рдХрджрд╛рдЪрд┐рдд рдПрдХрджрд╛ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ, рдЖрдгрд┐ рд░реЛрдЬрдЪреНрдпрд╛ рдХрд╛рдорд╛рд╕рд╛рдареА рдХрдзреАрдЪ рдирд╛рд╣реА.
рд░реЛрдЬрдЪреНрдпрд╛ рдХрд╛рдорд╛рд╕рд╛рдареА рд╢рд╛рд│рд╛ рдПрдХ рдУрд│рдЦрдкрддреНрд░ рдХрд╛рд░реНрдпрд╛рд▓рдп рдЙрдШрдбрддреЗ тАФ рддреЗрдЪ IAM. рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддреА рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ robot рд▓рд╛ рд╕реНрд╡рддрдГрдЪреЗ рдХрд╛рд░реНрдб рдорд┐рд│рддреЗ, рдЖрдгрд┐ рддреЗ рдХреЛрдгрддреА рджрд╛рд░реЗ рдЙрдШрдбрддреЗ рдпрд╛рдЪреА рд╕реНрд╡рддрдГрдЪреА рдЫреЛрдЯреА рдпрд╛рджреА. рдХрд╛рд░реНрдб рд╣рд░рд╡рд▓реЗ? рдлрдХреНрдд рдПрдХрдЪ рдХрд╛рд░реНрдб рд░рджреНрдж рдХрд░рд╛. рдПрдЦрд╛рджреА рд░рд╣рд╕реНрдпрдордп рдХреГрддреА? рдиреЛрдВрджрд╡рд╣реА рдиреЗрдордХреЗ рд╕рд╛рдВрдЧрддреЗ рдХреА рдХреЛрдгрд╛рдЪреНрдпрд╛ рдХрд╛рд░реНрдбрдиреЗ рддреА рдХреЗрд▓реА.
ЁЯЧ║я╕П рдЖрдХреГрддреА
flowchart LR
root["ЁЯЧЭя╕П root account<br/>opens EVERYTHING, forever"]
safe["ЁЯФТ the safe<br/>MFA on, used ~once a year"]
iam["ЁЯкк IAM - the ID-card office<br/>a card per person and robot"]
api["тШБя╕П every AWS action<br/>card checked FIRST,<br/>then allowed or denied"]
root -->|"1 lock it away"| safe
iam -->|"2 daily work uses cards"| api
тЭУ рдХрд╛рдп
- Root = account рдЪреНрдпрд╛ рдорд╛рд▓рдХрд╛рдЪреА рдУрд│рдЦ. рдХрд╛рд╣реА рдореЛрдЬрдХреНрдпрд╛ рдЧреЛрд╖реНрдЯреА рдлрдХреНрдд рддреЗрдЪ рдХрд░реВ рд╢рдХрддреЗ (account рдмрдВрдж рдХрд░рдгреЗ, support plan рдмрджрд▓рдгреЗ) тАФ рддреЗ рддреНрдпрд╛рдЪреНрдпрд╛рд╕рд╛рдареАрдЪ рдЖрд╣реЗ.
- IAM = рдореЛрдлрдд service, рдЬреА рдард░рд╡рддреЗ рдХреА рдХреЛрдг (users, roles) рдХреЛрдгрддреНрдпрд╛ рдЧреЛрд╖реНрдЯреАрдВрд╡рд░ (resources) рдХрд╛рдп (actions) рдХрд░реВ рд╢рдХрддреЗ.
- рдкреНрд░рддреНрдпреЗрдХ AWS API call тАФ console рдордзрд▓рд╛ click, CLI command, code рдордзреВрди SDK call тАФ рдХрд╛рд╣реАрд╣реА рд╣реЛрдгреНрдпрд╛рдЖрдзреА authenticate рд╣реЛрддреЛ (рдХреЛрдгрд╛рдЪреЗ рдХрд╛рд░реНрдб?) рдЖрдгрд┐ authorize рд╣реЛрддреЛ (рдПрдЦрд╛рджреА рдЪрд┐рдареНрдареА рдпрд╛рд▓рд╛ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ рдХрд╛?). рдХрд╛рд░реНрдб рдирд╛рд╣реА, рдкреНрд░рд╡реЗрд╢ рдирд╛рд╣реА. рдореБрд│рд╛рдд рдЙрддреНрддрд░ рдирд╛рд╣реА.
ЁЯдФ рдХрд╛
рдЖрдзреАрдЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ course рдиреЗ рди рд╕рд╛рдВрдЧрддрд╛ IAM рд╡рд░ рднрд░ рджрд┐рд▓рд╛ рд╣реЛрддрд╛: Docker course рдордзрд▓рд╛ ECR login, k8s course рдордзрд▓реЗ EKS nodes рдЖрдгрд┐ CircleCI context, ArgoCD course рдордзрд▓рд╛ "credentials рдХрдзреАрдЪ cluster рд╕реЛрдбрдд рдирд╛рд╣реАрдд" рд╣рд╛ рдпреБрдХреНрддрд┐рд╡рд╛рдж. рд╣рд╛ course рддреА рдмрдВрдж рдкреЗрдЯреА рдЙрдШрдбрддреЛ тАФ рдХрд╛рд░рдг AWS рдордзрд▓реНрдпрд╛ рднрдпрдХрдерд╛рдВрдЪреЗ #1 рдХрд╛рд░рдг crypto рдлреЛрдбрдгрд╛рд░реЗ hackers рдирд╕рддрд╛рдд; рддреЗ рдЕрд╕рддрд╛рдд рдлреБрдЯрд▓реЗрд▓реЗ рд╕рд░реНрд╡рд╢рдХреНрддрд┐рдорд╛рди credentials, рдЬреЗ IAM рдЪреА рд╕реНрд╡рдЪреНрдЫрддрд╛ рдкрд╛рд│рд▓реА рдЕрд╕рддреА рддрд░ рдЯрд╛рд│рддрд╛ рдЖрд▓реЗ рдЕрд╕рддреЗ.
ЁЯзк рдХрд░реВрди рдкрд╛рд╣рд╛ (рдореЛрдлрдд)
# who am I right now?
aws sts get-caller-identity
# if "Arn" ends in :root тЖТ this lesson is URGENT for you ЁЯШЕ
# it should show an IAM user or an assumed role
# the account's security report card:
aws iam get-account-summary --query 'SummaryMap.{Users:Users,MFADevices:MFADevices,AccountMFAEnabled:AccountMFAEnabled}'
# AccountMFAEnabled MUST be 1. If 0 тЖТ console тЖТ root тЖТ enable MFA today.
# console homework (5 min): sign in as root ONCE тЖТ
# 1) enable MFA on root 2) create your admin IAM user (lesson 02)
# 3) sign out of root тАФ ideally forever
тЬЕ рддрдкрд╛рд╕рд╛ тАФ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рджрд┐рд╕рд╛рдпрд▓рд╛ рд╣рд╡реЗ
aws sts get-caller-identity IAM user ARN рджрд╛рдЦрд╡рддреЛ, arn:aws:iam::ACCOUNT:root рдирд╛рд╣реА тАФ рдЖрдгрд┐ console рдордзреНрдпреЗ root account рд╡рд░ MFA рдЪрд╛рд▓реВ рджрд┐рд╕рддреЗ.
ЁЯз╣ рд╕рд╛рдлрд╕рдлрд╛рдИ тАФ рдХрд╛рд╣реАрд╣реА рдЪрд╛рд▓реВ рдареЗрд╡реВ рдирдХрд╛
рд╕рд╛рдл рдХрд░рдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдХрд╛рд╣реА рдирд╛рд╣реА тАФ рд╣рд╛ рдзрдбрд╛ рдореЛрдлрдд рдЖрд╣реЗ ЁЯОЙ
тЪая╕П рдиреЗрд╣рдореАрдЪреНрдпрд╛ рдЪреБрдХрд╛
- рд░реЛрдЬрдЪреНрдпрд╛ рдХрд╛рдорд╛рд╕рд╛рдареА root рд╡рд╛рдкрд░рдгреЗ тАФ рдорд╛рд╕реНрдЯрд░-рдЪрд╛рд╡реА рддрд┐рдЬреЛрд░реАрддрдЪ рд░рд╛рд╣рддреЗ
- рд╕рдВрдкреВрд░реНрдг team рд╕рд╛рдареА рдПрдХрдЪ shared login тАФ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддреАрд▓рд╛ рд╕реНрд╡рддрдГрдЪреЗ рдХрд╛рд░реНрдб
- root рд╡рд░ MFA рдЪрд╛рд▓реВ рдХрд░рдгреЗ рдЖрдгрд┐ рдорд╛рдгрд╕рд╛рдВрдЪреНрдпрд╛ logins рд╡рд░ рд╡рд┐рд╕рд░рдгреЗ
тПня╕П рдкреБрдвреЗ
рдорд╛рдгрд╕рд╛рдВрд╕рд╛рдареА рдХрд╛рд░реНрдбреЗ, рдЖрдгрд┐ рдкрд░рд╡рд╛рдирдЧреНрдпрд╛ рд╕рд╛рдВрднрд╛рд│рдгреНрдпрд╛рдЬреЛрдЧреНрдпрд╛ рдХрд░рдгрд╛рд▒реНрдпрд╛ рдпрд╛рджреНрдпрд╛: users & groups.
git checkout lesson-02-users-groups