CloudFront Signed URL & Cookies
- CloudFront ๋ถ์ฐ์ ๋น๊ณต๊ฐ๋ก ๋ง๋ค๊ธฐ ์ํด์๋ ์ธ๊ณ ๊ฐ์ง์ ์ฌ๋๋ค์๊ฒ ํ๋ฆฌ๋ฏธ์ ์ ๋ฃ ์ฝํ ์ธ ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ฃผ์ด์ผ ํ๋ค.
- ๋๊ฐ, ์ด๋ค CloudFront ๋ถ์ฐ์ ์ก์ธ์คํ๋์ง ์๊ธฐ ์ํด Signed URL & Cookies๋ฅผ ์ฌ์ฉํ๋ค.
- URL๊ณผ Cookies๋ฅผ ์์ฑํ ๋๋ ์ ์ฑ ์ ์ฐ๊ฒฐํ๋ค.
- ํด๋น URL & Cookies ๊ฐ ์ธ์ ๋ง๋ฃ๋๋์ง ์ค์ ํ๋ค.
- ์ด ๋ฐ์ดํฐ์ ์ก์ธ์คํ ์ ์๋ IP ๋ฒ์๋ฅผ ์ง์ ํ๋ค. (ํด๋ผ์ด์ธํธ์ ๋์IP๋ฅผ ์ ๊ฒฝ์ฐ ์ฌ์ฉ ๊ฐ๋ฅ)
- ์ด๋ค AWS ๊ณ์ ์ด ์๋ช ๋ URL ์ ์์ฑํ ์ ์๋์ง๋ฅผ ์๋ฏธํ๋ ์ ๋ขฐํ ์ ์๋ ์๋ช ์๋ฅผ ์ง์ ํ๋ค.
- URL ์ ์ผ๋ง๋ ์ค๋ ์ ํจํด์ผ ํ๋๊ฐ?
- ์ํ๋ ์์ ๊ณผ ๊ฐ์ ์ฝํ ์ธ ๋ฅผ ๊ณต์ ํ ๋๋ ๋ช ๋ถ ์ ๋๋ก ์งง์๋ ๋ ๊ฒ
- ์ฌ์ฉ์๊ฐ ์ฅ๊ธฐ๊ฐ ์ก์ธ์คํ ์ ์์ด์ผ ํ๋ ๋น๊ณต๊ฐ ์ปจํ ์ธ ์ ๊ฒฝ์ฐ์๋ URL ์ด๋ Cookies๊ฐ ์ ๋ ๊ฐ ์ง์๋๊ฒ ํ ์๋ ์๋ค.
- URL vs Cookies ์ฐจ์ด
- Signed URL
- ๊ฐ๋ณ ํ์ผ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ค๋ค.
- ํ์ผ ๋ณ๋ก ํ๋์ URL์ด ์๋ค.
- ํ์ผ์ด 100๊ฐ๋ฉด 100๊ฐ์ URL์ด ์๋ค.
- Signed Cookies
- ๋ค์์ ํ์ผ์ ์ก์ธ์ค๋ฅผ ์ฃผ๊ณ ํด๋น ์ฟ ํค๋ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค
- ์ฆ, ๋ค์์ ํ์ผ์ ์๋ช ๋ ์ฟ ํค๋ ํ๋์ธ ๊ฒ
- Signed URL
์ํฉ์ ๋ฐ๋ผ ์ ์ ํ URL or Cookies ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋๋ค.
01. CloudFront Signed URL Diagram
CloudFront Distribute ๊ฐ ์๊ณ , ์ฌ๋ฌ ๊ฐ์ EdgeLocation์ด ์๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ฅผ ๋ค์ด ๋ณด์์ ์ํด ์ค๋ฆฌ์ง์ก์ธ์ค์ ๋ถ(OAI)์ ์ด์ฉํด S3 Bucket์ ์ก์ธ์คํ๋ค๊ณ ํ๋ค. ์ฆ, ์ค์ง CloudFront๋ฅผ ์ด์ฉํด์๋ง S3 ๋ฒํท ๋ด์ ๊ฐ์ฒด์ ์ก์ธ์คํ ์ ์๋ ๊ฒ์ด๋ค. ํ์ง๋ง ์ฌ์ ํ ํด๋ผ์ฐ๋ ํ๋ก ํธ๋ฅผ ํตํด ์ฌ๋๋ค์๊ฒ ๊ฐ์ฒด์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๊ณ ์ ํ๋ค.
์ฆ,
- ํด๋ผ์ด์ธํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ํ๊ฐ ๋ฐ ์น์ธ์์ฒญ์ ๋ณด๋ผ ๊ฒ
- ์ ํ๋ฆฌ์ผ์ด์ ์ AWS SDK ๋ฅผ ์ฌ์ฉํด CloudFront๋ก๋ถํฐ ์ง์ Signed URL์ ์์ฑํ๋ค.
- ์๋ช ๋ URL์ Client ์๊ฒ ๋ฐํ๋ ๊ฒ์ด๋ค.
- Clients๋ ์ด Signed URL ์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ์ ํ์ผ ๊ฐ์ฒด ๋ฑ CloudFrontd์์ ์ํ๋ ๊ฒ์ ์ง์ ์ป์ ์ ์๊ฒ๋จ
- ์๋ช ๋ URL ๋ฟ ์๋๋ผ Signed Cookies๋ ๋ฐฉ์์ ๋์ผํ๋ค.
02. CloudFront Signed URL vs S3 Pre-Signed URL
- CloudFront Signed URL
- S3 Pre-Signed URL
์ 2๊ฐ์ ์ฐจ์ด์ ์ ๋ํด ์์๋ณด์
CloudFront Signed URL ๊ณผ S3 Pre-Signed URL ์ค ์ด๋ ๊ฒ์ ์ฌ์ฉํด์ผ ํ๋๊ฐ?
-
CloudFront Signed URL
-
์์ 2๊ฐ๋ ์ฉ๋์์ฒด๊ฐ ๋ค๋ฅด๋ค.
-
CloudFront์ Signed URL์ Origin์ ์๊ด ์์ด ๊ฒฝ๋ก์ ๋ํ ์ก์ธ์ค๋ฅผ ํ์ฉํ๊ธฐ ๋๋ฌธ์ URL ์ S3 Origin๋ฟ๋ง ์๋๋ผ ์ํ์๋ ๋ชจ๋ HTTP ๋ฐฑ์๋ ์ค๋ฆฌ์ง์์ ์๋ํ๋ค.
-
๊ณ์ ๋ด ํค ํ์ด์ด๊ธฐ ๋๋ฌธ์ root๋ง ๊ด๋ฆฌํ ์ ์๊ณ IP, ๊ฒฝ๋ก, ๋ ์ง, ๋ง๋ฃ ๋ฑ์ผ๋ก ํํฐ๋ง ๊ฐ๋ฅํ๋ค.
-
CloudFront์ ์๋ ๋ชจ๋ ์บ์ฑ ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์๋ค.
-
-
S3 Pre-Signed URL
- URL ์ ๋ฏธ๋ฆฌ ์๋ช ํ ์ฌ๋์ผ๋ก์ ์์ฒญ์ ๋ฐํํ๋ค.
- ๋๋ง์ IAM ์์น์ผ๋ก URL์ ์๋ช
ํ๊ณ ์๋ช
์ ์ํด ์ IAM ํค๋ฅผ ์ฌ์ฉํ๊ฒ ํ๋ค.
- ํด๋น URL์ ๊ฐ์ง์ฌ๋์ ๋์ ๊ฐ์ ๊ถํ์ ๊ฐ์ง๊ฒ ๋๋ค.
- ์๋ช ์ด ์ ํ์ ์ด๋ค. ์ด Pre-Signed URL ์ ์ฌ์ฉํด ํด๋ผ์ด์ธํธ๊ฐ ์ง์ S3 Bucket์ ์ก์ธ์ค ๊ฐ๋ฅ
๋ง์ฝ ์ฌ๋๋ค์ด ์ฐ๋ฆฌ์ CloudFront๋ถ์ฐ์ ์ก์ธ์คํ๊ธธ ์ํ๊ณ , S3 ์์ ์๋ ๊ฒฝ์ฐ๋ผ๋ฉด ์๋ํ ๋๋ก S3 ๋ฒํท์ ์ก์ธ์คํ ์ ์์ผ๋ฏ๋ก Signed URL ์ ์ฌ์ฉํด์ผ ํ๋ค.
์ด๋ฅผ OAI ๋ก ์ ํํ๋ ๋ฒํท ์ ์ฑ ๋๋ฌธ์ด๋ค.
ํ์ง๋ง CloudFront๋ฅผ ์ฌ์ฉํ์ง์๊ณ ์ฌ์ฉ์๋ค์ด ์ง์ S3๋ฒํท์ผ๋ก ์ก์ธ์คํด ํ์ผ์ ์ฌ์ฉํ๊ธธ ์ํ์๋ฉด Pre-Signed URL์ด ๋ ์ ํฉํ ๊ฒ์ด๋ค.
๋๊ธ๋จ๊ธฐ๊ธฐ