๊ด€๋ฆฌ ๋ฉ”๋‰ด

Hey Tech

ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (2) AWS IAM ์—ญํ•  ์ƒ์„ฑ ๋ณธ๋ฌธ

SW ๊ฐœ๋ฐœ/Amazon Web Service

ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (2) AWS IAM ์—ญํ•  ์ƒ์„ฑ

Tony Park (ํ† ๋‹ˆ) 2022. 6. 9. 23:57
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ ์‹œ๋ฆฌ์ฆˆ ํฌ์ŠคํŒ…

1.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (1) React ๊ธฐ๋ฐ˜ Frontend ๊ฐœ๋ฐœ
2.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (2) AWS IAM ์—ญํ•  ์ƒ์„ฑ
3.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (3) AWS Lambda ์ƒ์„ฑ
4.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (4) AWS S3 ์ƒ์„ฑ
5.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (5) AWS API Gateway ์ƒ์„ฑ
6.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (6) AWS Lambda ํ•จ์ˆ˜ ์ž‘์„ฑ
7.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (7) Axios ๊ธฐ๋ฐ˜ API Call
8.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (8) ํŒŒ์ผ ์—…๋กœ๋“œ ํ…Œ์ŠคํŠธ
9.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (9) AWS S3 ๊ธฐ๋ฐ˜ ์›น ํ˜ธ์ŠคํŒ…

๐Ÿ‘จ‍๐Ÿ’ป ๋“ค์–ด๊ฐ€๋ฉฐ

์ด์ „ ํฌ์ŠคํŒ…์—์„œ๋Š” React๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ Frontend๋ฅผ ๊ตฌํ˜„ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋ฉด ํ•ด๋‹น ํŒŒ์ผ๋ช…, ์œ ํ˜•, ์ตœ์ข… ์ˆ˜์ •์ผ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•ด ์ฃผ๋Š” ๊ฒƒ๊นŒ์ง€ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๊ณ  ์ด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ณธ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์„œ๋ฒ„ ๊ตฌ์ถ•์„ ์œ„ํ•ด ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค์ธ Amazon Web Service(AWS)๋ฅผ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ๋ณธ ํฌ์ŠคํŒ…๋ถ€ํ„ฐ๋Š” AWS๋ฅผ ์ค‘์‹ฌ์œผ๋กœ Backend๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ณผ์ •์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ, ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” AWS์˜ ์—ฌ๋Ÿฌ ์„œ๋น„์Šค์˜ ์•ก์„ธ์Šค(access)๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” IAM ์„œ๋น„์Šค ๋‚ด  ์—ญํ• (Role)์„ ์ƒ์„ฑํ•˜๋Š” ์ ˆ์ฐจ๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“š ๋ชฉ์ฐจ

1.  AWS ๊ธฐ๋ณธ ์„ธํŒ…
2.  IAM ๊ฐœ๋…
3.  IAM Role ์ƒ์„ฑ

1.  AWS ๊ธฐ๋ณธ ์„ธํŒ…

1.1.  ์„œ๋น„์Šค ๊ฐ€์ž…

๋จผ์ € AWS ํ™ˆํŽ˜์ด์ง€์— ๋ฐฉ๋ฌธํ•˜์…”์„œ ํšŒ์›๊ฐ€์ž…์„ ํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๊ทธ๋ฆผ 1๊ณผ ๊ฐ™์ด ์ตœ์ดˆ ๊ฐ€์ž…ํ•œ ์ด๋ฉ”์ผ ๊ณ„์ •์œผ๋กœ 1๋…„๊ฐ„ ๋ฌด๋ฃŒ ์ฒดํ—˜ํŒ(a.k.a., ํ”„๋ฆฌ ํ‹ฐ์–ด)์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋ฌด๋ฃŒ์ธ ๋งŒํผ ์ €์‚ฌ์–‘ ์„œ๋น„์Šค ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํšŒ์›๊ฐ€์ž… ์‹œ ํ•ด์™ธ ๊ฒฐ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์‹ ์šฉ์นด๋“œ ๋“ฑ๋ก์ด ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. ์œ ํšจํ•œ ์‹ ์šฉ์นด๋“œ์ธ์ง€ 100์›์„ ๊ฒฐ์ œํ–ˆ๋‹ค๊ฐ€ ๊ณง๋ฐ”๋กœ ์Šน์ธ ์ทจ์†Œ๋˜๋‹ˆ ์œ ํšจํ•œ ์‹ ์šฉ์นด๋“œ๋ฅผ ์ค€๋น„ํ•ด ์ฃผ์„ธ์š”.

๊ทธ๋ฆผ 1. AWS ํ™ˆํŽ˜์ด์ง€

1.2.  ์„œ๋น„์Šค ์ง€์—ญ ๋ณ€๊ฒฝ

ํšŒ์›๊ฐ€์ž…๊นŒ์ง€ ์™„๋ฃŒํ•˜์…จ๋‹ค๋ฉด ํ˜„์žฌ PC๋ฅผ ์‚ฌ์šฉ ์ค‘์ธ ์ง€์—ญ๊ณผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฑฐ๋ฆฌ์— ์žˆ๋Š” ์„œ๋น„์Šค ์ง€์—ญ(Region)์„ ์„ ํƒํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ถ”ํ›„์— ์„œ๋น„์Šค ์š”๊ธˆ์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์ง€๋งŒ, ์„œ๋น„์Šค ์ง€์—ญ๋งˆ๋‹ค ๊ณผ๊ธˆ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๊ทธ๋ฆผ 2์ฒ˜๋Ÿผ, AWS ํ™ˆํŽ˜์ด์ง€ ์šฐ์ธก ์ƒ๋‹จ์— ์ง€์—ญ ์ด๋ฆ„์„ ํด๋ฆญํ•˜๋ฉด ์„œ๋น„์Šค ์ง€์—ญ์„ ๋ณ€๊ฒฝํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€ํ•œ๋ฏผ๊ตญ์— ๊ฑฐ์ฃผํ•˜๊ณ  ๊ณ„์‹œ๋‹ค๋ฉด Seoul์„ ์„ ํƒํ•ด ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 2. ์„œ๋น„์Šค ์ง€์—ญ ๋ณ€๊ฒฝ

2.  IAM ๊ฐœ๋…

 IAM์€ Identity and Access Management์˜ ์•ฝ์ž๋กœ, ํŠน์ • ์‚ฌ์šฉ์ž๋‚˜ ๊ทธ๋ฃน์˜ ์„œ๋น„์Šค ํ˜น์€ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๊ด€๋ฆฌํ•˜๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. IAM ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๊ฐœ๋…์€ ์•„๋ž˜์˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•ด ์ฃผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

https://heytech.tistory.com/391?category=559266 

 

AWS IAM ์‚ฌ์šฉ์ž ๋ฐ ๋ฃจํŠธ ์‚ฌ์šฉ์ž ๊ฐœ๋… ์ •๋ฆฌ

๐Ÿ“š ๋ชฉ์ฐจ 1. ๋ฃจํŠธ ์‚ฌ์šฉ์ž์˜ ๊ฐœ๋… 2. IAM ์‚ฌ์šฉ์ž์˜ ๊ฐœ๋… ๐Ÿ‘จ‍๐Ÿ’ป ๋“ค์–ด๊ฐ€๋ฉฐ ์•„๋งˆ์กด์›น์„œ๋น„์Šค(AWS)์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด 2๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ๊ณ„์ •์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆผ 1 ์ฐธ๊ณ ). ๋ฃจํŠธ ๊ณ„์ • IAM ๊ณ„์ • ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” 2

heytech.tistory.com

3.  IAM Role ์ƒ์„ฑ

IAM Role(์—ญํ• )์€ ํŠน์ • AWS ์„œ๋น„์Šค์˜ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๋ณด์•ˆ ์ฆ๋ช…์„œ์ž…๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด, AWS ๋‚ด ์–ด๋–ค ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž๊ฒฉ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

3.1.  IAM ์„œ๋น„์Šค ์ ‘๊ทผ

AWS ๊ฒ€์ƒ‰์ฐฝ์— IAM์„ ์ž…๋ ฅํ•˜์—ฌ IAM ์ฝ˜์†”๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆผ 3).

๊ทธ๋ฆผ 3. IAM ์ฝ˜์†” ์ ‘๊ทผ

3.2.  ์—ญํ•  ์ƒ์„ฑ

์ขŒ์ธก์— "์—ญํ• " ํ…์ŠคํŠธ๋ฅผ ํด๋ฆญํ•˜์‹  ํ›„, ์šฐ์ธก์— "์—ญํ•  ๋งŒ๋“ค๊ธฐ" ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”(๊ทธ๋ฆผ 4).

๊ทธ๋ฆผ 4. IAM ์—ญํ•  ์ƒ์„ฑ

3.3.  Lamda ์„ ํƒ

์•„๋ž˜์˜ ๊ทธ๋ฆผ 5์ฒ˜๋Ÿผ, ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” Lambda๋ฅผ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ด๋ฏ€๋กœ Lambda๋ฅผ ์„ ํƒํ•œ ํ›„, ํ•˜๋‹จ์— "๋‹ค์Œ" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. AWS Lambda ๊ฐœ๋…์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์†Œ๊ฐœ๋Š” ์ด๊ณณ์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.

๊ทธ๋ฆผ 5. ๋žŒ๋‹ค ์„ ํƒ

3.4.  s3 ์•ก์„ธ์Šค ๊ถŒํ•œ ์ถ”๊ฐ€

๊ถŒํ•œ ์ •์ฑ… ๊ฒ€์ƒ‰์ฐฝ์— S3๋ฅผ ์ž…๋ ฅํ•œ ํ›„ ์•„๋ž˜์— AmazonS3FullAccess๋ฅผ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆผ 6). ์—…๋กœ๋“œํ•  ํŒŒ์ผ์„ ์ €์žฅํ•˜๋Š” ์„œ๋น„์Šค(S3)์— ๋Œ€ํ•œ ๋ชจ๋“  ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 6. S3 ์•ก์„ธ์Šค ๊ถŒํ•œ ์ถ”๊ฐ€

3.5.  CloudWatch ์•ก์„ธ์Šค ๊ถŒํ•œ ์ถ”๊ฐ€

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ๊ถŒํ•œ ์ •์ฑ… ๊ฒ€์ƒ‰์ฐฝ์— cloudwatchlog๋ฅผ ์ž…๋ ฅํ•˜๊ณ , ํ•˜๋‹จ์— CloudWatchLogFullAccess๋ฅผ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆผ 7). ์ด์ œ ๋งจ ํ•˜๋‹จ์— "๋‹ค์Œ" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 7. CloudWatch ์•ก์„ธ์Šค ๊ถŒํ•œ ์ถ”๊ฐ€

3.6.  ์—ญํ•  ์ด๋ฆ„ ์„ค์ •

์•„๋ž˜์˜ ๊ทธ๋ฆผ 8์ฒ˜๋Ÿผ, ์—ญํ• ์˜ ์ด๋ฆ„์„ ์ง๊ด€์ ์œผ๋กœ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ์ž‘์„ฑํ•˜์‹  ํ›„, ๋งจ ํ•˜๋‹จ์— "์—ญํ•  ์ƒ์„ฑ" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ 8. ์—ญํ•  ์ด๋ฆ„ ์„ค์ •

์ด์ œ IAM ์—ญํ•  ์ƒ์„ฑ์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” Lambda ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ ˆ์ฐจ๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ์‹œ๋ฆฌ์ฆˆ ํฌ์ŠคํŒ…

1.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (1) React ๊ธฐ๋ฐ˜ Frontend ๊ฐœ๋ฐœ
2.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (2) AWS IAM ์—ญํ•  ์ƒ์„ฑ
3.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (3) AWS Lambda ์ƒ์„ฑ
4.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (4) AWS S3 ์ƒ์„ฑ
5.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (5) AWS API Gateway ์ƒ์„ฑ
6.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (6) AWS Lambda ํ•จ์ˆ˜ ์ž‘์„ฑ
7.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (7) Axios ๊ธฐ๋ฐ˜ API Call
8.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (8) ํŒŒ์ผ ์—…๋กœ๋“œ ํ…Œ์ŠคํŠธ
9.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (9) AWS S3 ๊ธฐ๋ฐ˜ ์›น ํ˜ธ์ŠคํŒ…

ํฌ์ŠคํŒ… ๋‚ด์šฉ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ๋ณด์™„ํ•  ์ ์ด ์žˆ๋‹ค๋ฉด ์•„๋ž˜์— ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š”!

๊ทธ๋Ÿผ ์˜ค๋Š˜๋„ ๋ฉ‹์ง„ ํ•˜๋ฃจ ๋งŒ๋“œ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค :)

๊ณ ๋ง™์Šต๋‹ˆ๋‹ค๐Ÿ˜Š

728x90
๋ฐ˜์‘ํ˜•