본문 바로가기
CSP (Cloud Service Provider)/AWS

[AWS] S3 Pre-signed URL

by BTC_작은뉴진 2023. 6. 27.

안녕하세요~ 뉴진쓰팀의 작은뉴진입니다!

 

오늘은 S3 Pre-signed URL 에 대해 말씀드리려고 해요~


 

 

사용자들이 S3 버킷에 접근하게 하기 위해 모든 파일을 다 퍼블릭으로 만들면 어떻게 될까요?

따로 권한을 줘야 할 필요가 없으니 편하겠지만 반대로 생각하면 누구나 다 파일에 접근이 가능하니 보안적인 문제가 생기겠죠~?

 

그렇다면 사용자에게 자격증명을 사용하여 접근하게 한다면 안전하겠죠??

하지만 그렇게 한다면 자격증명을 변경할 때 공유자 모두에게 다시 부여해줘야 해서 관리가 힘들거에요!

 

사용자에게 역할을 부여하면 되지 않냐구요?

그러면 지정된 사람만 S3에 접근할 수 있어 안전하겠지만, IAM 사용자 수에는 제한이 있을 뿐만 아니라 역시나 한 명씩 다 부여해줘야 하니 관리가 힘들 것 같은데요..

 

 

이럴 때 사용 가능한 방법이 바로 Pre-signed URL을 사용한 방법이에요.

 

Pre-signed URL이란 임시적인 권한을 말하는데요, 말 그대로 S3 버킷으로의 접근을 위한 임시 URL이에요.

일정 시간이 지나서 URL이 만료가 되면 접근이 불가능해지는거죠.

 

 

 

이제 AWS 콘솔에서 Pre-signed URL을 발급 받는 방법에 대해 알아봐요!

 

우선 모든 접근을 막아둔 S3 버킷을 하나 생성한 후, 사진을 하나 넣어서 접속 가능한지 URL로 접속을 해볼게요.

보시다시피 접근이 거부당했네요.. 

너무 당연한거죠?ㅎㅎ

 

이번에는 Pre-signed URL을 발급받은 후에 접근해볼게요.

매우 간단하답니다~

 

S3 버킷에서 원하는 객체를 선택한 후 작업 > 미리 서명된 URL과 공유를 클릭한 다음

 

원하는 접근 가능한 시간을 설정해요.

저는 테스트를 위해 짧게 2분으로 설정해줬어요.

 

이제 링크를 복사한 후

 

복사된 링크에 접속하면 제가 업로드한 사진을 볼 수 있지만,

 

지정해둔 2분이 지나면 만료가 되었다며 접근이 거부되었다는 오류 메세지를 확인할 수 있어요.

 

 

이번에는 콘솔이 아닌 CLI 환경에서 URL을 발급받아볼까요?

aws s3 presign s3://버킷명/객체명 --region ap-northeast-2 --expires-in 60

 

이제 발급된 링크로 들어가면 사진을 볼 수 있으며,

지정해둔 60초 후에 다시 확인 시에는 다음과 같은 오류 화면을 확인할 수 있어요.


오늘 컨텐츠 어땠나요?

도움이 되었기를 바래요.

 

다음에 더 재미있는 컨텐츠를 가지고 만나요 베빠~!!

 

 

댓글