๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Tech Stack/AWS

[241212] AWS Region, ๊ฐ€์šฉ ์˜์—ญ(AZ), IAM ๋‚ด์šฉ ์ •๋ฆฌ

by _silver 2024. 12. 12.
AWS Region๊ณผ ๊ฐ€์šฉ ์˜์—ญ(AZ)

 

1. AWS Region์ด๋ž€?

- AWS Region(๋ฆฌ์ „)์€ ์ „ ์„ธ๊ณ„ ์—ฌ๋Ÿฌ ๋ฌผ๋ฆฌ์  ์œ„์น˜์— ๋ถ„ํฌ๋œ AWS ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ๊ทธ๋ฃน์„ ์˜๋ฏธ

- ๊ฐ ๋ฆฌ์ „์€ ๋…๋ฆฝ์ ์œผ๋กœ ์šด์˜๋˜๋ฉฐ, ์„œ๋กœ ๋ถ„๋ฆฌ๋œ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ์ธํ”„๋ผ๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ์Œ

 

2. ๊ฐ€์šฉ ์˜์—ญ(Availability Zone, AZ)

- ํ•˜๋‚˜์˜ ๋ฆฌ์ „์—๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ€์šฉ ์˜์—ญ(AZ)์ด ํฌํ•จ

- AZ๋Š” ์„œ๋กœ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋…๋ฆฝ๋œ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ์ €์ง€์—ฐ ๋„คํŠธ์›Œํฌ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Œ

- ์—ฌ๋Ÿฌ AZ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์ž์—ฐ์žฌํ•ด๋‚˜ ํ•˜๋“œ์›จ์–ด ์žฅ์•  ๋“ฑ์˜ ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ์—๋„ ์„œ๋น„์Šค ๊ฐ€์šฉ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Œ

 

3. ๊ณ ๊ฐ€์šฉ์„ฑ(High Availability)์ด๋ž€?

- ๊ณ ๊ฐ€์šฉ์„ฑ์€ ์„œ๋น„์Šค๊ฐ€ ์ค‘๋‹จ ์—†์ด ์ง€์†์ ์œผ๋กœ ์šด์˜๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์„ค๊ณ„๋ฅผ ์˜๋ฏธ

- AWS์—์„œ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ AZ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ AZ๊ฐ€ ์ง€์†์ ์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑ๋จ

๐Ÿ”— AWS ๋ฆฌ์ „๋ณ„ ์„œ๋น„์Šค ํ™•์ธ: AWS Global Infrastructure

IAM(Identity and Access Management)

 

1. IAM์ด๋ž€?

- AWS ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ œ์–ดํ•˜๋Š” ์›น ์„œ๋น„์Šค

- IAM์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž, ๊ทธ๋ฃน, ์—ญํ• ์„ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜์—ฌ AWS ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ

 

2. IAM์ฃผ์š” ๊ธฐ๋Šฅ

- ์ธ์ฆ(Authentication): AWS ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๋ ค๋Š” ์‚ฌ์šฉ์ž์˜ ์‹ ์›์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

- ๊ถŒํ•œ ๋ถ€์—ฌ(Authorization): ํŠน์ • ์‚ฌ์šฉ์ž, ๊ทธ๋ฃน, ์—ญํ• ์— AWS ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

- ๊ถŒํ•œ ๊ฒ€์ฆ(Access Evaluation): ์š”์ฒญ์ด ํ—ˆ์šฉ๋œ ์‚ฌ์šฉ์ž ๋˜๋Š” ๊ทธ๋ฃน์— ์˜ํ•ด ์ˆ˜ํ–‰๋˜๋Š”์ง€ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.

 

3. IAM์˜ ์ฃผ์š” ๊ฐœ๋…

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

- AWS ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฐœ๋ณ„ ์‚ฌ์šฉ์ž ๊ณ„์ •์œผ๋กœ, ๊ฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ณ ์œ ํ•œ ๋ณด์•ˆ ์ž๊ฒฉ ์ฆ๋ช…์„ ๋ถ€์—ฌํ•˜์—ฌ ํŠน์ • ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

(2) ๊ทธ๋ฃน(Group)

- ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ๋™์ผํ•œ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • Amazon S3 ๋ฒ„ํ‚ท์— ๋Œ€ํ•œ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๋“ค์„ ํ•˜๋‚˜์˜ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

(3) ์ •์ฑ…(Policy)

- IAM ์ •์ฑ…์€ JSON ํ˜•์‹์œผ๋กœ ์ž‘์„ฑ๋˜๋ฉฐ, ํŠน์ • ์‚ฌ์šฉ์ž ๋˜๋Š” ๊ทธ๋ฃน์— ๋ถ€์—ฌํ•  ๊ถŒํ•œ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ •์ฑ…์€ **์ตœ์†Œ ๊ถŒํ•œ ์›์น™(Least Privilege Principle)**์„ ๋”ฐ๋ฅด๋ฉฐ, ํ•„์š”ํ•œ ๊ถŒํ•œ๋งŒ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์ด ๋ณด์•ˆ ๊ฐ•ํ™”์— ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.


IAM ์ •์ฑ…(JSON ๋ฒ„์ „)
{
  "Version": "policy-version",
 // ์˜ต์…˜ ์ •์ฑ…์— ๋”ฐ๋ผ ID๊ฐ’์ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ.
 "Statement": [
    {
      "Effect": "allow-or-deny",
      "Action": ["action-name"],
      "Resource": ["resource-arn"],
      "Condition": {
        "condition-operator": {
          "condition-key": "condition-value"
        }
      }
    }
  ]
}

 

- Version: ์ •์ฑ…์˜ ๋ฒ„์ „: ํ˜„์žฌ๋Š” "2012-10-17"  ๊ณ ์ •

- Statement: ์ •์ฑ… ๊ทœ์น™์„ ๋ฐฐ์—ด๋กœ ์ •์˜

- Effect: ๊ทœ์น™์˜ ์ ์šฉ ์—ฌ๋ถ€: "allow"(ํ—ˆ์šฉ) ๋˜๋Š” "deny" (๊ฑฐ๋ถ€)

- Action: ํ—ˆ์šฉํ•  AWS ์„œ๋น„์Šค ์ž‘์—…(์˜ˆ: "s3:ListBucket")

- Resource: ๊ทœ์น™์ด ์ ์šฉ๋˜๋Š” ๋ฆฌ์†Œ์Šค, ARN (Amazon Resource Name): (์˜ˆ: "arn:aws:s3:::my-bucket/*")

- Condition: ํŠน์ • ์กฐ๊ฑด์ด ์ถฉ์กฑ๋  ๋•Œ๋งŒ ํ—ˆ์šฉ(์˜ˆ: ํŠน์ • IP ์ฃผ์†Œ์—๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ), ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ, ๋‹ค์–‘ํ•œ ๊ณ ์ „ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ