728x90
๐จ ๋ฐ์ํ ๋ฌธ์ ์ ์ํฉ
์ด๋ฏธ์ง๋ฅผ Getํด์ ์ฝ์ด์ฌ ๋ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๋ฐ์
Request URL:
<https://hm-s3.s3.ap-northeast-2.amazonaws.com/uploads/886e115c-d25f-436e-bfa0-e73dd42b0858_%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202025-02>
Request Method:
GET
Status Code:
403 Forbidden
Referrer Policy:
strict-origin-when-cross-origin
content-type:
application/xml
date:
Sat, 15 Feb 2025 13:08:43 GMT
server:
AmazonS3
transfer-encoding:
chunked
x-amz-id-2:
BIw5J4DrAOJaj2DyehR/S20GPFi1PLt2rp/T35xPKemOTLoBETud4npSoVKjachfdbuMu3isJwBs8K67jo5ZJtk0IBCNXXwz
x-amz-request-id:
BS7P27Z9DFXKKH4H
accept:
image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8
accept-encoding:
gzip, deflate, br, zstd
accept-language:
ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
connection:
keep-alive
host:
hm-s3.s3.ap-northeast-2.amazonaws.com
referer:
sec-ch-ua:
"Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"
sec-ch-ua-mobile:
?1
sec-ch-ua-platform:
"Android"
sec-fetch-dest:
image
sec-fetch-mode:
no-cors
sec-fetch-site:
cross-site
user-agent:
Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36
๐ค ๋ฌธ์ ์ ์์ธ ํ์ ํ๊ธฐ
- S3 ๋ฒํท ๋ฐ ๊ฐ์ฒด ๊ถํ ๋ฌธ์
- ๊ธฐ๋ณธ์ ์ผ๋ก S3 ๊ฐ์ฒด๋ ๋น๊ณต๊ฐ์ด๋ฉฐ, s3:GetObject ๊ถํ์ด ์์ผ๋ฉด 403 Forbidden ์ค๋ฅ ๋ฐ์.
- ๊ฐ๋ณ ํ์ผ์ ํผ๋ธ๋ฆญ ์ฝ๊ธฐ ๊ถํ์ด ์์ ์๋ ์์.
- CORS ์ ์ฑ
๋ฌธ์
- ํ๋ก ํธ์๋ ๋๋ฉ์ธ์ด S3์ CORS ์ค์ ์ ํ์ฉ๋์ง ์์ผ๋ฉด ์์ฒญ์ด ์ฐจ๋จ๋ ์ ์์.
- URL ์ธ์ฝ๋ฉ ๋ฌธ์
- ํ์ผ๋ช ์ ํ๊ธ ๋ฑ ํน์๋ฌธ์๊ฐ ํฌํจ๋์๊ณ , ์ธ์ฝ๋ฉ์ด ์ ๋๋ก ๋์ง ์์ผ๋ฉด ์ ๊ทผ ๋ถ๊ฐ.
- Signed URL ํ์ ์ฌ๋ถ
- ํผ๋ธ๋ฆญ ์ ๊ทผ์ด ์ ํ๋ ๊ฒฝ์ฐ, ์๋ฒ์์ Signed URL์ ์์ฑํด์ผ ํ ์๋ ์์.
- ์๋ชป๋ URL ์์ฒญ ๊ฐ๋ฅ์ฑ
- ํ๋ก ํธ์์ ์์ฒญํ๋ URL์ด ์ฌ๋ฐ๋ฅธ์ง ํ์ธ ํ์.
๐๐ปโ๏ธ ์๋ํด๋ณธ ๋ฐฉ๋ฒ
CORS ์ค์ ์ถ๊ฐ
CORS ๋ฌธ์ ๋ก ์ธํด S3์์ ๋ฆฌ์์ค๊ฐ ์ฐจ๋จ๋ ์๋ ์๋ค
์๋ CORS ์ ์ฑ ์ ์ ์ฉํ๋ฉด ํด๊ฒฐ ๊ฐ๋ฅํ๋ค.
๐น CORS ์ค์ ์ถ๊ฐ ๋ฐฉ๋ฒ
- AWS ์ฝ์ → S3 ์ ์
- hm-s3 ๋ฒํท ์ ํ
- [๊ถํ(Permissions)] → [CORS ์ค์ ] ์น์ ์ผ๋ก ์ด๋
- ์๋์ CORS ์ ์ฑ ์ถ๊ฐ ํ ์ ์ฅ
โ ๊ฒฐ๋ก
- โ ๋ฒํท ์ ์ฑ ์์ "s3:GetObject"๋ง ํ์ฉํ๋๋ก ์์
- โ ๊ฐ๋ณ ๊ฐ์ฒด(ํ์ผ)์ ํผ๋ธ๋ฆญ ์ฝ๊ธฐ ๊ถํ ๋ถ์ฌ
- โ ํ๋ก ํธ์๋์์ ์ฌ๋ฐ๋ฅธ URL์ ์์ฒญํ๋์ง ํ์ธ
- โ S3 CORS ์ค์ ์ถ๊ฐํ์ฌ ํ๋ก ํธ์๋ ์ ๊ทผ ํ์ฉ
cors ์ค์ ์ค์ํจ….
์ฐธ๊ณ ํ ๋ธ๋ก๊ทธ
๐ ์ ๋ช ๋์ CORS ๊ฐ๋ & ํด๊ฒฐ๋ฒ - ์ ๋ฆฌ ๋ํ์ ๐
๐ ์ ๋ช ๋์ CORS ๊ฐ๋ & ํด๊ฒฐ๋ฒ - ์ ๋ฆฌ ๋ํ์ ๐
์ ๋ช ๋์ CORS ์๋ฌ ๋ฉ์ธ์ง ์น ๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด ๋ฐ๋์ ๋ง์ฃผ์น๋ ๋ฉ๋ฉ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ๋ก CORS ์ด๋ค. ์น ๊ฐ๋ฐ์ ์ ์ ์ ๊ณ ์์ด๋ผ๊ณ ํ ์ ๋๋ก, CORS๋ ๋๊ตฌ๋ ํ ๋ฒ ์ ๋๋ ๊ฒช๊ฒ ๋๋ค๊ณ ํด๋ ๊ณผ์ธ์ด
inpa.tistory.com
728x90
'{Troubleshooting}' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํธ๋ฌ๋ธ์ํ ] TMAP 204 NO_CONTENT ์ค๋ฅ (0) | 2025.09.29 |
---|---|
[ํธ๋ฌ๋ธ์ํ ] Git merge conflict ์ฒ๋ฆฌ ๋ฐฉ๋ฒ (3) | 2025.07.28 |
[ํธ๋ฌ๋ธ ์ํ ] AWS SDK์ Multer-S3 ํธํ์ฑ ๋ฌธ์ ๋ฐ์ (0) | 2025.03.03 |
[ํธ๋ฌ๋ธ ์ํ ] Prisma mode: "insensitive" ์ต์ ์ MySQL ๋ฏธ์ง์ ๋ฌธ์ (0) | 2025.03.03 |