AWS

S3 ๋ฒ„ํ‚ท์œผ๋กœ ์›น์‚ฌ์ดํŠธ ๋ฐฐํฌํ•˜๋Š” ๋ฒ• (์ •์  ํ˜ธ์ŠคํŒ… ํ•˜๋Š” ๋ฒ•)

parkjiu 2024. 1. 17. 16:49

ํ”„๋กœ์ ํŠธ๋กœ ๊ฒŒ์ž„์„ ๋งŒ๋“  ๋’ค AWS๋กœ ๋ฐฐํฌํ•˜๋Š” ๋ฒ•์„ ์„ ํƒํ•˜๊ณ  ๋ฐฐํฌํ•˜์˜€๋‹ค. 

ํ”„๋กœ์ ํŠธ๋กœ ๋งŒ๋“  ๊ฒŒ์ž„ ํ™”๋ฉด์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

 

๋จผ์ € AWS ์ฝ˜์†” ์ฐฝ์—์„œ ๋กœ๊ทธ์ธ ํ›„ ๊ฒ€์ƒ‰์ฐฝ์— S3๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ทธ๋ฆผ์„ ์„ ํƒํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™”๋ฉด์ด ๋‚˜์˜จ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฒ„ํ‚ท๋งŒ๋“ค๊ธฐ๋ฅผ ์„ ํƒํ•œ๋‹ค.

 

AWS ๋ฆฌ์ „์€ ์„œ์šธ, ap-northeasr-2๋กœ ์ง€์ •ํ•˜๊ณ , ๋ฒ„ํ‚ท์˜ ํผ๋ธŒ๋ฆญ ์•ก์„ธ์Šค ์ฐจ๋‹จ์„ ํ’€์–ด์ค€๋‹ค. ์•„๋ž˜ ๊ฒฝ๊ณ  ๋ฌธ๊ตฌ์˜ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์ฒดํฌํ•œ๋‹ค.
๋ฒ„ํ‚ท ๋งŒ๋“ค๊ธฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋ฒ„ํ‚ท์ด ์ƒ์„ฑ๋œ๋‹ค.

๋ฒ„ํ‚ท๋งŒ๋“ค๊ธฐ ์ฐฝ

 

์ƒ์„ฑํ•œ ๋ฒ„ํ‚ท์— ๋“ค์–ด๊ฐ€ ๊ถŒํ•œ-> ๋ฒ„ํ‚ท ์ •์ฑ…->ํŽธ์ง‘->์ •์ฑ…์ƒ์„ฑ๊ธฐ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.

 

Select Type of Policy๋Š” S3 Bucket Policy ์„ ํƒ. Principal์€ * ๊ธฐ์ž…. Actions๋Š” Getobject ์„ ํƒ. ARN์€ ๋ฒ„ํ‚ท์ •์ฑ…ํŽธ์ง‘์— ์žˆ๋Š” ๋ฒ„ํ‚ท ARN์„ ๋ณต์‚ฌํ•ด์„œ ๋ถ™์ด๊ณ , ๋’ค์— /*์„ ์ถ”๊ฐ€.
ex) arn:aws:s3:::hamario-test/*
๊ทธ๋ฆฌ๊ณ  Add Statement๋ฅผ ํด๋ฆญํ•˜๋ฉด Generate Policy ๋ฒ„ํŠผ์ด ์ƒ๊ธฐ๊ณ  ์ด๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ •์ฑ…์ด ์ƒ์„ฑ๋œ๋‹ค.  ์ด๊ฑธ ๋ณต์‚ฌํ•ด์„œ ๋ฒ„ํ‚ท ์ •์ฑ… ํŽธ์ง‘ ์ฐฝ์— ๋ถ™์—ฌ๋„ฃ๊ณ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ €์žฅ์„ ํด๋ฆญํ•˜๋ฉด ์ •์ฑ… ์ƒ์„ฑ์ด ์™„๋ฃŒ๋œ๋‹ค.

 

๊ฐ์ฒด -> ์—…๋กœ๋“œ๋ฅผ ํด๋ฆญํ•ด์„œ ์‚ฌ์ดํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•œ๋‹ค. 

์œ„์™€ ๊ฐ™์ด ํŒŒ์ผ์—์„œ ์ง์ ‘ ๋Œ์–ด๋‹ค๊ฐ€ ๋†“์œผ๋ฉด ํŽธํ•˜๋‹ค.

์†์„ฑ -> ์ •์  ์›น ์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ… -> ํŽธ์ง‘์œผ๋กœ ๊ฐ€์„œ ์ธ๋ฑ์Šค ๋ฌธ์„œ๋ฅผ ์ง€์ •ํ•œ๋‹ค. index.html์ด ๋  ์ˆ˜๋„ ์žˆ๊ณ , ์šฐ๋ฆฌ์ฒ˜๋Ÿผ stage0.html ๋“ฑ์ด ๋  ์ˆ˜๋„ ์žˆ๋‹ค. ์ž์‹ ์˜ html ๋ฌธ์„œ ์ค‘์—์„œ ๊ฐ€์žฅ ๋จผ์ € ์‹œ์ž‘๋˜๋Š”, ๋ณด์ด๊ณ  ์‹ถ์€ html ๋ฌธ์„œ๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋œ๋‹ค.
์˜ค๋ฅ˜ ๋ฐœ์ƒ์‹œ์— ๋ฐ˜ํ™˜๋˜๋Š” ๋ฌธ์„œ๋„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋‚˜๋Š” ๋˜‘๊ฐ™์ด stage0.html๋กœ ์ง€์ •ํ–ˆ๋‹ค. ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ €์žฅํ•˜๋ฉด ์›น์‚ฌ์ดํŠธ URL์ด ์ƒ์„ฑ๋œ๋‹ค.

*์ด๊ฑด Optionalํ•œ ๊ฒƒ. ์šฐ๋ฆฌ ์‚ฌ์ดํŠธ๋Š” ์Œ์•…์„ ๋„ฃ์œผ๋ ค๊ณ  ํ•˜๋‹ˆ CORS(Cross-Origin Resource Share) ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ–ˆ์Œ. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ์ž ๊ถŒํ•œ ํƒญ ๋‚ด์˜ CORS๋ฅผ ๊ตฌ์„ฑํ–ˆ์Œ. ํ˜น์‹œ CORS ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์‹œ๋Š” ๋ถ„๋“ค์€ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋ธ”๋Ÿญ์— ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ๋„ฃ์œผ๋ฉด ๋œ๋‹ค. AllowedOrigins ๋งŒ ๋ฐฉ๊ธˆ ๋งŒ๋“  ์‚ฌ์ดํŠธ ์ •์  ํ˜ธ์ŠคํŒ… url๋กœ ๋ฐ”๊ฟ”์„œ ์˜ฌ๋ฆฌ๋ฉด ๋œ๋‹ค.

 

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET",
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "์ •์  ์›น ์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ… ์ฃผ์†Œ" //์—ฌ๊ธฐ ๋ฐ”๊ฟ” ๋„ฃ์œผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
        ],
        "ExposeHeaders": [],
        "MaxAgeSeconds": 3000
    }
]

 

์—ฌ๊ธฐ๊นŒ์ง€ ๋์œผ๋ฉด ์•„๊นŒ ๋งŒ๋“  ์ •์  ์›น ์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ… ์ฃผ์†Œ๋กœ ๋“ค์–ด๊ฐ€๋ฉด ์ •์ƒ์ ์œผ๋กœ ์‚ฌ์ดํŠธ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค! ๐Ÿ˜Š

'AWS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Lambda ํ•จ์ˆ˜์™€ S3 ๋ฒ„ํ‚ท ์—ฐ๊ฒฐํ•˜๊ธฐ  (0) 2024.01.18