๊ฐ์
- ์ฌ์ฉ ๋๊ตฌ
RestAPI, AWS CLI,AWS CDK๋ฅผ ํตํด์ java,Net,Ruby,PHP,Node.js,python๋ฑ์ ํตํด ์์ฑ ๊ฐ๋ฅํฉ๋๋ค.
CLI :https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/install-cliv2-windows.html
๋ฒํท ์์ฑ
ํด๋น index.html ํ์ผ์ ์ ๋ก๋ ํ์ฌ ํ ์คํธ๋ฅผ ์งํํฉ๋๋ค.
CLI๋ฅผ ํตํ Presigned URL ์์ฑ
aws s3 presign s3://s3 object path –expires-in “๋ง๋ฃ์๊ฐ” –region “๋์๋ฆฌ์ ”
- CLI๋ฅผ ํตํ URL ์ ๋ณด ํ๋
- ํด๋น URL์ S3 ํน์ Object๋ฅผ ๋ค์ด๋ก๋ํ ์ ์๋ ๊ถํ์ด ์ ์ฉ๋์ด ์๋ URL์ ๋๋ค.
- ํด๋น expires ์๊ฐ์ 120 : 2๋ถ์ ๋๋ค.
- Presigned URL TEST
- ๊ธฐ์กด bucket url์ ํตํ ์ ์
์ฐจ๋จ ํ์ธ - ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ผ์ด๋น ์ด๊ธฐ ๋๋ฌธ
- Presigned-URL ์ ์
- Time over
- ๊ธฐ์กด bucket url์ ํตํ ์ ์
- CLI๋ฅผ ํตํ URL ์ ๋ณด ํ๋
์ถ๊ฐ
Bucket Policy๋ฅผ ์ด์ฉํ์ฌ Presinged URL์ ์ง์ ๋ ๊ถํ์ ๋ฌด์ํ์ฌ ๋ฐฉ์ง
์ง์ ๋ VPC์ธ๋ถ๋ก S3์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๋ ๊ฒ์ ๋ฐฉ์ง ํ ์ ์์ต๋๋ค
- ์ ์ฑ
ํธ์ง
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow Bucket Access From specified VPC only", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:user/username" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::bucketname/*", "Condition": { "StringNotEquals": { "aws:sourceVpce": "vpce-xxxxxxxx" } } } ] }
- Presigned URL ์์ฑ
- ์ ์ test
์ ๊ทผ ์ฐจ๋จ ํ์ธ
- boto 3 ์ด์ฉ์
import boto conn = boto.connect_s3() url = conn.generate_url(120, 'GET', bucket='presignedurl-sample-bucket', key='test.txt') print url
- ์ ์ฑ
ํธ์ง
ํ ์คํธ
<AWS CLI๋ฅผ ํตํ์ฌ Presigned URL์ ์์ฑ>
๊ฒฐ๋ก
๋ฐ๋ผ์, Presigned URL ์ S3 Bucket์ ๊ณต์ ํ ๋(๋ค์ด๋ก๋ or ์ ๋ก๋) ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ค๋ ์ฅ์ ์ด ์์ง๋ง S3 Bucket์ ๋ํ ๊ถํ์ด ์๋ ํ๊ฒฝ์์๋ Bucket ์ ๋ํ ์ ๊ทผ ๊ถํ์ ์ค ์ ์๋ค๋ ์ ์์ ์กฐ์ฌ์ค๋ฝ๊ฒ ์ฌ์ฉ๋์ด์ผ ํฉ๋๋ค.๋ํ, ๋๊ตฌ๋ Presigned URL์ ์์ฑ๊ฐ๋ฅํ๋ฉฐ permission์ด ํ์ํ์ง ์์ต๋๋ค. ๊ณต์ ๋์์ด ๋๋ S3 Bucket ๋ ๋ณ๋์ ์ ํ์์ด ์ง์ ์ด ๊ฐ๋ฅํฉ๋๋ค. ์๋ํ๋ฉด S3 Presigned URL ์ ๊ณต์ ๋์์ด ๋๋ S3 Bucket ๊ณผ Object ๋ฅผ ์ง์ ํ๊ณ ๊ณต์ ๋ฅผ ํ๋ IAM ์๊ฒฉ์ฆ๋ช ์ ๊ถํ์ ํจ๊ป ์ง์ ํจ์ผ๋ก์จ ์ต์ข ์ ์ผ๋ก ๋๊ตฐ๊ฐ๊ฐ Presigned URL ๋ก ์ ๊ทผํ์ ๋ Presigned URL ์ ํฌํจ๋์ด ์๋ ๊ถํ์ ๊ฒ์ฌํ์ฌ ํด๋น ์์ฒญ์ ํ์ฉ/์ฐจ๋จํ๋๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฆ, ์ต์ข ์ ์ธ ๊ถํ ๊ฒ์ฌ๋ Presigned URL ์ ์ด์ฉํ ์์ฒญ์ด ์ ์ ๋์์ ๋ ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ Presigned URL ์ ์์ฑํ๋ ๋จ๊ณ์์ ์ด๋ค ์ ํ์ ์ ์ฉํ ์๋ ์์ต๋๋ค.๋ฐ๋ผ์, Bucket Policy๋ IAM Policy์ ๋ค์ํ Condition์ ์ ์ฉํ์ฌ ๊ถํ์ ์ ์ ํ๊ฒ ์ ํํ์ฌ ์ฌ์ฉํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
'aws' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
RDS โ s3 ๋ฐฑ์ (0) | 2021.03.29 |
---|---|
Elastisearch ๋ฅผ ์ฌ์ฉ VPC FLOWLOGS (0) | 2021.03.29 |
CloudWatch / SSM Agent (0) | 2021.03.29 |
lb -acm ์ธ์ฆ์๋ฅผ ์ด์ฉํ ์ ์ (0) | 2021.02.09 |
route 53 ๋๋ฉ์ธ ์ฐ๊ฒฐ (0) | 2021.02.09 |