Post

[Cloud] ACM(AWS Certificate Manager)์˜ ์ดํ•ด

๐Ÿ“Œ ๋“ค์–ด๊ฐ€๋ฉฐ

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” AWS์˜ ACM(AWS Certificate Manager)์„ ์ •๋ฆฌํ•œ๋‹ค. SSL/TLS ์ธ์ฆ์„œ๋ฅผ ๋ฌด๋ฃŒ๋กœ ๋ฐœ๊ธ‰ยท๊ด€๋ฆฌยท์ž๋™ ๊ฐฑ์‹ ํ•˜๋Š” ์„œ๋น„์Šค๋กœ, HTTP์™€ HTTPS์˜ ์ฐจ์ด๋ถ€ํ„ฐ SSL ํ†ต์‹  ๊ณผ์ •, ๊ทธ๋ฆฌ๊ณ  ALB์— ์ธ์ฆ์„œ๋ฅผ ๋ถ™์—ฌ HTTPS๋ฅผ ์ ์šฉํ•˜๋Š” Lab๊นŒ์ง€ ๋‹ค๋ฃฌ๋‹ค.

ACM์ด๋ž€? SSL/TLS ์ธ์ฆ์„œ๋ฅผ ์†์‰ฝ๊ฒŒ ํ”„๋กœ๋น„์ €๋‹ยท๊ด€๋ฆฌยท๋ฐฐํฌํ•˜๋Š” ์„œ๋น„์Šค. ๋ฌด๋ฃŒ๋กœ ๊ณต์ธ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•˜๋ฉฐ, ELBยทCloudFrontยทAPI Gateway ๋“ฑ AWS ์„œ๋น„์Šค์™€ ํ†ตํ•ฉํ•ด HTTPS๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์ž๋™ ๊ฐฑ์‹ ๊นŒ์ง€ ์ฒ˜๋ฆฌํ•œ๋‹ค.


1. HTTP vs HTTPS

SSL(Secure Socket Layer)์€ ์ธํ„ฐ๋„ท์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ ์•”ํ˜ธํ™” ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์ด๋‹ค. HTTP์— SSL์„ ๋”ํ•œ ๊ฒƒ์ด HTTPS๋‹ค.

SSL ํ†ต์‹ 

๊ธฐ๋ŠฅHTTPHTTPS(HTTP+SSL)
์•”ํ˜ธํ™”ํ‰๋ฌธ(Plain text)์ธ์ฆ์„œ ๊ธฐ๋ฐ˜ ์•”ํ˜ธํ™”
PortTCP 80TCP 443
์ ‘๋‘์‚ฌhttp://https://
๋ณด์•ˆ๋ฏผ๊ฐ ์ •๋ณด ๋…ธ์ถœยท๋ณ€์กฐ ์œ„ํ—˜์‚ฌ์ดํŠธ ์‹ ๋ขฐ ๊ฒ€์ฆ + ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ

HTTP/HTTPS ๋น„๊ต


2. SSL ํ†ต์‹  ๊ณผ์ •

ํ•ต์‹ฌ์€ ๊ณต๊ฐœํ‚ค๋กœ ์„ธ์…˜ํ‚ค๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๊ตํ™˜ํ•œ ๋’ค, ์‹ค์ œ ํ†ต์‹ ์€ ๋น ๋ฅธ ๋Œ€์นญํ‚ค๋กœ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

sequenceDiagram
    participant C as ํด๋ผ์ด์–ธํŠธ
    participant S as ์„œ๋ฒ„
    C->>S: โ‘  ์ ‘์† ์š”์ฒญ
    S->>C: โ‘ก ์„œ๋ฒ„ ์ธ์ฆ์„œ(๊ณต๊ฐœํ‚ค) ์ „์†ก
    C->>C: โ‘ข ์ธ์ฆ์„œ ๊ฒ€์ฆ โ†’ ๊ณต๊ฐœํ‚ค ์ถ”์ถœ
    C->>S: โ‘ฃ ์„ธ์…˜ํ‚ค๋ฅผ ์„œ๋ฒ„ ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•ด ์ „์†ก
    S->>S: โ‘ค ๊ฐœ์ธํ‚ค๋กœ ์„ธ์…˜ํ‚ค ๋ณตํ˜ธํ™”
    C-->>S: โ‘ฅโ‘ฆ ์„ธ์…˜ํ‚ค(๋Œ€์นญํ‚ค)๋กœ ์•”ํ˜ธํ™” ํ†ต์‹ 

SSL ํ†ต์‹  ๊ณผ์ •

์ถœ์ฒ˜: crocus.co.kr/1387

๐Ÿ’ก ์™œ ๊ณต๊ฐœํ‚ค โ†’ ๋Œ€์นญํ‚ค๋กœ ๋ฐ”๊พธ๋‚˜? ๊ณต๊ฐœํ‚ค(๋น„๋Œ€์นญ) ์•”ํ˜ธํ™”๋Š” ์•ˆ์ „ํ•˜์ง€๋งŒ ๋А๋ฆฌ๋‹ค. ๊ทธ๋ž˜์„œ ์ฒ˜์Œ ์„ธ์…˜ํ‚ค๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ๋งŒ ๊ณต๊ฐœํ‚ค๋ฅผ ์“ฐ๊ณ , ์‹ค์ œ ๋ฐ์ดํ„ฐ ํ†ต์‹ ์€ ๋น ๋ฅธ ๋Œ€์นญํ‚ค(์„ธ์…˜ํ‚ค)๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์•ˆ์ „ํ•จ๊ณผ ์†๋„๋ฅผ ๋ชจ๋‘ ์žก๋Š” ๋ฐฉ์‹์ด๋‹ค.


3. ACM์„ ์“ฐ๋Š” ์ด์œ  & ์„ค์ • ์ˆœ์„œ

์ด์œ ์„ค๋ช…
๊ฐ„์†Œํ™”๋œ ๊ด€๋ฆฌ์ธ์ฆ์„œ ์ƒ์„ฑยท์ €์žฅยท๊ด€๋ฆฌ์˜ ๋ณต์žก์„ฑ ์ฒ˜๋ฆฌ
์›ํ™œํ•œ ํ†ตํ•ฉELBยทCloudFrontยทAPI Gateway์™€ ํ†ตํ•ฉ
์ž๋™ ๊ฐฑ์‹ ์ˆ˜๋™ ์ถ”์ ยท๊ฐฑ์‹  ๋ถˆํ•„์š”
๋น„์šฉ ํšจ์œจ์ ๊ฒฉ AWS ์„œ๋น„์Šค์šฉ์€ ์ถ”๊ฐ€ ๋น„์šฉ ์—†์Œ

์„ค์ • ์ˆœ์„œ: โ‘ ์ธ์ฆ์„œ ์š”์ฒญ โ†’ โ‘ก์œ ํšจ์„ฑ ๊ฒ€์‚ฌ(DNS ๊ถŒ์žฅ) โ†’ โ‘ขAWS ์„œ๋น„์Šค์— ๊ตฌ์„ฑ(ALB ๋“ฑ) โ†’ โ‘ฃ๋ชจ๋‹ˆํ„ฐ๋ง โ†’ โ‘ค์ž๋™ ๊ฐฑ์‹ .

๐Ÿ’ก ๊ฒ€์ฆ์€ DNS ๊ฒ€์ฆ์„ ๊ถŒ์žฅํ•œ๋‹ค. Route53 ๋„๋ฉ”์ธ์— CNAME ๋ ˆ์ฝ”๋“œ๋ฅผ ๋”ํ•ด ๊ฒ€์ฆํ•˜๋ฏ€๋กœ ๊ฐ„๋‹จํ•˜๊ณ , ๋ ˆ์ฝ”๋“œ๋ฅผ ๋‘๋ฉด ๊ฐฑ์‹  ์‹œ ์ž๋™ ์žฌ๊ฒ€์ฆ๋œ๋‹ค.


4. Lab โ€” ACM ๋ฐœ๊ธ‰ & ALB์— HTTPS ์ ์šฉ

โ‘  ์ธ์ฆ์„œ ์ƒ์„ฑ (์™€์ผ๋“œ์นด๋“œ)

  • ๋„๋ฉ”์ธ: weplat.store + ๋‹ค๋ฅธ ์ด๋ฆ„ *.weplat.store
  • ๊ฒ€์ฆ: DNS ๊ฒ€์ฆ(๊ถŒ์žฅ), ํ‚ค ์•Œ๊ณ ๋ฆฌ์ฆ˜ RSA 2048
  • ์ธ์ฆ์„œ ์„ ํƒ โ†’ Route53์—์„œ ๋ ˆ์ฝ”๋“œ ์ƒ์„ฑ์œผ๋กœ CNAME ์ž๋™ ๋“ฑ๋ก โ†’ ์ƒํƒœ๊ฐ€ ๋ฐœ๊ธ‰๋จ์ด ๋  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐ

๋ ˆ์ฝ”๋“œ ์ƒ์„ฑ

CNAME ๋“ฑ๋ก

CNAME ํ™•์ธ

๋ฐœ๊ธ‰๋จ ๋Œ€๊ธฐ

๋ฐœ๊ธ‰ ์™„๋ฃŒ

โ‘ก ALB์— ์ธ์ฆ์„œ ์—ฐ๊ฒฐ (HTTPS ๋ฆฌ์Šค๋„ˆ)

web-alb์— HTTPS(443) ๋ฆฌ์Šค๋„ˆ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ธ์ฆ์„œ๋ฅผ ๋ถ™์ธ๋‹ค.

ํ•ญ๋ชฉ๊ฐ’
ํ”„๋กœํ† ์ฝœ/ํฌํŠธHTTPS / 443
๋ผ์šฐํŒ… ์•ก์…˜๋Œ€์ƒ ๊ทธ๋ฃน์œผ๋กœ ์ „๋‹ฌ(weplat-ap2-web-alb-tg)
๋ณด์•ˆ ์ •์ฑ…ELBSecurityPolicy-TLS13-1-2-2021-06(๊ถŒ์žฅ)
์ธ์ฆ์„œ ์†Œ์ŠคACM์—์„œ โ†’ weplat.store

โ‘ข HTTP โ†’ HTTPS ๋ฆฌ๋””๋ ‰์…˜

HTTP:80 ๋ฆฌ์Šค๋„ˆ๋ฅผ ํŽธ์ง‘ํ•ด HTTPS(443)๋กœ ๋ฆฌ๋””๋ ‰์…˜๋˜๊ฒŒ ํ•œ๋‹ค. ์ด๋Ÿฌ๋ฉด http://๋กœ ๋“ค์–ด์™€๋„ ์ž๋™์œผ๋กœ https://๋กœ ์ „ํ™˜๋œ๋‹ค.

HTTPS ์ ์šฉ ํ™•์ธ

โš ๏ธ ์‹ค์Šต ํ›„ ๋ฆฌ์†Œ์Šค ์ •๋ฆฌ โ€” Route53 ๋ ˆ์ฝ”๋“œ โ†’ ALB โ†’ ACM โ†’ EC2 โ†’ VPC ์ˆœ์œผ๋กœ ์‚ญ์ œํ•œ๋‹ค. ALBยทNAT ๋“ฑ์€ ๊ณผ๊ธˆ ๋Œ€์ƒ์ด๋ฏ€๋กœ ๋ฐ˜๋“œ์‹œ ์ •๋ฆฌํ•˜์ž.


๐Ÿ“ ์ •๋ฆฌ

1
2
3
4
5
ACM
โ”œโ”€ ๊ฐœ๋…   ๋ฌด๋ฃŒ SSL/TLS ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ยท๊ด€๋ฆฌยท์ž๋™ ๊ฐฑ์‹ 
โ”œโ”€ SSL    ๊ณต๊ฐœํ‚ค๋กœ ์„ธ์…˜ํ‚ค ๊ตํ™˜ โ†’ ๋Œ€์นญํ‚ค๋กœ ํ†ต์‹ 
โ”œโ”€ ๊ฒ€์ฆ   DNS ๊ฒ€์ฆ(CNAME) ๊ถŒ์žฅ โ†’ ์ž๋™ ์žฌ๊ฒ€์ฆ
โ””โ”€ ์ ์šฉ   ALB HTTPS(443) ๋ฆฌ์Šค๋„ˆ + HTTPโ†’HTTPS ๋ฆฌ๋””๋ ‰์…˜
๊ฐœ๋…ํ•œ ์ค„ ์ •์˜
ACM๋ฌด๋ฃŒ ๊ด€๋ฆฌํ˜• SSL ์ธ์ฆ์„œ
DNS ๊ฒ€์ฆCNAME์œผ๋กœ ์†Œ์œ ๊ถŒ ์ฆ๋ช…
HTTPS ๋ฆฌ๋””๋ ‰์…˜HTTP ์ ‘์†์„ HTTPS๋กœ ๊ฐ•์ œ

ACM์˜ ํ•ต์‹ฌ์€ ๋ฌด๋ฃŒ ์ธ์ฆ์„œ๋ฅผ ALB์— ๋ถ™์—ฌ HTTPS๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ , HTTPโ†’HTTPS ๋ฆฌ๋””๋ ‰์…˜์œผ๋กœ ๋ชจ๋“  ์ ‘์†์„ ์•”ํ˜ธํ™”ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. DNS ๊ฒ€์ฆ์œผ๋กœ ๋ฐ›์•„๋‘๋ฉด ๊ฐฑ์‹ ๋„ ์ž๋™์ด๋ผ ์šด์˜ ๋ถ€๋‹ด์ด ์—†๋‹ค.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.