[Cloud] AWS IAMμ μ΄ν΄
π λ€μ΄κ°λ©°
μ΄λ² κΈμμλ AWSμ IAM(Identity and Access Management)μ μ 리νλ€. λκ°(μ¬μ©μ) AWS 리μμ€μ 무μμ(κΆν) ν μ μλμ§λ₯Ό κ΄λ¦¬νλ μλΉμ€λ‘, μ¬μ©μΒ·κ·Έλ£ΉΒ·μ μ± Β·μν μ κ΄κ³μ μ€μ΅(Lab)κΉμ§ λ€λ£¬λ€.
IAMμ΄λ? AWS 리μμ€μ λν μ‘μΈμ€λ₯Ό μμ νκ² μ μ΄νλ μΉ μλΉμ€. μΈμ¦(λ‘κ·ΈμΈ)κ³Ό κΆν λΆμ¬(무μμ ν μ μλκ°)λ₯Ό κ΄λ¦¬νλ©°, AWS κ³μ μ 무λ£λ‘ μ 곡λλ€.
1. μ IAMμ΄ νμνκ° β root 곡μ μ μν
λͺ¨λ λ΄λΉμκ° root κ³μ μ 곡μ νλ©΄ μ¬κ°ν λ¬Έμ κ° μκΈ΄λ€.
β οΈ root κ³μ 곡μ μ μν
- κ°λ°μκ° μ€μλ‘ μ΄μ νλ«νΌμ μμ ν μ μλ€.
- QAκ° μ΄μ μ₯λΉμ ν μ€νΈν΄ μλΉμ€κ° μ€λ¨λ μ μλ€.
- λ¬Έμ λ°μ μ λκ° λ¬΄μμ νλμ§ μΆμ λΆκ° β μ± μ μμ¬ λΆλͺ .
κ·Έλμ μν μ λ§λ κ°λ³ IAM μ¬μ©μλ₯Ό λ§λ€κ³ , νμν κΆνλ§ λΆμ¬νλ€.
2. IAM 4λ κ΅¬μ± μμ
IAMμ μ μ± (κΆν)μ κ·Έλ£Ή/μ¬μ©μ/μν μ μ°κ²°νλ ꡬ쑰λ€.
flowchart TD
Policy["π μ μ±
(Policy)<br/>κΆν μ μ(JSON)"]
Group["π₯ μ¬μ©μ κ·Έλ£Ή"]
User["π€ μ¬μ©μ"]
Role["π μν (Role)"]
Policy --> Group --> User
Policy --> Role
Role -. μμ .-> Service["βοΈ AWS μλΉμ€(EC2 λ±)"]
| κ΅¬μ± μμ | μ€λͺ |
|---|---|
| μ¬μ©μ κ·Έλ£Ή | μ¬μ©μλ€μ μ§ν©(κΆνμ ν λ²μ κ΄λ¦¬). ν μ¬μ©μλ μ¬λ¬ κ·Έλ£Ή μμ κ°λ₯, κ·Έλ£Ήμ κ·Έλ£Ήμ ν¬ν¨ λͺ» ν¨ |
| μ¬μ©μ | μλΉμ€ μ μ κΆνμ κ°μ§ κ°λ³ μ격 μ¦λͺ (λ 립/κ·Έλ£Ή μ’ μ) |
| μ μ± (Policy) | μλΉμ€λ₯Ό μ΄λ»κ² μ‘°μν μ§ νκ°/κΈμ§νλ JSON μ μ(μ: AmazonVPCFullAccess) |
| μν (Role) | νΉμ κΆνμ΄ μλ μ격 μ¦λͺ μ μμλ‘ μμ(μλΉμ€Β·λ€λ₯Έ κ³μ μ΄ μμ) |
π‘ κΆν κ²°μ μμΉ β κΈ°λ³Έμ μμμ κ±°λΆ(Deny). λͺ μμ μΌλ‘ νμ©(Allow)νμ§ μμ λͺ¨λ κΆνμ κ±°λΆλλ€. κ·Έλ¦¬κ³ λͺ μμ κ±°λΆλ μ΄λ€ νμ©λ³΄λ€ μ°μ νλ€. νμ μ΅μ κΆν μμΉ(least privilege)μ λ°λ₯΄λ κ²μ΄ λͺ¨λ² μ¬λ‘λ€.
3. μν (Role)μ λν μ¬μ© μ
μλλ¦¬μ€ EC2μμ μ€νλλ μ ν리μΌμ΄μ μ΄ S3 λ²ν· μ κ·Ό κΆνμ΄ νμνλ€.
μ‘μΈμ€ ν€λ₯Ό μ½λμ λ°λ λμ μν μ μμμν€λ κ²μ΄ μμ νλ€.
1
2
3
4
β S3 μ κ·Ό κΆνμ λΆμ¬νλ IAM μ μ±
μ μ
β‘ μ μ±
μ μν (Role)μ μ°κ²°
β’ EC2 μΈμ€ν΄μ€κ° μ΄ μν μ μμ(assume) νλλ‘ νμ©
β EC2 μ±μ΄ ν€ μμ΄ S3 μ κ·Ό
μΆμ²: μλ³Έ λ§ν¬
4. Lab β μ¬μ©μΒ·κ·Έλ£ΉΒ·κΆνΒ·μν μ€μ΅
μ¬μ©μ(user1, user2)λ₯Ό λ§λ€μ΄ κ·Έλ£Ήμ μμμν€κ³ κΆνμ κ²μ¦νλ€.
| Task | λ΄μ© |
|---|---|
| Task1 | μ¬μ©μ μμ±(μ½μ μ‘μΈμ€Β·ν¨μ€μλ) + κ·Έλ£Ή(Data-Support, Cloud-Admin) μμ±. Cloud-Adminμ EC2 Describe*Β·StartInstances*Β·StopInstances* 컀μ€ν
μ μ±
(cloud-admin-policy) λΆμ¬ |
| Task2 | ν μ€νΈ 리μμ€ μμ±(S3 λ²ν·, EC2 μΈμ€ν΄μ€) |
| Task3 | Eli λ‘κ·ΈμΈ β S3 μ½κΈ°/μ°κΈ°, EC2 μμ± κ°λ₯ μ¬λΆ νμΈ |
| Task4 | David β μ½κΈ° μ μ© EC2 μ μ μ¬λΆ νμΈ |
| Task5 | Noah β EC2 start/stop κ°λ₯ μ¬λΆ νμΈ |
π‘ μ΄ μ€μ΅μ ν΅μ¬μ μ¬μ©μλ§λ€ λ€λ₯Έ μ μ± μ΄ μ€μ λμμ μ΄λ»κ² λ°μλλμ§ νμΈνλ κ²μ΄λ€. Davidλ μ½κΈ°λ§, Noahλ start/stopλ§ λλ μμΌλ‘, κΆνμ λ°λΌ ν μ μλ μμ μ΄ μ νν κ°λ¦°λ€. μ€μ΅ νμλ S3Β·EC2 리μμ€λ₯Ό μμ ν΄ κ³ΌκΈμ λ§λλ€.
π μ 리
1
2
3
4
5
IAM
ββ νμμ± root 곡μ μν(μμ μ¬κ³ Β·μΆμ λΆκ°) β κ°λ³ μ¬μ©μ
ββ κ΅¬μ± κ·Έλ£Ή / μ¬μ©μ / μ μ±
(JSON) / μν (μμ)
ββ μμΉ κΈ°λ³Έ μμμ κ±°λΆ + μ΅μ κΆν
ββ μν EC2κ° μν μμ β ν€ μμ΄ S3 μ κ·Ό
| κ°λ | ν μ€ μ μ |
|---|---|
| μ μ± (Policy) | κΆνμ μ μνλ JSON |
| κ·Έλ£Ή | κΆνμ μμμν€λ μ¬μ©μ λ¬Άμ |
| μν (Role) | μμλ‘ μμλλ κΆν |
IAMμ ν΅μ¬μ rootλ₯Ό λλ κ°λ³ μ¬μ©μμκ² μ΅μ κΆνλ§ λΆμ¬νκ³ , μλΉμ€ κ° μ κ·Όμ ν€ λμ μν μμμΌλ‘ μ²λ¦¬νλ κ²μ΄λ€. μ΄ κ΅¬μ‘°κ° κ°μ¬(μΆμ )μ 보μμ κΈ°λ³Έμ λ§λ λ€.







Comments powered by Disqus.