ЁЯкк рдзрдбрд╛ 02 тАФ Users & groups: рдХрд╛рд░реНрдбреЗ рдЖрдгрд┐ рдХрд░реНрдордЪрд╛рд░реА рдпрд╛рджреНрдпрд╛
ЁЯУН рддреБрдореНрд╣реА рдЗрдереЗ рдЖрд╣рд╛рдд: 12 рдкреИрдХреА рдзрдбрд╛ 02 ┬╖ рдорд╛рдЧреЗ: lesson-01-why-iam ┬╖ рдкреБрдвреЗ: lesson-03-policies
ЁЯУж рдпрд╛ рдмреНрд░рдБрдЪрдордзреНрдпреЗ рдХрд╛рдп рдЖрд╣реЗ
рдзрдбрд╛ 01, рдЖрдгрд┐ рддреНрдпрд╛рд╕реЛрдмрдд: рдорд╛рдгрд╕рд╛рдВрд╕рд╛рдареА рдУрд│рдЦреА тАФ users тАФ рдЖрдгрд┐ рдкрд░рд╡рд╛рдирдЧреНрдпрд╛ рд╕рд╛рдВрднрд╛рд│рдгреНрдпрд╛рдЬреЛрдЧреНрдпрд╛ рдареЗрд╡рдгрд╛рд░реА рдпреБрдХреНрддреА тАФ groups.
ЁЯзТ 5 рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рдореБрд▓рд╛рд▓рд╛ рд╕рдордЬрд╛рд╡рд▓реНрдпрд╛рд╕рд╛рд░рдЦреЗ
рдУрд│рдЦрдкрддреНрд░ рдХрд╛рд░реНрдпрд╛рд▓рдп рдЙрдШрдбрддреЗ. рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддреАрд▓рд╛ рддрд┐рдЪреНрдпрд╛ рдирд╛рд╡рд╛рдЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рдХрд╛рд░реНрдб ЁЯкк
рдорд┐рд│рддреЗ: aishwarya, katrina, balasaheb. рдХреЛрдгреАрд╣реА рдХрд╛рд░реНрдбреЗ рд╡рд╛рдЯреВрди рдШреЗрдд рдирд╛рд╣реА тАФ рдХрд╛рд░реНрдбреЗ
рд╡рд╛рдЯреВрди рдШреЗрддрд▓реА рдХреА рдзрдбрд╛ 01 рдордзрд▓рд╛ рдЧреЛрдВрдзрд│ рдкреБрдиреНрд╣рд╛ рд╕реБрд░реВ рд╣реЛрддреЛ.
рдкрдг рдХрд╛рд░реНрдб-рджрд░-рдХрд╛рд░реНрдб рдкрд░рд╡рд╛рдирдЧреНрдпрд╛ рджреЗрдгреЗ рд▓рд╡рдХрд░рдЪ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реЛрддреЗ: 20 рд╢рд┐рдХреНрд╖рд┐рдХрд╛ ├Ч 10 рдкрд░рд╡рд╛рдирдЧреНрдпрд╛ = рд╕рд╛рдВрднрд╛рд│рд╛рдпрдЪреНрдпрд╛ 200 рдЧреЛрд╖реНрдЯреА, рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рдирд╡реА рд╢рд┐рдХреНрд╖рд┐рдХрд╛ рдЖрд▓реА рдХреА рд╣реЗ рд╕рдЧрд│реЗ рдкреБрдиреНрд╣рд╛ рдХрд░рд╛рдпрдЪреЗ. рдХрд╛рд░реНрдпрд╛рд▓рдпрд╛рдЪреА рдпреБрдХреНрддреА: рдХрд░реНрдордЪрд╛рд░реА рдпрд╛рджреНрдпрд╛ ЁЯУЛ (groups).
- "teachers" рдирд╛рд╡рд╛рдЪреА рдпрд╛рджреА рдмрдирд╡рд╛. рдкрд░рд╡рд╛рдирдЧреА рдЪрд┐рдареНрдареНрдпрд╛ рд▓реЛрдХрд╛рдВрдирд╛ рдирд╡реНрд╣реЗ, рддреНрдпрд╛ рдпрд╛рджреАрд▓рд╛ рдЬреЛрдбрд╛.
- рдирд╡реА рд╢рд┐рдХреНрд╖рд┐рдХрд╛ рдЖрд▓реА? рддрд┐рдЪреЗ рдХрд╛рд░реНрдб рдпрд╛рджреАрдд рдЬреЛрдбрд╛ тАФ рд╕рдЧрд│реЗ рдЕрдзрд┐рдХрд╛рд░ рд▓рдЧреЗрдЪ рдорд┐рд│рддрд╛рдд. рд╢рд┐рдХреНрд╖рд┐рдХрд╛ рдЧреЗрд▓реА? рдпрд╛рджреАрддреВрди рдХрд╛рдврд╛ тАФ рд╕рдЧрд│реЗ рдЕрдзрд┐рдХрд╛рд░ рдЧреЗрд▓реЗ.
- рдПрдХ рд╡реНрдпрдХреНрддреА рдЕрдиреЗрдХ рдпрд╛рджреНрдпрд╛рдВрдд рдЕрд╕реВ рд╢рдХрддреЗ:
katrina"teachers" рдордзреНрдпреЗрд╣реА рдЖрд╣реЗ рдЖрдгрд┐ "exam-setters" рдордзреНрдпреЗрд╣реА.
рдХрд╛рд░реНрдпрд╛рд▓рдп рд╣рд│реБрд╡рд╛рд░рдкрдгреЗ рдПрдХ рдирд┐рдпрдо рдкрд╛рд│рддреЗ: рдХрд╛рд░реНрдбреЗ рдорд╛рдгрд╕рд╛рдВрд╕рд╛рдареА рдЖрд╣реЗрдд. Robots (servers, CI) рдирд╛ рдзрдбрд╛ 04 рдордзреНрдпреЗ рддреНрдпрд╛рд╣реВрди рдЪрд╛рдВрдЧрд▓реЗ рдХрд╛рд╣реАрддрд░реА рдорд┐рд│рддреЗ тАФ рдХрд╛рд░рдг рдХрд╛рд░реНрдбрд╛рдВрд╕реЛрдмрдд passwords рдпреЗрддрд╛рдд, рдЖрдгрд┐ robots рдХрдбреЗ passwords рдореБрд│реАрдЪ рдирд╕рд╛рд╡реЗрдд.
ЁЯЧ║я╕П рдЖрдХреГрддреА
flowchart LR
a["ЁЯкк user: aishwarya"]
s["ЁЯкк user: katrina"]
n["ЁЯЖХ user: new-teacher"]
g["ЁЯУЛ group: teachers<br/>permissions live HERE"]
p["ЁЯУЭ policies<br/>'may manage EC2'<br/>'may read reports'"]
a -->|"1 member"| g
s -->|"1 member"| g
n -.->|"3 join list тЖТ powers instantly"| g
p -->|"2 attached to the GROUP"| g
тЭУ рдХрд╛рдп
- User = рдПрдХрд╛рдЪ рдорд╛рдгрд╕рд╛рдЪреА рдХрд╛рдпрдордЪреА рдУрд│рдЦ: console password (MFA рд╕рд╣!) рдЖрдгрд┐/рдХрд┐рдВрд╡рд╛ API access keys (рд╢рдХреНрдп рддрд┐рдереЗ рдЯрд╛рд│рд╛ тАФ рдзрдбрд╛ 05).
- Group = users рдЪреА рдкрд┐рд╢рд╡реА; policies рддрд┐рд▓рд╛ рдЬреЛрдбрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд; рд╕рджрд╕реНрдпрддреНрд╡ = рдкрд░рд╡рд╛рдирдЧреА. Groups рдПрдХрдореЗрдХрд╛рдВрдЪреНрдпрд╛ рдЖрдд рдареЗрд╡рддрд╛ рдпреЗрдд рдирд╛рд╣реАрдд, рдЖрдгрд┐ "assume" рдХрд░рддрд╛ рдпреЗрдд рдирд╛рд╣реАрдд тАФ рддреНрдпрд╛ рдлрдХреНрдд рдкрд┐рд╢рд╡реНрдпрд╛ рдЖрд╣реЗрдд.
- рдЖрдзреБрдирд┐рдХ рдЯреАрдк: рдХрдВрдкрдиреНрдпрд╛рдВрд╕рд╛рдареА IAM Identity Center (SSO) рдмрд╣реБрддреЗрдХ IAM users рдЪреА рдЬрд╛рдЧрд╛ рдШреЗрддреЗ тАФ рдорд╛рдгрд╕реЗ short-lived sessions рдиреЗ login рдХрд░рддрд╛рдд. рддреЗрдЪ рдорд╛рдирд╕рд┐рдХ рдЪрд┐рддреНрд░ (рд▓реЛрдХ тЖТ groups тЖТ рдкрд░рд╡рд╛рдирдЧреНрдпрд╛), рдЬрд╛рд╕реНрдд рдЪрд╛рдВрдЧрд▓реА рд╕реНрд╡рдЪреНрдЫрддрд╛. рдЖрдзреА users рд╢рд┐рдХрд╛; SSO рддреНрдпрд╛рдЪ рд╕рдВрдХрд▓реНрдкрдиреЗрд▓рд╛ рд╕реБрдЯрд╕реБрдЯреАрдд рдХрд░рддреЗ.
ЁЯдФ рдХрд╛
рдкрд░рд╡рд╛рдирдЧреНрдпрд╛ рд╡реНрдпрдХреНрддреАрдВрдирд╛ рдирд╡реНрд╣реЗ рддрд░ рд╕рдВрд╕реНрдереЗрддреАрд▓ рднреВрдорд┐рдХрд╛рдВрдирд╛ ("teachers") рдЬреЛрдбрдгреЗ рд╣рд╛ рд╡рд╛рдвреАрдордзреНрдпреЗ рдЯрд┐рдХрдгрд╛рд░рд╛ рдПрдХрдореЗрд╡ рдорд╛рд░реНрдЧ рдЖрд╣реЗ: рдирд╡реЗ рдХреЛрдгреА рдпреЗрдгреЗ рдореНрд╣рдгрдЬреЗ рдПрдХ command, рдХреЛрдгреА рдЬрд╛рдгреЗ рдореНрд╣рдгрдЬреЗ рдПрдХ command, рдЖрдгрд┐ audit 200 рдЪрд┐рдХрдЯ рдЪрд┐рдареНрдареНрдпрд╛рдВрдРрд╡рдЬреА рд╕рдВрд╕реНрдереЗрдЪреНрдпрд╛ рддрдХреНрддреНрдпрд╛рд╕рд╛рд░рдЦреЗ рд╡рд╛рдЪрддрд╛ рдпреЗрддреЗ.
ЁЯзк рдХрд░реВрди рдкрд╛рд╣рд╛ (рдореЛрдлрдд)
# make the list, then a card, then connect them:
aws iam create-group --group-name learners
aws iam create-user --user-name test-student
aws iam add-user-to-group --group-name learners --user-name test-student
# give the LIST a permission (read-only everything, an AWS-managed policy):
aws iam attach-group-policy --group-name learners \
--policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess
# what can test-student do, and via what?
aws iam list-groups-for-user --user-name test-student
aws iam list-attached-group-policies --group-name learners
# cleanup (labs leave no trace):
aws iam detach-group-policy --group-name learners --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess
aws iam remove-user-from-group --group-name learners --user-name test-student
aws iam delete-user --user-name test-student
aws iam delete-group --group-name learners
тЬЕ рддрдкрд╛рд╕рд╛ тАФ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рджрд┐рд╕рд╛рдпрд▓рд╛ рд╣рд╡реЗ
aws iam list-groups-for-user --user-name aishwarya рддреЛ group рджрд╛рдЦрд╡рддреЛ; aws iam list-attached-group-policies --group-name teachers policy user рд▓рд╛ рдирд╡реНрд╣реЗ, group рд▓рд╛ рдЬреЛрдбрд▓реЗрд▓реА рджрд╛рдЦрд╡рддреЛ.
ЁЯз╣ рд╕рд╛рдлрд╕рдлрд╛рдИ тАФ рдХрд╛рд╣реАрд╣реА рдЪрд╛рд▓реВ рдареЗрд╡реВ рдирдХрд╛
рд╕рд╛рдл рдХрд░рдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдХрд╛рд╣реА рдирд╛рд╣реА тАФ рд╣рд╛ рдзрдбрд╛ рдореЛрдлрдд рдЖрд╣реЗ ЁЯОЙ
тЪая╕П рдиреЗрд╣рдореАрдЪреНрдпрд╛ рдЪреБрдХрд╛
- users рдирд╛ рдПрдХреЗрдХ рдХрд░реВрди policies рдЬреЛрдбрдгреЗ тАФ group рд▓рд╛ рдЬреЛрдбрд╛
- AdministratorAccess рдЕрд╕рд▓реЗрд▓рд╛
developersgroup (рддреЛ group рдирд╛рд╣реА, рддреЛ рдЬрд╛рд╕реНрддреАрдЪреНрдпрд╛ рдкрд╛рдпрд▒реНрдпрд╛ рдЕрд╕рд▓реЗрд▓рд╛ root рдЖрд╣реЗ) - group рдЖрдгрд┐ policy рдирд╕рд▓реЗрд▓рд╛ user рдХрд╛рд╣реАрдЪ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА рд╣реЗ рд╡рд┐рд╕рд░рдгреЗ тАФ рддреЗ рдмрд░реЛрдмрд░ рдЖрд╣реЗ, рдмрд┐рдШрд╛рдб рдирд╛рд╣реА
тПня╕П рдкреБрдвреЗ
"рдкрд░рд╡рд╛рдирдЧреА рдЪрд┐рдареНрдареА" рдореНрд╣рдгрдЬреЗ рдиреЗрдордХреЗ рдХрд╛рдп? policy JSON рд╡рд╛рдЪрдгреЗ рдЖрдгрд┐ рд▓рд┐рд╣рд┐рдгреЗ тАФ AWS рдЪреЗ рдкреНрд░рддреНрдпреЗрдХ рджрд╛рд░ рдмреЛрд▓рддреЗ рддреА рднрд╛рд╖рд╛.
git checkout lesson-03-policies