끄적이는 보송

[AWS] S3 pre-signed url 이란 (AWS CLI 명령어 사용) 본문

STUDY/AWS

[AWS] S3 pre-signed url 이란 (AWS CLI 명령어 사용)

끄적이는 보송 2022. 3. 6. 16:39
반응형

Pre-Signed URL (미리 서명된 url) 이란?

디폴트로 S3의 객체는 비공개이며 소유자만이 접근할 수 있다.

하지만 필요할 경우 소유자의 보안 자격 증명을 사용해 일정기간 동안 효력이 있는 URL을 생성할 수 있다.

이 URL을 미리 서명된 URL (pre-signed url)이며 이를 통해 다른 사용자는 임시적으로 해당 객체에 접근할 수 있게 된다.

 

참고로 pre-signed url은 이를 생성한 사용자의 권한에 의해 일부 제한된다고 하니 다음 링크를 참조해보자.

https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/using-presigned-url.html#who-presigned-url

 

미리 서명된 URL 사용 - Amazon Simple Storage Service

미리 서명된 URL 사용 모든 객체 및 버킷은 기본적으로 프라이빗입니다. 그러나 미리 서명된 URL을 사용하여 선택적으로 객체를 공유하거나 고객/사용자가 AWS 보안 자격 증명이나 권한 없이 버킷

docs.aws.amazon.com

 

 

 

사전 준비 구성

이번 장은 S3에 접근이 가능한 Role을 부여받은 EC2 인스턴스로부터 외부로 비공개된 S3 객체의 pre-signed url을 간단하게 생성해보려 한다. 이를 위해 필요한 것은 대략 다음과 같다.

 

1. 기본적은 AWS 네트워크 환경

 

2. EC2 인스턴스 + S3 접근 권한이 있는 Role 

 

3. 비공개된 S3 + 테스트를 위한 객체

 

 

실습

1. IAM Role 생성

EC2 인스턴스에 접속해 S3 CLI 명령어를 날리기 위한 권한을 생성하고 부여해주는 작업을 한다. 먼저 IAM 서비스로 접근해 Role을 생성한다.

 

 

어떤 권한을 가진 Role을 생성할지 결정할 부분이다. 나는 편의상 S3 관련된 모든 권한을 선택했지만 특정 S3에 특정 작업만을 허용하고 싶다면 'Create Policy' 따로 커스텀한 정책을 선택해주자. 사실 이게 바람직하다.

 

 

2. 생성한 Role을 EC2 인스턴스에 부착

생성 완료한 Role을 EC2 인스턴스 마우스 우클릭한다. 우클릭 후 생긴 창의 'Security'로 접근하고 'Modify IAM role' 클릭한다. 클릭하면 아까 생성한 IAM Role을 선택할 수 있는 선택창이 나온다. 선택하고 저장한다.

 

 

 

3. EC2 인스턴스 접속 및 S3 통신 확인

IAM Role이 작동한다면 EC2 인스턴스에서 S3를 성공적으로 불러올 수 있어야 한다. 우선 서버에 접속한다.

 

 

간단하게 나의 S3 버킷의 Object List를 출력해 Role 작동 여부를 확인해본다. 잘 작동하는 듯하다.

 

 

 

4. S3 Pre-Signed URL 생성하기

아까 출력한 Object List 중 'testfile'이란 녀석의 pre-signed url을 생성해보려고 한다. url은 60초간 작동하도록 할 것이다.

 

 

aws s3 presign s3://'your_bucket_name/your_object' --expires-in 'number (sec)'

 

 

4. S3 Pre-Signed URL 생성하기

생성한 URL을 웹브라우저에 입력해보니 S3 버킷에 Private 하게 보호되어 있던 'testfile'을 아무런 자격증명 없는 외부인이 받아올 수 있는 것을 확인해보았다.

 

반응형

'STUDY > AWS' 카테고리의 다른 글

[AWS] CloudFront 에 대하여  (1) 2022.03.13
[AWS] Storage Gateway (File Gateway) 구현하기  (0) 2022.03.09
[AWS] EIP 복원하기  (0) 2022.03.01
[AWS] Site-to-Site VPN 구성하기  (1) 2022.03.01
[AWS] ALB Access Log 활성화 및 분석하기  (1) 2022.03.01
Comments