๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

AWS/DVA-C02

01. IAM (Identity and Access Management)

๐Ÿ’ก ๋ณธ ๊ฒŒ์‹œ๊ธ€์€ Stephane Maarek๋‹˜์˜ ์œ ๋ฐ๋ฏธ(Udemy) ๊ฐ•์˜ ใ€ํ•œ๊ธ€์ž๋ง‰ใ€‘ AWS Certified Developer Associate ์‹œํ—˜ ํ•ฉ๊ฒฉ์„ ์œ„ํ•œ ๋ชจ๋“  ๊ฒƒ! ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๊ณ , ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.


01. IAM (Identity and Access Management)

1 ์žฅ. IAM ์†Œ๊ฐœ(์‚ฌ์šฉ์ž, ๊ทธ๋ฃน, ์ •์ฑ…)

1 ) IAM์˜ ์—ญํ• 

  • ์‚ฌ์šฉ์ž(๊ถŒํ•œ) ์ƒ์„ฑ ๋ฐ ๊ทธ๋ฃน ๋ฐฐ์น˜๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ์ค‘์•™ ์ง‘์ค‘์‹ ๋งค์ปค๋‹ˆ์ฆ˜ (๊ธ€๋กœ๋ฒŒ ์„œ๋น„์Šค)

2) ๋ฃจํŠธ ๊ณ„์ •

  • ๊ณ„์ • ์ƒ์„ฑ ์‹œ, ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฃจํŠธ ๊ณ„์ • ์ƒ์„ฑ
  • But. ๋ณด์•ˆ ์ƒ์˜ ์ด์œ ๋กœ ์‚ฌ์šฉ/๊ณต์œ  ๊ธˆ์ง€

3) ์‚ฌ์šฉ์ž

  • ํ•˜๋‚˜์˜ ์‚ฌ์šฉ์ž๋Š” ์กฐ์ง ๋‚ด์˜ ํ•œ์‚ฌ๋žŒ์— ํ•ด๋‹น.
  • ๊ทธ๋ฃน ๋‚ด ์‚ฌ์šฉ์ž๋“ค์„ AWS ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผ ๋ฐ ์„ค์ • ํ•  ์ˆ˜ ์žˆ์Œ.

4) ๊ทธ๋ฃน

  • ์‚ฌ์šฉ์ž๋ฅผ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ.
  • ๊ทธ๋ฃน์—๋Š” ์˜ค์ง ์‚ฌ์šฉ์ž๋งŒ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Œ.
  • ๊ทธ๋ฃน์€ ๋‹ค๋ฅธ ๊ทธ๋ฃน์„ ํฌํ•จํ• ์ˆ˜ ์—†์Œ.
  • But. ์˜ค์ง ์‚ฌ์šฉ์ž๋งŒ ๋‹ค๋ฅธ ๊ทธ๋ฃน์— ํฌํ•จ๊ฐ€๋Šฅ.

5) ์‚ฌ์šฉ์ž์™€ ๊ทธ๋ฃน์˜ ๊ด€๊ณ„

  • ์‚ฌ์šฉ์ž๋Š” ๊ทธ๋ฃน์— ์†Œ์†๋˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Œ.
  • ํ•˜๋‚˜์˜ ์‚ฌ์šฉ์ž๋Š” ์—ฌ๋Ÿฌ ๊ทธ๋ฃน์— ์†Œ์†๋  ์ˆ˜ ์žˆ์Œ.
    ⇒ ๊ทธ๋ ‡๋‹ค๋ฉด ์™œ ์‚ฌ์šฉ์ž์™€ ๊ทธ๋ฃน์„ ์ƒ์„ฑํ•˜๋Š” ๊ฑธ๊นŒ? AWS ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๊ธฐ ์œ„ํ•จ.

6) IAM ์ •์ฑ…์ด๋ž€?

  • ์‚ฌ์šฉ์ž๋‚˜ ๊ทธ๋ฃน์˜ ๊ถŒํ•œ์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋Š” JSON ๋ฌธ์„œ
  • ํŠน์ • ์‚ฌ์šฉ์ž, ํŠน์ • ๊ทธ๋ฃน์— ์†ํ•œ ๋ชจ๋“  ์‚ฌ์šฉ์ž๋“ค์ด ์–ด๋–ค ์ž‘์—…์— ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ์„ค๋ช…ํ•ด๋†“์€ ๋ฌธ์„œ
  • ์ด ๋ฌธ์„œ๋ฅผ ํ†ตํ•ด AWS ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์ •์˜ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Œ.
  • ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•„์š” ์ด์ƒ์˜ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋ฉด ์•ˆ๋Œ. → ๋ณด์•ˆ ์œ„ํ—˜ ๋ฐ ๋น„์šฉ์˜ ๋ฌธ์ œ ๋ฐœ์ƒ.

2์žฅ. IAM ์ •์ฑ…

1) ๊ถŒํ•œ ์ •์ฑ…

  • ๊ทธ๋ฃน ์ •์ฑ… : ๊ทธ๋ฃน์— ํ• ๋‹น๋œ ์ •์ฑ…์€ ๋ชจ๋“  ๊ทธ๋ฃน ๊ตฌ์„ฑ์›์—๊ฒŒ ์ ์šฉ๋˜๋ฉฐ ์ •์ฑ…์˜ ์ƒ์†์ด ๊ฐ€๋Šฅ.
  • ์‚ฌ์šฉ์ž ์ •์ฑ… : ๊ฐœ๋ณ„ ์‚ฌ์šฉ์ž์—๊ฒŒ๋„ ์ •์ฑ…(์ธ๋ผ์ธ ์ •์ฑ…) ์„ ์ง์ ‘ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Œ.
  • ์ •์ฑ… ํƒ€์ž… : ์ •์ฑ…์€ '์ธ๋ผ์ธ ์ •์ฑ…'๊ณผ '๊ด€๋ฆฌํ˜• ์ •์ฑ…'์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ์ธ๋ผ์ธ ์ •์ฑ…์€ ๊ฐœ๋ณ„ IAM ์‚ฌ์šฉ์ž๋‚˜ ๊ทธ๋ฃน์— ์ง์ ‘ ํ• ๋‹น๋˜๋ฉฐ, ๊ด€๋ฆฌํ˜• ์ •์ฑ…์€ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๋‚˜ ๊ทธ๋ฃน์— ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ •์ฑ… ๊ทœ์น™ : ๊ฐ ์ •์ฑ… ๋‚ด์—์„œ ํŠน์ • AWS ์„œ๋น„์Šค ๋ฐ ์ž‘์—…์— ๋Œ€ํ•œ ๊ถŒํ•œ(ํ—ˆ์šฉ ๋˜๋Š” ๊ฑฐ๋ถ€)์ด ์ •์˜๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ •์ฑ… ๋ฌธ์„œ ๋‚ด์—์„œ ๊ตฌ์ฒด์ ์ธ 'ํ–‰์œ„(Action)'์™€ '๋ฆฌ์†Œ์Šค(Resource)'๋ฅผ ์ง€์ •ํ•˜์—ฌ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.
  • ์ตœ์†Œ ๊ถŒํ•œ ์›์น™ : ์‚ฌ์šฉ์ž๋‚˜ ๊ทธ๋ฃน์— ํ•„์š”ํ•œ ์ตœํ•œ์˜ ๊ถŒํ•œ๋งŒ์„ ๋ถ€์—ฌํ•˜์—ฌ, ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ณ  ๋ถˆํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค ์ ‘๊ทผ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ์ •์ฑ…์˜ ์ƒ์†๊ณผ ๊ฒฐํ•ฉ : ์‚ฌ์šฉ์ž๋Š” ๊ทธ๋ฃน ์ •์ฑ…๊ณผ ๊ฐœ์ธ์ ์œผ๋กœ ํ• ๋‹น๋œ ์ •์ฑ… ๋ชจ๋‘์˜ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ, ์—ฌ๋Ÿฌ ์ •์ฑ…์ด ๊ฒฐํ•ฉ๋  ๊ฒฝ์šฐ, ๊ฑฐ๋ถ€(Deny) ๊ทœ์น™์ด ํ—ˆ์šฉ(Allow) ๊ทœ์น™๋ณด๋‹ค ์šฐ์„  ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

2) IAM ์ •์ฑ… ๊ตฌ์กฐ

(1) IAM ์ •์ฑ… ๊ตฌ์กฐ

  • ๋ฒ„์ „ (Version) : ์ •์ฑ… ์–ธ์–ด์˜ ๋ฒ„์ „ ( ์˜ˆ : "2012-10-17" )
  • ์‹๋ณ„์ž (ID) : ์ •์ฑ…์˜ ๊ณ ์œ  ์•„์ด๋”” (์„ ํƒ ์š”์†Œ)
  • ๋ฌธ (Statement) : ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ทœ์น™์„ ํฌํ•จ. (ํ•„์ˆ˜ ์š”์†Œ)

(2) ์ •์ฑ… ๋ฌธ ๋‚ด์šฉ (separc) - separc

  • ๋ฌธ ์‹๋ณ„์ž (Sid) : ๊ฐ ๋ฌธ์˜ ๊ณ ์œ  ์‹๋ณ„์ž (์„ ํƒ ์š”์†Œ)
  • ํšจ๊ณผ (Effect) : ๊ถŒํ•œ์„ ํ—ˆ์šฉ(Allow) ๋˜๋Š” ๊ฑฐ๋ถ€(beny)
  • ์ฃผ์ฒด (Principal) : ์ •์ฑ…์ด ์ ์šฉ๋˜๋Š” ๊ณ„์ •/์‚ฌ์šฉ์ž/์—ญํ• 
  • ํ–‰์œ„ (Action) : ํ—ˆ์šฉ ๋˜๋Š” ๊ฑฐ๋ถ€๋˜๋Š” ์ž‘์—… ๋ชฉ๋ก
  • ๋ฆฌ์†Œ์Šค (Resource) : ํ•ด๋‹น ํ–‰์œ„๊ฐ€ ์ ์šฉ๋˜๋Š” ๋ฆฌ์†Œ์Šค ๋ชฉ๋ก
  • ์กฐ๊ฑด (Condition) : ์ •์ฑ…์ด ์ ์šฉ๋˜๋Š” ์กฐ๊ฑด (์„ ํƒ ์š”์†Œ)

3์žฅ. IAM MFA ๊ฐœ์š”

1 ) IAM ๋ฐฉ์–ด ๋ฉ”์ปค๋‹ˆ์ฆ˜
(1) ๋น„๋ฐ€๋ฒˆํ˜ธ ์ •์ฑ…์˜ ์ •์˜
(2) ๋‹ค์š”์†Œ ์ธ์ฆ(MFA)

2) IAM ๋น„๋ฐ€๋ฒˆํ˜ธ ์ •์ฑ…
(1) ๊ฐ•๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ •์œผ๋กœ ๊ณ„์ • ๋ณด์•ˆ ๊ฐ•ํ™”
(2) ์ตœ์†Œ ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ธธ์ด ์„ค์ • ๊ฐ€๋Šฅ
(3) ๋‹ค์Œ ๋ฌธ์ž ์œ ํ˜• ํ•„์ˆ˜ํ™”

  • ๋Œ€๋ฌธ์ž
  • ์†Œ๋ฌธ์ž
  • ์ˆซ์ž
  • ํŠน์ˆ˜ ๋ฌธ์ž

(4) IAM ์‚ฌ์šฉ์ž์—๊ฒŒ ์ž์‹ ์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ ํ—ˆ์šฉ
(5) ์‚ฌ์šฉ์ž๊ฐ€ ์ •๊ธฐ์ ์œผ๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝํ•˜๋„๋ก ์š”๊ตฌ (๋น„๋ฐ€๋ฒˆํ˜ธ ๋งŒ๋ฃŒ)
(6) ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์‚ฌ์šฉ ๋ฐฉ์ง€

3) ๋‹ค์ค‘ ์ธ์ฆ (MFA)

  • ๊ณ„์ •์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž๋“ค์ด ์„ค์ • ๋ณ€๊ฒฝ์ด๋‚˜ AWS ๋ฆฌ์†Œ์Šค ์‚ญ์ œ๋ฅผ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๋ฃจํŠธ ๊ณ„์ •๊ณผ IAM ์‚ฌ์šฉ์ž๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”.
  • MFA๋Š” '์•Œ๊ณ  ์žˆ๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ'์™€ '์†Œ์œ ํ•˜๊ณ  ์žˆ๋Š” ๋ณด์•ˆ ์žฅ์น˜'์˜ ์กฐํ•ฉ์„ ์š”๊ตฌํ•จ์œผ๋กœ์จ ๋กœ๊ทธ์ธ ๊ณผ์ •์— ์ถ”๊ฐ€์ ์ธ ๋ณด์•ˆ์ธต์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. - 2์ฐจ ์ธ์ฆ ๊ฐœ๋…
  • MFA์˜ ์ฃผ๋œ ์ด์ ์€ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ๋„๋‚œ๋‹นํ•˜๊ฑฐ๋‚˜ ํ•ดํ‚น๋‹นํ•ด๋„ ๊ณ„์ •์ด ํƒ€์ธ์— ์˜ํ•ด ์‰ฝ๊ฒŒ ์นจํ•ด๋‹นํ•˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

4) AWS์˜ MFA(๋‹ค์ค‘ ์ธ์ฆ) ๊ธฐ๊ธฐ ์˜ต์…˜
(1) ๊ฐ€์ƒ MFA ๊ธฐ๊ธฐ

  • ์˜ˆ: Google Authenticator๋Š” ํœด๋Œ€ํฐ์— ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ: Authy๋Š” ์—ฌ๋Ÿฌ ๊ธฐ๊ธฐ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ํ•˜๋‚˜์˜ ๊ธฐ๊ธฐ์—์„œ ๋‹ค์ˆ˜์˜ ํ† ํฐ ์ง€์›.

(2) U2F(์œ ๋‹ˆ๋ฒ„์„ค 2์ฐจ ์ธ์ฆ) ๋ณด์•ˆ ํ‚ค

  • ์˜ˆ: YubiKey by Yubico (์ œ3์ž ์ œ๊ณต).
  • ํ•˜๋‚˜์˜ ๋ณด์•ˆ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด ์—ฌ๋Ÿฌ ๋ฃจํŠธ ๋ฐ IAM ์‚ฌ์šฉ์ž ์ง€์›

(3) ํ•˜๋“œ์›จ์–ด ํ‚ค Fob MFA ๊ธฐ๊ธฐ

  • Gemalto(์ œ3์ž ์ œ๊ณต์—…์ฒด)์—์„œ ์ œ๊ณตํ•˜๋Š” ํœด๋Œ€์šฉ ๊ธฐ๊ธฐ.

(4) ํ•˜๋“œ์›จ์–ด ํ‚ค Fob MFA ๊ธฐ๊ธฐ for AWS GovCloud(US)

  • SurePassID(์ œ3์ž ์ œ๊ณต์—…์ฒด)์—์„œ ์ œ๊ณตํ•˜๋Š”, ๋ฏธ๊ตญ ์ •๋ถ€ ์ „์šฉ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค์ธ AWS GovCloud(US)์šฉ ํœด๋Œ€์šฉ ๊ธฐ๊ธฐ.
  1. CLI (Command-Line Interface)
    1์žฅ. AWS ์•ก์„ธ์Šค ํ‚ค, CLI ๋ฐ SDK
    1) AWS์— ์ ‘์†ํ•˜๋Š” ๋ฐฉ๋ฒ•
  • AWS Management Console : ๋น„๋ฐ€๋ฒˆํ˜ธ + MFA๋กœ ๋ณดํ˜ธ
  • AWS ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค(CLI) : ์•ก์„ธ์Šค ํ‚ค๋กœ ๋ณดํ˜ธ
  • AWS ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž ํ‚คํŠธ(SDK) : api ํ˜ธ์ถœ ์‹œ, ์•ก์„ธ์Šค ํ‚ค๋กœ ๋ณดํ˜ธ

2) ์•ก์„ธ์Šค ํ‚ค ์ƒ์„ฑ ๋ฐฉ๋ฒ•

  • Access Keys๋Š” AWS ๊ด€๋ฆฌ ์ฝ˜์†”์„ ํ†ตํ•ด ์ƒ์„ฑ.

3) ์•ก์„ธ์Šค ํ‚ค ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•

  • ์‚ฌ์šฉ์ž๋“ค์ด ์ž์‹ ๋“ค์˜ ์•ก์„ธ์Šค ํ‚ค๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌ.
  • ์•ก์„ธ์Šค ํ‚ค๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ์ฒ˜๋Ÿผ ๋น„๋ฐ€์ž…๋‹ˆ๋‹ค. ๊ณต์œ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
  • Access Key ID ~= username
  • Secret Access Key ~= password

4) AWS CLI (Command Line Interface) ๋ž€?

  • AWS CLI: Command-line shell์—์„œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ AWS ์„œ๋น„์Šค๋“ค๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋„๊ตฌ.
  • AWS CLI๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด AWS์˜ ๊ณต์šฉ API๋กœ ์ง์ ‘ ์•ก์„ธ์Šค ๊ฐ€๋Šฅ.
  • AWS CLI๋ฅผ ํ†ตํ•ด ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ฐœ๋ฐœํ•ด ์ผ๋ถ€ ์ž‘์—…์„ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ์Œ.
  • AWS CLI๋Š” ์˜คํ”ˆ์†Œ์Šค๋กœ์„œ, ๊นƒํ—ˆ๋ธŒ์• ์„œ ๋ชจ๋“  ์†Œ์Šค์ฝ”๋“œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ.
  • AWS ๊ด€๋ฆฌ Console ๋Œ€์‹  ์‚ฌ์šฉ๋˜๊ธฐ๋„ ํ•จ.

5) AWS SDK (Software Development Kit) ๋ž€?

  • ํŠน์ • ์–ธ์–ด๋กœ ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ง‘ํ•ฉ. ๋”ฐ๋ผ์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋”ฐ๋ผ ๊ฐœ๋ณ„ SDK๊ฐ€ ์žˆ์Œ.
  • AWS SDK๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด AWS์˜ ์„œ๋น„์Šค๋‚˜ API์— ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•œ ์•ก์„ธ์Šค ๊ฐ€๋Šฅ.
  • SDK๋Š” ํ„ฐ๋ฏธ๋„ ๋‚ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ฝ”๋”ฉ์„ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์— ์‹ฌ์–ด๋‘๋Š” ๊ฒƒ. ์ฆ‰, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์— ์ž์ฒด์ ์œผ๋กœ AWS SDK๊ฐ€ ์žˆ๋Š” ๊ฒƒ.
  • ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ง€์› (JavaScript, Python, PHP, NET, Ruby, Java, Go, Node.js, C++)
  • ๋ชจ๋ฐ”์ผ SDK, IoT Device SDK ์ง€์›.
  • ์˜ˆ: AWS CLI๋Š” ์‚ฌ์‹ค์ƒ Boto๋ผ๋Š” Python์šฉ AWS SDK์— ๊ตฌ์ถ•๋˜์–ด ์žˆ์Œ.

04. IAM Role

1์žฅ. AWS ์„œ๋น„์Šค์— ๋Œ€ํ•œ IAM ์—ญํ• 

1 ) IAM ์„œ๋น„์Šค๋ž€?

  • AWS ์„œ๋น„์Šค๋“ค์€ ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๊ถŒํ•œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฅผ ์œ„ํ•ด AWS ์„œ๋น„์Šค์— IAM ์—ญํ• ์„ ํ• ๋‹นํ•˜์—ฌ ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.
  • IAM ์—ญํ• ์€ ์‹ค์ œ ์‚ฌ์šฉ์ž์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ AWS ์„œ๋น„์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • EC2 ์ธ์Šคํ„ด์Šค ์—ญํ• : EC2 ์ธ์Šคํ„ด์Šค(๊ฐ€์ƒ ์„œ๋ฒ„)์— ๋ถ€์—ฌ๋˜์–ด AWS ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  • Lambda ํ•จ์ˆ˜ ์—ญํ• : AWS Lambda ํ•จ์ˆ˜๊ฐ€ ๋‹ค๋ฅธ AWS ์„œ๋น„์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  • CloudFormation ์—ญํ• : AWS CloudFormation์ด AWS ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

2์žฅ. IAM ๋ณด์•ˆ ๋„๊ตฌ

1) IAM ๋ณด์•ˆ ๋„๊ตฌ
(1) IAM ์ž๊ฒฉ ์ฆ๋ช… ๋ณด๊ณ ์„œ (๊ณ„์ • ์ˆ˜์ค€)

  • ๊ณ„์ •์˜ ๋ชจ๋“  ์‚ฌ์šฉ์ž์™€ ๊ทธ๋“ค์˜ ๋‹ค์–‘ํ•œ ์ž๊ฒฉ ์ฆ๋ช… ์ƒํƒœ๋ฅผ ๋‚˜์—ดํ•˜๋Š” ๋ณด๊ณ ์„œ์ž…๋‹ˆ๋‹ค.

(2) IAM ์•ก์„ธ์Šค ์–ด๋“œ๋ฐ”์ด์ € (์‚ฌ์šฉ์ž ์ˆ˜์ค€)

  • ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ถ€์—ฌ๋œ ์„œ๋น„์Šค ๊ถŒํ•œ๊ณผ ๊ทธ ์„œ๋น„์Šค๋“ค์ด ๋งˆ์ง€๋ง‰์œผ๋กœ ์ ‘๊ทผ๋œ ์‹œ์ ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
  • ๋งˆ์ง€๋ง‰์œผ๋กœ ์ ‘์†ํ•œ ์‹œ๊ฐ„ ์ •๋ณด๋ฅผ ํ†ตํ•ด์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ถŒํ•œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •์ฑ…์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์ตœ์†Œ ๊ถŒํ•œ ์›์น™์— ๋„์›€๋จ.)

3์žฅ. IAM ๋ชจ๋ฒ” ์‚ฌ๋ก€

1) IAM ์ง€์นจ ๋ฐ ๋ชจ๋ฒ” ์‚ฌ๋ก€

  • ๋ฃจํŠธ ๊ณ„์ •์€ AWS ๊ณ„์ • ์„ค์ •์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”.
  • ํ•œ ์‚ฌ๋žŒ์˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•˜๋‚˜์˜ AWS ์‚ฌ์šฉ์ž๋ฅผ ๋งคํ•‘ํ•˜์„ธ์š”.
  • ์‚ฌ์šฉ์ž๋ฅผ ๊ทธ๋ฃน์— ํ• ๋‹นํ•˜๊ณ  ๊ทธ๋ฃน์— ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜์„ธ์š”.
  • ๊ฐ•๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ •์ฑ…์„ ๋งŒ๋“ค๊ณ  ์‹œํ–‰ํ•˜์„ธ์š”.
  • ๋‹ค์ค‘ ์ธ์ฆ ์š”์†Œ(MFA) ์‚ฌ์šฉ์„ ์‹œํ–‰ํ•˜์„ธ์š”.
  • AWS ์„œ๋น„์Šค์— ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ธฐ ์œ„ํ•ด ์—ญํ• ์„ ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉํ•˜์„ธ์š”.
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹ ์ ‘๊ทผ(CLI/SDK)์—๋Š” ์•ก์„ธ์Šค ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.
  • IAM ์ž๊ฒฉ ์ฆ๋ช… ๋ณด๊ณ ์„œ๋ฅผ ํ†ตํ•ด ๊ณ„์ •์˜ ๊ถŒํ•œ์„ ๊ฐ์‚ฌํ•˜์„ธ์š”.
  • IAM ์‚ฌ์šฉ์ž์™€ ์•ก์„ธ์Šค ํ‚ค๋ฅผ ๊ณต์œ ํ•˜์ง€ ๋งˆ์„ธ์š”.

4์žฅ. IAM์˜ ๊ณต๋™ ์ฑ…์ž„ ๋ชจ๋ธ

1) AWS IAM์˜ ๊ณต์œ  ์ฑ…์ž„ ๋ชจ๋ธ
(1) AWS์˜ ์ฑ…์ž„

  • ์ธํ”„๋ผ (๊ธ€๋กœ๋ฒŒ ๋„คํŠธ์›Œํฌ ๋ณด์•ˆ)
  • ๊ตฌ์„ฑ ๋ฐ ์ทจ์•ฝ์  ๋ถ„์„
  • ์ค€์ˆ˜ ๊ฒ€์ฆ

(2) ์‚ฌ์šฉ์ž์˜ ์ฑ…์ž„

  • ์‚ฌ์šฉ์ž, ๊ทธ๋ฃน, ์—ญํ• , ์ •์ฑ… ๊ด€๋ฆฌ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง
  • ๋ชจ๋“  ๊ณ„์ •์— MFA ํ™œ์„ฑํ™”
  • ์ฃผ๊ธฐ์ ์œผ๋กœ ํ‚ค ๊ต์ฒด
  • IAM ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ์ ˆํ•œ ๊ถŒํ•œ ์ ์šฉ
  • ์ ‘๊ทผ ํŒจํ„ด ๋ถ„์„ ๋ฐ ๊ถŒํ•œ ๊ฒ€ํ† 

โ€ป IAM ์„น์…˜ ์š”์•ฝ์ •๋ฆฌ

  • ์‚ฌ์šฉ์ž : ์‹ค์ œ ์‚ฌ์šฉ์ž์— ๋งคํ•‘๋˜๋ฉฐ, AWS ์ฝ˜์†”์šฉ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ฃน : ์‚ฌ์šฉ์ž๋งŒ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
  • ์ •์ฑ… : ์‚ฌ์šฉ์ž๋‚˜ ๊ทธ๋ฃน์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ์ •์˜ํ•˜๋Š” JSON ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.
  • ์—ญํ•  : EC2 ์ธ์Šคํ„ด์Šค๋‚˜ AWS ์„œ๋น„์Šค์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ๋ณด์•ˆ : ๋‹ค์ค‘ ์ธ์ฆ ์š”์†Œ(MFA)์™€ ๊ฐ•๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ •์ฑ…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • AWS CLI : ๋ช…๋ น์ค„์„ ํ†ตํ•ด AWS ์„œ๋น„์Šค๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • AWS SDK : ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ AWS ์„œ๋น„์Šค๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ์•ก์„ธ์Šค ํ‚ค : CLI๋‚˜ SDK๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ AWS์— ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ์‚ฌ : IAM ์ž๊ฒฉ ์ฆ๋ช… ๋ณด๊ณ ์„œ์™€ IAM ์•ก์„ธ์Šค ์–ด๋“œ๋ฐ”์ด์ €๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.