์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

[์€ผ] S3์— ์—…๋กœ๋“œํ•œ ์‚ฌ์ง„ : ์ด๋ฏธ์ง€ ํ•ซ๋งํฌ ๋ฐฉ์ง€ ๊ณผ์ • (3)

๋ณธ๋ฌธ

728x90

์ž ์–ด๋””๊ฐ€ ๋ฌธ์ œ์ธ์ง€ ํ™•์ธํ•ด๋ณด์ž
 

๊ฐ€์„ค1. CloudFront-Policy, CloudFront-Signature, CloudFront-Key-Pair-Id ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋กœ์ง์ด ์ž˜๋ชป๋˜์—ˆ์„ ๊ฒƒ์ด๋‹ค.

 
โš ๏ธ ์ฟ ํ‚ค๋ฅผ ์„ค์ •ํ•˜์—ฌ Postman์œผ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๋ณด๋Š”๋ฐ ๋ˆ„๋ฝ๋œ ํ‚ค ์Œ ID ์ฟผ๋ฆฌ ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋˜๋Š” ์ฟ ํ‚ค ๊ฐ’  ์ด๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฆฌํ„ด๋˜์—ˆ๋‹ค 
 
๐Ÿงฐ ๊ฐœ์ธํ‚ค๋ฅผ ๋กœ๋“œํ•˜๋Š” ์ฝ”๋“œ์—์„œ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Bouncy Castle)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ PEMํŒŒ์ผ์„ ์ฝ์–ด์˜ค๋„๋ก ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์˜€๋‹ค 
๐Ÿงฐ ์ง์ ‘ ๊ตฌํ˜„ํ•˜์˜€์œผ๋‚˜ =์„ _๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋“ฑ ์š”๊ตฌ์‚ฌํ•ญ์ด ๋งŽ์•„ CloudFrontUtilities (getCookiesForCustomPolicy) ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค
 

์ฝ”๋“œ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค

 
API ๋ž˜ํผ๋Ÿฐ์Šค : CloudFrontUtilites
https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/cloudfront/CloudFrontUtilities.html#getCookiesForCustomPolicy(java.util.function.Consumer)

 

CloudFrontUtilities (AWS SDK for Java - 2.30.16)

AWS SDK for Java API Reference - 2.30.16

sdk.amazonaws.com

 
โš ๏ธ์ด๋žฌ์Œ์—๋„ Postman์œผ๋กœ ์š”์ฒญ ๋ณด๋ƒˆ์„ ๋•Œ Access Denied ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”๋‹ค 
 

๊ฐ€์„ค2. CloudFront-Policy, CloudFront-Signature, CloudFront-Key-Pair-Id ์ฟ ํ‚ค๊ฐ€ CloudFront๋กœ ์ด๋ฏธ์ง€ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ๊ฐ™์ด ๋ณด๋‚ด์ง€์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค.

 
ํ˜„์žฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ์„ ํ•˜๋ฉด, SignedCookie ๊ฐ€ ๋ฐœ๊ธ‰๋˜์–ด Cookie์— ์ €์žฅ๋œ๋‹ค
โš ๏ธ ํด๋ผ์ด์–ธํŠธ๊ฐ€ CloudFront๋กœ ์ด๋ฏธ์ง€ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ์ด๋ฅผ ๊ฐ™์ด ๋ณด๋‚ด์•ผ ํ•˜๋Š”๋ฐ ์•ˆ ๋ณด๋‚ด๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๋‹ค 
 
1) ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ ํ•œ ํ›„์— set-cookie๊ฐ€ ๋˜๋Š”์ง€ ํ™•์ธํ•˜์˜€๋‹ค 
set-cookie๊ฐ€ ์•ˆ๋˜๊ณ  ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ•˜์˜€๊ณ , Cookie ์ •์ฑ…์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ–ˆ๋‹ค 
 
์•„๋ž˜ ๊ฐœ๋… ๊ธ€ ์ฐธ๊ณ )
https://eundms.tistory.com/entry/CORS-%EC%BF%A0%ED%82%A4-%EC%84%A4%EC%A0%95-SameSite-%EC%A0%95%EC%B1%85-Path%EC%99%80-Domain

 

์ฟ ํ‚ค, CORS, Referer, CSP ์ •์ฑ… : SameSite, Path, Domain

๋ณธ๋ฌธ ์ œ๋ชฉ ์ฟ ํ‚ค, CORS, Referer, CSP ์ •์ฑ… : SameSite, Path, Domain by :๋ถ€์…”์ ธ๋ฒ„๋ฆฐ๊ฐœ๋ฐœ์ž 2025. 2. 11. 17:12 in ๋ณดํ˜ธ๊ธ€

eundms.tistory.com

 
๐Ÿงฐ ๊ทธ๋ฆฌ๊ณ , ์•„๋ž˜์™€ ๊ฐ™์ด SameSite ์„ค์ •์„ ์ถ”๊ฐ€ํ•˜์˜€๋‹ค 

String cookieWithSecurity = cookie + "; SameSite=None; Secure; HttpOnly; Path=/";

 
 
โœ…๊ทธ๊ฒฐ๊ณผ ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ set-cookie ๊ฐ€ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๋‹ค
 
โš ๏ธ์ด์ œ ํ•ด๋‹น ์ฟ ํ‚ค๋ฅผ CloudFront ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ๋ณด๋‚ด๋Š”์ง€ ํ™•์ธํ•ด๋ดค๋”๋‹ˆ ์•ˆ๋ณด๋‚ด์ง€๊ณ  ์žˆ์—ˆ๋‹ค
 
 
๐Ÿงฐ  next/image๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— custom-loader.js ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ 
CloudFront ๋„๋ฉ”์ธ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์„ Next.js์˜ API ์—”๋“œํฌ์ธํŠธ๋กœ ํ”„๋ก์‹œํ•˜์—ฌ ์ „๋‹ฌํ•˜์˜€๋‹ค.
๊ทธ ํ›„, Next.js์˜ API ์—”๋“œํฌ์ธํŠธ์—์„œ๋Š” ํ•„์š”ํ•œ ์ฟ ํ‚ค๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ CloudFront๋กœ ์š”์ฒญํ•˜์˜€๋‹ค.
 
โœ… ๊ทธ๋ ‡๊ฒŒ ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ๋Š” ์ ์šฉ์ด ๋จ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค 
 
 
โš ๏ธ ํ•˜์ง€๋งŒ, ๋ฐฐํฌ ํ›„ ํ™•์ธํ•ด๋ณด๋‹ˆ set-cookie๊ฐ€ ์•ˆ๋˜๊ณ  ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค 
 
Domain ์†์„ฑ์„ ์ ์ง€ ์•Š์œผ๋ฉด ์ž๋™์œผ๋กœ set-cookie๋ฅผ ์ง„ํ–‰ํ•œ ๋„๋ฉ”์ธ์œผ๋กœ ์„ค์ •์ด ๋˜๋Š” ๊ฒƒ ๊ฐ™์•˜๋‹ค 

https://developer.mozilla.org/en-US/docs/Web/Security/Types_of_attacks#session_fixation

 

Types of attacks - Security on the web | MDN

This article describes various types of security attacks and techniques to mitigate them.

developer.mozilla.org


 
๋กœ์ปฌ์—์„œ๋Š” ์„œ๋ฒ„๋ž‘ ํด๋ผ์ด์–ธํŠธ์˜ ๋„๋ฉ”์ธ์ด ๋ชจ๋‘ localhost์ด๋ฏ€๋กœ ๊ดœ์ฐฎ์ง€๋งŒ, 
๋ฐฐํฌ ํ™˜๊ฒฝ์—์„œ๋Š” ์„œ๋ฒ„(api.๋„๋ฉ”์ธ), ํด๋ผ์ด์–ธํŠธ(๋„๋ฉ”์ธ) ์ด๋ฏ€๋กœ ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๊ฐ€ ์—†์—ˆ๋‹ค 
 
๐Ÿงฐ   ๋”ฐ๋ผ์„œ, ์ฟ ํ‚ค Domain์„ .๋„๋ฉ”์ธ์œผ๋กœ ์„ค์ •ํ•˜์˜€๋‹ค 

String cookieWithSecurity = cookie + "; SameSite=None; Secure; HttpOnly; Domain=.๋„๋ฉ”์ธ; Path=/";


โœ… ๋กœ์ปฌ, ๋ฐฐํฌ ํ™˜๊ฒฝ์—์„œ ๋ชจ๋‘ ํ™•์ธ์ด ๋˜์—ˆ๋‹ค 
 
 

ํ—˜๋‚œํ•œ ๊ณผ์ •์ด์—ˆ๋‹ค




 
 
 


 
AWS ๋ฌธ์ œ ํ•ด๊ฒฐ ํŒ : CloudFront์˜ ์„œ๋ช…๋œ URL ๋˜๋Š” ์„œ๋ช…๋œ ์ฟ ํ‚ค์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?
https://repost.aws/ko/knowledge-center/cloudfront-troubleshoot-signed-url-cookies

 

CloudFront์˜ ์„œ๋ช…๋œ URL ๋˜๋Š” ์ฟ ํ‚ค ๋ฌธ์ œ ํ•ด๊ฒฐ

Amazon CloudFront์™€ ์„œ๋ช…๋œ URL ๋˜๋Š” ์„œ๋ช…๋œ ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋ผ์ด๋น— ์ฝ˜ํ…์ธ ๋ฅผ ๋ณดํ˜ธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 403 ์•ก์„ธ์Šค ๊ฑฐ๋ถ€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

repost.aws

 
 
 

728x90

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ