Springboot, AWS S3를 이용해서 이미지 처리하기 - (1)

kindof

·

2022. 2. 5. 22:35

0. 들어가면서

이번 포스팅에서는 Springboot와 AWS S3를 이용해서 이미지를 처리하는 과정을 기록해보려고 합니다. 내용이 길어질 것 같아 두 편으로 나누어서 글을 쓰려고 하는데요.

 

이번 편에서는 AWS S3 버킷 생성과 IAM 사용자 생성을 다뤄보고, 다음 편에서 Springboot에서 AWS S3를 이용해 이미지를 처리하는 코드를 살펴보겠습니다.

 

이동욱님의 블로그에서 많은 도움을 받았습니다. 감사합니다.

 

그럼 바로 시작해보겠습니다.

 

 

1. AWS S3 버킷(Bucket) 생성하기

[1] 먼저 아래와 같이 Amazon S3에 접속해서 버킷 만들기를 선택해줍니다. 아래 daangn-images라고 만들어진 버킷은 제가 기존에 만들어둔 버킷이니 무시하셔도 됩니다.

버킷 만들기

 

[2] 아래와 같이 버킷 이름을 입력하고, AWS 리전은 ap-northeast-2(서울) 기본값을 선택합니다.

버킷 만들기 - 1

 

[3] 객체 소유권에서 ACL 활성화됨을 선택해주고, '버킷 소유자 선호'를 선택해줍니다.

버킷 만들기 - 2

 

[4] 그 이후에는 '이 버킷의 퍼블릭 액세스 차단 설정'이라는 항목이 있는데요. 해당 항목의 체크를 '해제'해줍니다. 퍼블릭 액세스가 차단된 상태면 나중에 Access Denied 에러가 발생할 수 있습니다.

버킷 만들기 - 3

 

 

2. IAM 사용자 만들기

이제 생성된 버킷을 관리할 수 있는 IAM 사용자를 만들어야 합니다.

 

AWS에서 IAM을 검색하여 대시보드로 들어갑니다. 그리고 아래와 같이 '사용자' 탭에 들어가서 사용자 추가를 클릭해줍니다.

IAM 사용자

 

아래처럼 사용자 이름을 입력하고, AWS 자격 증명 유형 선택에서 '액세스 키 - 프로그래밍 방식 액세스'를 선택합니다.

IAM 사용자 설정

 

그 다음에 권한 설정에서 '기존 정책 직접 연결'을 클릭해주시고, 정책 필터에서 AmazonS3FullAccess를 선택해줍니다. 이름 그대로 AWS S3 버킷에 대한 전체적인 접근을 허용하는 정책입니다.

IAM 사용자 설정

 

이제 더 설정할 것 없이 사용자 생성을 완료하고, 마지막 화면에서 액세스 ID, PASSWORD를 제공하는 csv 파일을 다운로드합니다. 나중에 Springboot에서 해당 Id, Pw를 통해 IAM 사용자임을 확인하고, 버킷에 접근할 예정입니다.

IAM 사용자 정보 다운로드

 

자, 이제 버킷에 접근할 수 있는 IAM 사용자까지 생성을 마쳤습니다. 

 

이제 마지막으로 생성한 버킷의 권한과 정책을 설정해주겠습니다.

 

 

3. 버킷 권한 설정 및 정책 편집

이제 생성된 버킷을 클릭해서 권한 설정을 해주겠습니다.

 

[1] 생성한 버킷 선택 > 권한 > 버킷 정책에 있는 '편집'  > 정책 생성기로 들어갑니다. 이 때, '버킷 정책 편집' 화면에서 버킷 ARN을 확인할 수 있는데요. 이 부분을 복사해둡니다.

버킷 ARN

 

이제 정책 생성기를 클릭하고, 아래와 같이 내용을 입력합니다. 

버킷 정책 편집 - 1

 

버킷 정책 편집 - 2

이제 'Add Statement' 버튼을 누르고 'Generate Policy' 버튼을 클릭하여 정책 생성을 완료합니다. 그러면 아래와 같이 JSON 형태의 정책이 나오는데요. 이 내용을 복사해줍니다.

정책 JSON

 

복사한 내용을 '버킷 정책 편집' 창에 붙여넣기한 뒤, Resouce 부분의 마지막에 '/*'를 추가하고 변경 사항을 저장합니다.

버킷 정책 편집

 

 

 

이제 AWS S3 버킷 생성은 완료되었고, 버킷을 관리할 IAM 사용자까지 생성했습니다.

 

다음 포스팅에서는 Springboot에서 AWS S3를 이용해서 이미지 처리하는 방법을 코드로 살펴보겠습니다.

 

감사합니다.