[Daily morning study] AWS IAM (Identity and Access Management)์˜ ์ค‘์š”์„ฑ

#daily morning study

Image


AWS IAM (Identity and Access Management)์˜ ์ค‘์š”์„ฑ

AWS IAM์€ Amazon Web Services์—์„œ ์ œ๊ณตํ•˜๋Š” ์‹ ์› ๋ฐ ์ ‘๊ทผ ๊ด€๋ฆฌ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. IAM์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋Š” AWS ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ณด์•ˆ๊ณผ ๊ด€๋ฆฌ ์ธก๋ฉด์—์„œ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

IAM์˜ ๊ธฐ๋ณธ ๊ฐœ๋…

์‚ฌ์šฉ์ž(User)

  • IAM ์‚ฌ์šฉ์ž๋Š” AWS ๊ณ„์ •์— ์†ํ•œ individuall ์‚ฌ์šฉ์ž๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์‚ฌ์šฉ์ž๋Š” ๊ณ ์œ ํ•œ ์ž๊ฒฉ ์ฆ๋ช…์„ ํ†ตํ•ด ์‹œ์Šคํ…œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฃน(Group)

  • IAM ๊ทธ๋ฃน์€ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๋“ค์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด ๊ณตํ†ต๋œ ์ •์ฑ…์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ทธ๋ฃน์„ ํ†ตํ•ด ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

์—ญํ• (Role)

  • IAM ์—ญํ• ์€ ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๋‚˜ ์„œ๋น„์Šค๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ AWS ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ์ด๋Š” ์ฃผ๋กœ AWS ์„œ๋น„์Šค๊ฐ€ ๋‹ค๋ฅธ ์„œ๋น„์Šค๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ •์ฑ…(Policy)

  • IAM ์ •์ฑ…์€ JSON ํ˜•์‹์œผ๋กœ ์ž‘์„ฑํ•˜๋ฉฐ, ํŠน์ • ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ์‹ฌํ”Œํ•œ ๊ทœ์น™ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด EC2 ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ์ƒ์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ ๊ถŒํ•œ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์™œ IAM์ด ์ค‘์š”ํ•œ๊ฐ€?

1. ๋ฆฌ์†Œ์Šค ๋ณดํ˜ธ

IAM์„ ํ†ตํ•ด AWS ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ๊ฐ•๋ ฅํ•˜๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ๋ณดํ˜ธํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์œ ์ถœ์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ์ตœ์†Œ ๊ถŒํ•œ ์›์น™

IAM์€ ์ตœ์†Œ ๊ถŒํ•œ ์›์น™์„ ์ ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ๊ถŒํ•œ๋งŒ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์œ„ํ—˜ ์š”์†Œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ๊ฐ์‚ฌ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง

IAM์€ AWS CloudTrail๊ณผ ํ†ตํ•ฉ๋˜์–ด ๋ณด์•ˆ ๊ฐ์‚ฌ ๊ธฐ๋ก์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์‚ฌ์šฉ์ž๊ฐ€ ๋ˆ„๊ตฌ์—๊ฒŒ ์–ด๋–ค ์ ‘๊ทผ ๊ถŒํ•œ์„ ์š”์ฒญํ–ˆ๋Š”์ง€, ์–ด๋–ค ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ๋Š”์ง€๋ฅผ ํŠธ๋ž˜ํ‚นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. ๋‹ค์–‘ํ•œ ์ธ์ฆ ์˜ต์…˜

IAM์€ ์—ฌ๋Ÿฌ ์ธ์ฆ ๋ฐฉ๋ฒ•์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Multi-Factor Authentication(MFA)๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์ถ”๊ฐ€์ ์ธ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

IAM ๊ธฐ๋ณธ ํ™œ์šฉ ์˜ˆ์ œ

์‚ฌ์šฉ์ž ์ƒ์„ฑ ๋ฐ ์ •์ฑ… ๋ถ€์—ฌ

๋‹ค์Œ์€ IAM์—์„œ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ •์ฑ…์„ ๋ถ€์—ฌํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. AWS CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

# ์‚ฌ์šฉ์ž ์ƒ์„ฑ
aws iam create-user --user-name new-user

# ์ •์ฑ… ์ƒ์„ฑ ์˜ˆ (S3 ์ ‘๊ทผ ๊ถŒํ•œ ๋ถ€์—ฌ)
aws iam create-policy --policy-name S3AccessPolicy --policy-document '{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": "*"
        }
    ]
}'

# ์‚ฌ์šฉ์ž์—๊ฒŒ ์ •์ฑ… ์—ฐ๊ฒฐ
aws iam attach-user-policy --user-name new-user --policy-arn arn:aws:iam::account-id:policy/S3AccessPolicy

IAM์˜ ๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค

  1. ์ •๊ธฐ์ ์ธ ์ ‘๊ทผ ๊ถŒํ•œ ๊ฒ€ํ† : ์‚ฌ์šฉ์ž์˜ ๊ถŒํ•œ์„ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ ๊ฒ€ํ•˜๊ณ  ๋ถˆํ•„์š”ํ•œ ๊ถŒํ•œ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  2. MFA ํ™œ์„ฑํ™”: ์ค‘์š”ํ•œ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ๋ฐ˜๋“œ์‹œ MFA๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  3. ํƒ€๊ฒŸ ์‚ฌ์šฉ์ž ๊ทธ๋ฃนํ™”: ๋น„์Šทํ•œ ์—ญํ• ์„ ์ง€๋‹Œ ์‚ฌ์šฉ์ž๋“ค์„ ๊ทธ๋ฃน์œผ๋กœ ๋ชจ์•„ ์ •์ฑ…์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  4. ์ •์ฑ…์€ ์ตœ์†Œ ๊ถŒํ•œ ์›์น™์„ ๋”ฐ๋ฅด๊ธฐ: ์‚ฌ์šฉ์ž๊ฐ€ ์‹ค์ œ๋กœ ํ•„์š”ํ•œ ๊ถŒํ•œ๋งŒ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.
  5. ์ž๋™ํ™” ๋„๊ตฌ ํ™œ์šฉ: AWS Config, CloudTrail ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ถŒํ•œ ๋ณ€๊ฒฝ ๋ฐ ํ™œ๋™์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

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