0. Intro
“학원 관리 프로그램” 프로젝트 진행 중 학생, 직원, 공지사항을 등록할 때 관련 파일 업로드를 할 수 있게끔 계획하였다.
구체적으로 어떻게 해야하는지는 몰랐지만 multipart/form-data
를 통해 나눠서 보낼 수 있다는 것까지만 알고 있었다.
그리고, AWS EC2 서버에 저장하면 되겠거니 하고 구체적인 방법을 찾아보았다.
찾아보니, EC2 서버에 올리게 되면 비용이 상당히 나오고, 이를 위해서 AWS에선 데이터를 오브젝트 형태로 저장하는 서비스인 S3가 존재한다는 것을 알게되었다.
그래서 Spring Boot와 AWS S3를 연동하면 파일 업로드를 진행할 수 있겠다는 결론을 내렸다.
그럼 이번 게시물에선, AWS S3 생성을 위한 사전 작업을 진행하겠다.
1. 관리용 IAM 사용자 생성
1.1 루트 사용자로 로그인
가장 먼저, IAM 사용자가 S3 접근할 수 있도록 권한을 추가해줘야 한다.
그런데, IAM 사용자를 만드려면 이 작업은 루트 사용자가 진행해야 한다.
아래 사진처럼 IAM 콘솔에 접속하면 보통 루트 사용자로 로그인할 것이다.
1.2 결제 데이터 액세스 활성화
로그인 후에, 다음과 같이 오른쪽 상단에 있는 내 계정에 들어간다.
스크롤을 내리다보면, 다음과 같이 결제 정보에 대한 IAM 사용자 및 역할 엑세스 항목이 나오는데, 편집을 눌러 “IAM 엑세스 활성화”를 누르고 업데이트 한다.
1.3 IAM 관리용 사용자 추가
탐색 창에서 IAM 서비스를 클릭해 들어간다.
왼쪽 사이드바에서 엑세스 관리
- 사용자
에서 사용자 추가를 누른다.
이미 나는 관리용 사용자를 추가한 상태라 사용자가 뜨겠지만, 처음 생성하면 아무것도 뜨지 않을 것이다.
사용자 이름을 Administrator
로 입력하고, 콘솔 엑세스 활성화 버튼을 눌러 사용자 지정 비밀번호를 입력한다.
그리고 사용자가 다음에 로그인 할 때 새 비밀번호 생성 요청
버튼은 해제하고 다음
버튼을 누른다.
그러면 아래 사진처럼 권한 옵션이 3개 나오는데, 처음 사용자를 추가하는 것이므로, 그룹도 새로 만들어야 한다.
첫번째 옵션인 그룹에 사용자 추가
버튼을 누른다.
그룹 이름을 Administrators
로 입력하고, AdministratorAccess 정책을 추가한다.
여기서, AdministratorAccess 정책은 모든 리소스에 모든 액세스가 가능하다고 알고 넘어가면 된다.
다시 사용자 생성 화면으로 돌아오게 되면, 방금 만든 Administrators
그룹을 체크하여 우리가 생성하려는 Administrator
사용자를 포함시키면 된다.
여기서 난, 이미 Administrator 사용자가 존재해 이미 Administrators
그룹에 포함된 상태이다.
체크하여 포함시키면 마지막 검토 및 생성 페이지에서 어떤 사용자가 어떤 사용자 그룹에 포함되어 있는지 확인 할 수 있다.
확인이 끝나면 사용자 생성
버튼을 눌러 사용자 추가를 마친다.
완료되면, 다음과 같은 화면이 나오고, 이제 로그인 URL을 통해 새 사용자로 로그인한다.
사용자 페이지의 보안 자격 증명 탭에서 콘솔 로그인 링크로 들어가게 되면 현재 로그인 상태가 풀리고 IAM 사용자로 로그인 하게끔 화면이 나온다.
아래와 같이, 계정은 자동 완성되고, 사용자 이름에 우리가 생성한 이름
과 암호에는 비밀번호
를 입력하면 로그인 된다.
로그인되면 오른쪽 상단에 로그인 계정 부분에서 Administrator
로 로그인 되었음을 알 수 있다.
2. 개발용 IAM 사용자 생성
관리용 Administrator
IAM 사용자를 만들어 로그인 한 상태이다.
이제 AWS S3를 이용하는 개발용 IAM 사용자를 Administrator
사용자로 만들어보겠다.
후에 있을 Spring Boot 연동을 위해 액세스 키와 비밀 엑세스 키도 발급하도록 만들 것이다.
방법은 관리용 IAM 사용자를 만들 때와 비슷하다.
대신, 엑세스 키와 비밀 엑세스 키를 발급하도록 추가 설정을 해주어야 한다.
사용자 추가
사용자 추가 버튼을 누르고, 사용자 이름을 적절히 입력한 뒤, 이번엔 콘솔 엑세스 활성화
버튼을 누르지 않고 생성한다.
관리자 사용자 때처럼 사용자 그룹을 만들면서 진행해도 좋으나 여기선 그냥 간단히 사용자만 만들었다.
권한 설정 부분에서 직접 정책 연결
에서 S3와 관련된 모든 작업을 할 수 있도록 AmazonS3FullAccess
정책을 선택한다.
검토 및 생성 부분에서 정책이 잘 들어갔는지 확인하고, 사용자를 생성한다.
🚨 이제 제일 중요한 부분이다.
예전 자료들은 처음 사용자 세부 정보 지정할 때 AWS 자격 증명 유형을 선택해서 엑세스 키를 바로 발급받을 수 있다고 되어있다. 그런데, 현재 시점엔 그런 선택란이 존재하지 않았다.
찾아본 결과, 일단 생성 후에 나중에 추가로 설정하면 된다고 한다.
AWS 공식문서를 참고하자. AWS 계정 및 액세스 키
사용자 탭에서, 보안 자격 증명 탭을 열고 스크롤을 내리면 액세스 키와 관련된 화면이 나온다.
엑세스 키 발급 버튼을 누르고, 적절히 선택한 뒤, 발급하면 된다.
발급이 되면 csv 파일로 저장해두는 것을 추천한다.
이렇게 관리용 IAM 사용자부터, S3와 관련된 모든 작업을 할 수 있는 개발용 IAM 사용자까지 만들었다.
다음 게시물에선 이제 본격적으로 SpringBoot와 AWS S3를 연동해보도록 하겠다.
Leave a comment