ЁЯПл The SchoolтА║ЁЯкк AWSтА║ЁЯкк рдзрдбрд╛ 02 тАФ Users & groups: рдХрд╛рд░реНрдбреЗ рдЖрдгрд┐ рдХрд░реНрдордЪрд╛рд░реА рдпрд╛рджреНрдпрд╛
ЁЯЦ╝я╕П See the drawing + lab ЁЯПа Course home ЁЯМ┐ Branch on GitHub тЬПя╕П View source
ЁЯЦ╝я╕П рдЖрдХреГрддреА рдЖрдгрд┐ labThe drawing + lab рдкреВрд░реНрдг рдкрд╛рдирд╛рд╡рд░ рдЙрдШрдбрд╛ тЖЧOpen full page тЖЧ

ЁЯкк рдзрдбрд╛ 02 тАФ Users & groups: рдХрд╛рд░реНрдбреЗ рдЖрдгрд┐ рдХрд░реНрдордЪрд╛рд░реА рдпрд╛рджреНрдпрд╛

ЁЯУН рддреБрдореНрд╣реА рдЗрдереЗ рдЖрд╣рд╛рдд: 12 рдкреИрдХреА рдзрдбрд╛ 02 ┬╖ рдорд╛рдЧреЗ: lesson-01-why-iam ┬╖ рдкреБрдвреЗ: lesson-03-policies


ЁЯУж рдпрд╛ рдмреНрд░рдБрдЪрдордзреНрдпреЗ рдХрд╛рдп рдЖрд╣реЗ

рдзрдбрд╛ 01, рдЖрдгрд┐ рддреНрдпрд╛рд╕реЛрдмрдд: рдорд╛рдгрд╕рд╛рдВрд╕рд╛рдареА рдУрд│рдЦреА тАФ users тАФ рдЖрдгрд┐ рдкрд░рд╡рд╛рдирдЧреНрдпрд╛ рд╕рд╛рдВрднрд╛рд│рдгреНрдпрд╛рдЬреЛрдЧреНрдпрд╛ рдареЗрд╡рдгрд╛рд░реА рдпреБрдХреНрддреА тАФ groups.

ЁЯзТ 5 рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рдореБрд▓рд╛рд▓рд╛ рд╕рдордЬрд╛рд╡рд▓реНрдпрд╛рд╕рд╛рд░рдЦреЗ

рдУрд│рдЦрдкрддреНрд░ рдХрд╛рд░реНрдпрд╛рд▓рдп рдЙрдШрдбрддреЗ. рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддреАрд▓рд╛ рддрд┐рдЪреНрдпрд╛ рдирд╛рд╡рд╛рдЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рдХрд╛рд░реНрдб ЁЯкк рдорд┐рд│рддреЗ: aishwarya, katrina, balasaheb. рдХреЛрдгреАрд╣реА рдХрд╛рд░реНрдбреЗ рд╡рд╛рдЯреВрди рдШреЗрдд рдирд╛рд╣реА тАФ рдХрд╛рд░реНрдбреЗ рд╡рд╛рдЯреВрди рдШреЗрддрд▓реА рдХреА рдзрдбрд╛ 01 рдордзрд▓рд╛ рдЧреЛрдВрдзрд│ рдкреБрдиреНрд╣рд╛ рд╕реБрд░реВ рд╣реЛрддреЛ.

рдкрдг рдХрд╛рд░реНрдб-рджрд░-рдХрд╛рд░реНрдб рдкрд░рд╡рд╛рдирдЧреНрдпрд╛ рджреЗрдгреЗ рд▓рд╡рдХрд░рдЪ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реЛрддреЗ: 20 рд╢рд┐рдХреНрд╖рд┐рдХрд╛ ├Ч 10 рдкрд░рд╡рд╛рдирдЧреНрдпрд╛ = рд╕рд╛рдВрднрд╛рд│рд╛рдпрдЪреНрдпрд╛ 200 рдЧреЛрд╖реНрдЯреА, рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рдирд╡реА рд╢рд┐рдХреНрд╖рд┐рдХрд╛ рдЖрд▓реА рдХреА рд╣реЗ рд╕рдЧрд│реЗ рдкреБрдиреНрд╣рд╛ рдХрд░рд╛рдпрдЪреЗ. рдХрд╛рд░реНрдпрд╛рд▓рдпрд╛рдЪреА рдпреБрдХреНрддреА: рдХрд░реНрдордЪрд╛рд░реА рдпрд╛рджреНрдпрд╛ ЁЯУЛ (groups).

рдХрд╛рд░реНрдпрд╛рд▓рдп рд╣рд│реБрд╡рд╛рд░рдкрдгреЗ рдПрдХ рдирд┐рдпрдо рдкрд╛рд│рддреЗ: рдХрд╛рд░реНрдбреЗ рдорд╛рдгрд╕рд╛рдВрд╕рд╛рдареА рдЖрд╣реЗрдд. 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

тЭУ рдХрд╛рдп

ЁЯдФ рдХрд╛

рдкрд░рд╡рд╛рдирдЧреНрдпрд╛ рд╡реНрдпрдХреНрддреАрдВрдирд╛ рдирд╡реНрд╣реЗ рддрд░ рд╕рдВрд╕реНрдереЗрддреАрд▓ рднреВрдорд┐рдХрд╛рдВрдирд╛ ("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 рд▓рд╛ рдЬреЛрдбрд▓реЗрд▓реА рджрд╛рдЦрд╡рддреЛ.

ЁЯз╣ рд╕рд╛рдлрд╕рдлрд╛рдИ тАФ рдХрд╛рд╣реАрд╣реА рдЪрд╛рд▓реВ рдареЗрд╡реВ рдирдХрд╛

рд╕рд╛рдл рдХрд░рдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдХрд╛рд╣реА рдирд╛рд╣реА тАФ рд╣рд╛ рдзрдбрд╛ рдореЛрдлрдд рдЖрд╣реЗ ЁЯОЙ

тЪая╕П рдиреЗрд╣рдореАрдЪреНрдпрд╛ рдЪреБрдХрд╛

тПня╕П рдкреБрдвреЗ

"рдкрд░рд╡рд╛рдирдЧреА рдЪрд┐рдареНрдареА" рдореНрд╣рдгрдЬреЗ рдиреЗрдордХреЗ рдХрд╛рдп? policy JSON рд╡рд╛рдЪрдгреЗ рдЖрдгрд┐ рд▓рд┐рд╣рд┐рдгреЗ тАФ AWS рдЪреЗ рдкреНрд░рддреНрдпреЗрдХ рджрд╛рд░ рдмреЛрд▓рддреЗ рддреА рднрд╛рд╖рд╛.

git checkout lesson-03-policies

ЁЯкк Lesson 02 тАФ Users & groups: cards and staff lists

ЁЯУН You are here: Lesson 02 of 12 ┬╖ Previous: lesson-01-why-iam ┬╖ Next: lesson-03-policies


ЁЯУж What's in this branch

Lesson 01, plus: identities for humans тАФ users тАФ and the trick that keeps permissions manageable тАФ groups.

ЁЯзТ Explain like I'm 5

The ID-card office opens. Every person gets their own card ЁЯкк with their name on it: aishwarya, katrina, balasaheb. Nobody shares cards тАФ sharing cards is how lesson 01's mess restarts.

But giving permissions card-by-card gets silly fast: 20 teachers ├Ч 10 permissions = 200 things to manage, and every new teacher means re-doing all of it. The office's trick: staff lists ЁЯУЛ (groups).

One rule the office enforces gently: cards are for humans. Robots (servers, CI) get something better in lesson 04 тАФ because cards come with passwords, and robots shouldn't have passwords at all.

ЁЯЧ║я╕П Diagram

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

тЭУ What

ЁЯдФ Why

Attaching permissions to roles-in-the-organization ("teachers") instead of individuals is the only version that survives growth: onboarding is one command, offboarding is one command, and an audit reads like an org chart instead of 200 sticky notes.

ЁЯзк Try it (free)

# 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

тЬЕ Verify тАФ what you should see

aws iam list-groups-for-user --user-name aishwarya lists the group; aws iam list-attached-group-policies --group-name teachers shows the policy attached to the group, not the user.

ЁЯз╣ Clean up тАФ do not leave running

nothing to clean up тАФ this lesson is free ЁЯОЙ

тЪая╕П Common mistakes

тПня╕П Next

What exactly IS a "permission slip"? Reading and writing policy JSON тАФ the language every AWS door speaks.

git checkout lesson-03-policies
тЖР Previouswhy iamNext тЖТpolicies

This page is the lesson's README from the lesson-02-users-groups branch, shown here so the whole School stays on one site. Code files open on GitHub at the same branch.