๐ŸŽ‰ berenickt ๋ธ”๋กœ๊ทธ์— ์˜จ ๊ฑธ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ๐ŸŽ‰
DevOps
11-IAM

1. IAM

  • IAM(Identity and Access Management) : AWS ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ๊ด€๋ฆฌํ•˜๋Š” ์„œ๋น„์Šค
  • IAM ์‚ฌ์šฉ์ž ๋ฐ ๊ทธ๋ฃน์„ ๋งŒ๋“ค์–ด์„œ ๊ด€๋ฆฌ
  • ๊ถŒํ•œ์„ ์‚ฌ์šฉํ•ด AWS ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉ ๋ฐ ๊ฑฐ๋ถ€ํ•  ์ˆ˜ ์žˆ์Œ
  • ์ถ”๊ฐ€ ๋น„์šฉ ์—†์ด ์ œ๊ณต ๋˜๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•œ ๋‹ค๋ฅธ AWS ์„œ๋น„์Šค์— ๋Œ€ํ•ด์„œ๋งŒ ์š”๊ธˆ์ด ๋ถ€๊ณผ๋จ
  • Key๋ฅผ ๋ฐœ๊ธ‰ํ•จ์œผ๋กœ์จ AWS ์™ธ๋ถ€์—์„œ API๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ

1.1 IAM ๊ธฐ๋ณธ ๊ฐœ๋…

IAM์€ Root๊ณ„์ • ๋…ธ์ถœ์—†์ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œํ•œ์ ์ธ ๊ถŒํ•œ(Role)์„ ๋ถ€์—ฌํ•˜๊ณ  ์‹ถ์„๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

  • User : AWS ์„œ๋น„์Šค ์‚ฌ์šฉ์ž๋ฅผ ์˜๋ฏธํ•˜๋Š”๋ฐ, ์‚ฌ๋žŒ ๋˜๋Š” ์™ธ๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด User๊ฐ€ ๋œ๋‹ค.
  • Group : User๋“ค์˜ ์ง‘ํ•ฉ์„ ์˜๋ฏธ
  • Role(์—ญํ• ) : AWS์˜ ์ž‘์—…๊ณผ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ๊ถŒํ•œ ์„ธํŠธ๋ฅผ ์˜๋ฏธ
  • Policy : ํŠน์ • AWS ์š”์†Œ์˜ ํŠน์ • ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ •์ฑ…์„ ์˜๋ฏธ
  • Permission : Policy๋“ค์˜ ์ง‘ํ•ฉ์„ ์˜๋ฏธ

์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์—๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  • Programmatic Access :
    • AWS SDK๋“ฑ์„ ์ด์šฉํ•˜์—ฌ AWS ์„œ๋น„์Šค์— API๋กœ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹
    • Access key ID, Secret access key๋กœ ๊ตฌ์„ฑ๋œ ํ‚ค๊ฐ€ ๋ฐœ๊ธ‰๋จ
    • ์ผ๋ฐ˜์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
  • Management Console Access :
    • ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์ „์šฉ Console login link๋กœ ์ ‘์†ํ•˜๋Š” ๋ฐฉ์‹
    • AWS Management Console์— ์ œํ•œ๋œ ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•  ๋•Œ๋งŒ ์‚ฌ์šฉ

1.2 IAM ์‚ฌ์šฉ ํ˜•ํƒœ

  • AWS์˜ ๋ฆฌ์†Œ์Šค์™€ ์„œ๋น„์Šค์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•˜๋Š” ์‚ฌ์šฉ์ž ๋ฐ ๊ทธ๋ฃน์ด ์žˆ์œผ๋ฉฐ,

    • ๊ฐ ์‚ฌ์šฉ์ž ๋ฐ ๊ทธ๋ฃน์€ ํ•„์š”ํ•œ Policy๋“ค์„ ๊ฐ–๊ณ  ์žˆ๋‹ค.
  • AWS Lambda ๊ฐ™์€ ๋‹ค๋ฅธ ์„œ๋น„์Šค๊ฐ€ AWS์˜ ์„œ๋น„์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด์„œ

    • Role์„ ๋ถ€์—ฌํ•œ ๊ฒƒ๋„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

2. (์‹ค์Šต) IAM ์‚ฌ์šฉ์ž ์ถ”๊ฐ€

[IAM] โ†’ ์™ผ์ชฝ ๋ฉ”๋‰ด์˜ [์‚ฌ์šฉ์ž] ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ด, [์‚ฌ์šฉ์ž ์ƒ์„ฑ] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.

1๋‹จ๊ณ„ ์‚ฌ์šฉ์ž ์„ธ๋ถ€ ์ •๋ณด ์ง€์›

  • ์‚ฌ์šฉ์ž ์ด๋ฆ„ : test-iam-user
  • AWS Management Console์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค ๊ถŒํ•œ ์ œ๊ณต์„ ์ฒดํฌ
    • cf. ๋ง ๊ทธ๋Œ€๋กœ IM ์‚ฌ์šฉ์ž๊ฐ€ ๋งค๋‹ˆ์ง€๋จผํŠธ ์ฝ˜์†”์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ
    • ์ฒดํฌํ•˜๋ฉด ์•„๋ž˜ ์‚ฌ์šฉ์ž ์œ ํ˜•์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ด ๋‚˜์˜จ๋‹ค.
    • IAM ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‹ถ์Œ๋ฅผ ์ฒดํฌ
  • ๊ทธ๋Ÿผ ์•„๋ž˜์— ์•”ํ˜ธ๋ฅผ ์–ด๋–ป๊ฒŒ ํ• ์ง€ ์„ ํƒํ•˜๋Š” ์˜ต์…˜์ด ๋‚˜์˜ค๋Š”๋ฐ,
    • ์ž๋™ ์ƒ์„ฑ๋œ ์•”ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋˜,
    • ์‚ฌ์šฉ์ž๋Š” ๋‹ค์Œ ๋กœ๊ทธ์ธ ์‹œ ์ƒˆ ์•”ํ˜ธ๋ฅผ ์ƒ์„ฑ์„ ์ฒดํฌํ•œ๋‹ค.
  • ์ด์ œ [๋‹ค์Œ] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.

2๋‹จ๊ณ„ ๊ถŒํ•œ ์„ค์ •

  • [์ง์ ‘ ์ •์ฑ… ์—ฐ๊ฒฐ]์„ ํด๋ฆญ
  • ์ง์ ‘ ์ •์ฑ… ์—ฐ๊ฒฐ์„ ์„ ํƒํ•˜๋ฉด, ๋ฏธ๋ฆฌ ์ •์˜๋œ ์ •์ฑ…๋“ค์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์ด ๋‚˜์˜จ๋‹ค.
  • ec2readonly๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ AmazonEC2ReadOnlyAccess๋ฅผ ์„ ํƒ.
    • cf. EC2์˜ ๋ฆฌ์†Œ์Šค๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜๋Š” ์—†๊ณ , ์ฝ์„ ์ˆ˜๋งŒ ์žˆ๋Š” ๊ถŒํ•œ.
  • ์„ ํƒํ•œ ๋’ค์— [๋‹ค์Œ] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.

3๋‹จ๊ณ„ ๊ฒ€ํ†  ๋ฐ ์ƒ์„ฑ

๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์—์„œ๋Š” ์ด์ „์— ์„ค์ •ํ•œ ๋‚ด์šฉ์ด ๋งž๋Š”์ง€ ํ•œ๋ฒˆ ๊ฒ€ํ† ํ•˜๊ณ  ์ดํ›„์— [์‚ฌ์šฉ์ž ์ƒ์„ฑ] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.

  • ๊ทธ๋Ÿฌ๋ฉด ์ด๋ ‡๊ฒŒ IM ์‚ฌ์šฉ์ž๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ƒ์„ฑ๋œ๋‹ค.
  • ์ค‘์š”ํ•œ ๊ฒƒ์€ ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ์•”ํ˜ธ๊ฐ€ ์žˆ๋Š” CSV ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๊ธฐํšŒ๋‹ค.
  • ๊ทธ๋ž˜์„œ [.CSV ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด์„œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„ ๋‘”๋‹ค.

3. (์‹ค์Šต) IAM ์‚ฌ์šฉ์ž๋กœ ๋กœ๊ทธ์ธ

์•ž์—์„œ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ CSV ํŒŒ์ผ์„ ์—ด์–ด์„œ, ์ฝ˜์†” URL์„ ๋ณต์‚ฌํ•ด ๋ธŒ๋ผ์šฐ์ €์—์„œ ์—ฐ๋‹ค.

  • ์ด๋•Œ ๊ธฐ์กด ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฃจํŠธ ๊ณ„์ •์œผ๋กœ AWS ์ฝ˜์†”์— ๋กœ๊ทธ์ธ๋˜์–ด ์žˆ์„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—,
    • ์ƒˆ๋กœ ์‹œํฌ๋ฆฟ ์ฐฝ์—์„œ ์ ‘์†ํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.
  • ์ด์ œ CSV ํŒŒ์ผ์— ๋‚˜์™€ ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด์„œ ๋กœ๊ทธ์ธํ•œ๋‹ค.
  • ๋กœ๊ทธ์ธ์ด ์„ฑ๊ณตํ•˜๋ฉด, ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ํ™”๋ฉด์ด ๋‚˜์˜จ๋‹ค.
    • ์•ž์—์„œ ์ฒ˜์Œ ๋กœ๊ทธ์ธ ์‹œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋„๋ก ์„ค์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ
    • ์ƒˆ ๋น„๋ฐ€๋ฒˆํ˜ธ์— ํŠน์ˆ˜๋ฌธ์ž, ์ˆซ์ž, ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ์„ž์–ด์„œ ๋„ฃ์–ด์•ผ ํ•œ๋‹ค.

์ด์ œ IAM ์‚ฌ์šฉ์ž๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ• ๋ ค๊ณ  ์‹œ๋„ํ•˜๋ฉด, ์‹คํŒจํ•œ๋‹ค.

  • ํ˜„์žฌ IAM ์‚ฌ์šฉ์ž๋Š” EC2 Read Only ๊ถŒํ•œ๋งŒ ์žˆ๊ธฐ ๋•Œ๋ฌธ.

4. (์‹ค์Šต) IAM ๊ทธ๋ฃน ์ƒ์„ฑ ๋ฐ ์‚ฌ์šฉ์ž ์ถ”๊ฐ€

๋จผ์ € Root ์‚ฌ์šฉ์ž๋กœ ๋กœ๊ทธ์ธ๋˜์–ด ์žˆ๋Š” ๋ธŒ๋ผ์šฐ์ €์— ์ ‘์†ํ•œ๋‹ค.

  • [IAM] โ†’ ์™ผ์ชฝ ๋ฉ”๋‰ด [์‚ฌ์šฉ์ž ๊ทธ๋ฃน] ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•œ๋‹ค.
  • ๊ทธ๋ฃน ๋ชฉ๋ก ํ™”๋ฉด์ด ๋‚˜์˜ค๋ฉด, [๊ทธ๋ฃน ์ƒ์„ฑ] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.

(์‚ฌ์šฉ์ž ๊ทธ๋ฃน ์ƒ์„ฑ)

  • ์‚ฌ์šฉ์ž ๊ทธ๋ฃน ์ด๋ฆ„ : test-group
  • ๊ทธ๋ฃน์— ์‚ฌ์šฉ์ž๋ฅผ ์ถ”๊ฐ€ : ๊ธฐ์กด์— ์ƒ์„ฑํ•œ IAM ใ……์‚ฌ์šฉ์ž๋ฅผ ์„ ํƒํ•ด ๊ทธ๋ฃน์— ์ถ”๊ฐ€
  • ๊ถŒํ•œ ์ •์ฑ… ์—ฐ๊ฒฐ : ec2full๋ฅผ ๊ฒ€์ƒ‰ํ•ด ํ•„ํ„ฐ๋งํ•œ ๋’ค์—,
    • AmazonEC2FullAccess ์ •์ฑ…์„ ์„ ํƒ
  • ๋ชจ๋“  ์„ค์ •์„ ๋งˆ์ณค์œผ๋ฉด, [๊ทธ๋ฃน ์ƒ์„ฑ] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.

๊ทธ๋ฃน ์ƒ์„ธ ์ •๋ณด ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ด, [๊ถŒํ•œ] ํƒญ์„ ํด๋ฆญํ•œ๋‹ค.

  • ๊ทธ๋Ÿผ ํ˜„์žฌ ์ด ๊ทธ๋ฃน์ด ๊ฐ–๊ณ  ์žˆ๋Š” ๊ถŒํ•œ ์ •์ฑ…๋“ค์ด ๋‚˜์˜จ๋‹ค.
  • ์ด ๊ทธ๋ฃน์— ์†ํ•œ ์‚ฌ์šฉ์ž๋Š” ์ด ๊ทธ๋ฃน์˜ ๊ถŒํ•œ์„ ๋ชจ๋‘ ๊ฐ–๊ฒŒ ๋œ๋‹ค.

์ด๋ฒˆ์—๋Š” IAM ์‚ฌ์šฉ์ž ๋ชฉ๋ก์—์„œ ์ƒ์„ฑํ•œ ์‚ฌ์šฉ์ž๋ฅผ ํด๋ฆญํ•ด, ์ƒ์„ธ ์ •๋ณด ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•œ ๋’ค์—,

  • [๊ทธ๋ฃน] ํƒญ์—์„œ ๊ถŒํ•œ์„ ํ™•์ธํ•ด๋ฉด,
  • ํ˜„์žฌ ์ด ์‚ฌ์šฉ์ž์—๊ฒŒ๋„ AmazonEC2FullAccess ์ •์ฑ…์ด ์—ฐ๊ฒฐ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์‹œ IAM ์‚ฌ์šฉ์ž๋กœ ๋กœ๊ทธ์ธ๋˜์–ด ์žˆ๋Š” ๋ธŒ๋ผ์šฐ์ €๋กœ ๋Œ์•„์™€์„œ,

  • ์•„๊นŒ ์‹คํŒจํ•œ EC2 ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์„ ํด๋ฆญํ•ด๋ณด๋ฉด, ์ •์ƒ์ ์œผ๋กœ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

5. (์‹ค์Šต) IAM ์‚ฌ์šฉ์ž ๋ฐ ๊ทธ๋ฃน ์‚ญ์ œ

IAM ์‚ฌ์šฉ์ž ๋ชฉ๋ก์—์„œ ์ƒ์„ฑํ•œ ์‚ฌ์šฉ์ž๋ฅผ ์„ ํƒํ•œ๋‹ค.

  • ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— [์‚ญ์ œ] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.
  • ๊ทธ๋Ÿผ ํ™•์ธ ๋‹ค์ด์–ผ๋กœ๊ทธ๊ฐ€ ๋‚˜์˜ค๊ณ , ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์ž…๋ ฅํ•œ๋‹ค.
    • [์‚ญ์ œ] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ IAM ์‚ฌ์šฉ์ž๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
  • ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉ์ž ์‚ญ์ œ๊ฐ€ ์ง„ํ–‰๋˜๊ณ  ์กฐ๊ธˆ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์‚ญ์ œ๊ฐ€ ์™„๋ฃŒ๋œ๋‹ค.

์ด๋ฒˆ์—๋Š” ๊ทธ๋ฃน์„ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด์„œ [์‚ฌ์šฉ์ž ๊ทธ๋ฃน] ๋ฉ”๋‰ด๋ฅผ ํด๋ฆญํ•œ๋‹ค.

  • ๊ทธ๋ฃน ๋ชฉ๋ก์—์„œ ์ƒ์„ฑํ•œ ๊ทธ๋ฃน์„ ์„ ํƒํ•œ๋‹ค.
  • ์ดํ›„ [์‚ญ์ œ] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.
  • ๊ทธ๋ฃน ์‚ญ์ œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ™•์ธ ๋‹ค์ด์–ผ๋กœ๊ทธ๊ฐ€ ๋‚˜์˜ค๋Š”๋ฐ, ๊ทธ๋ฃน ์ด๋ฆ„์„ ์ž…๋ ฅํ•œ๋‹ค.
    • ์ดํ›„ [์‚ญ์ œ] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.
    • ๊ทธ๋Ÿฌ๋ฉด ๊ทธ๋ฃน ์‚ญ์ œ๊ฐ€ ์ง„ํ–‰๋˜๊ณ , ์กฐ๊ธˆ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๊ทธ๋ฃน ์‚ญ์ œ๊ฐ€ ์™„๋ฃŒ๋œ๋‹ค.