S3 사용을 위한 IAM과 S3설정
들어가기에 앞서
EC2와 같은 클라우드 서버를 이용해서 배포를 해야할 경우 파일의 저장장소를 로컬로 지정할 수가 없다. 그렇다고 EC2와 같은 서버내부에 저장하는 것도 매우 비효율적이고 권장하지 않는 방법이다. AWS는 S3라는 것을 제공하며 S3는 정적파일을 저장하는 것에 특화되어있는 저장소이다.
S3를 사용하기 위한 권한 설정들을 알아보도록 하자.
IAM설정
IAM(Identity and Access Management)은 AWS에서 제공하는 것들을 사용하기 위해 권한을 설정하는 작업이다. 여러가지 권한을 설정할 수 있지만 지금은 S3만 살펴보도록 하자.
IAM에서 권한 설정을 할 때 크게 2가지중에 선택해야 한다.
- 사용자 : AWS가 아닌 외부에서 AWS로 접근하는 권한
- 역할 : AWS내부에서 AWS내부로 접근하는 권한
우리는 외부에서 S3로 접근하는 것이기 때문에 사용자를 추가하도록 하자.
(1) IAM -> 사용자 -> 사용자 추가 를 해준다.
(2) 사용자 이름을 원하는 것으로 작성하고 엑세스 키를 선택해준다.
(3) 정책 필터에 s3를 입력하고 AmazonS3FullAccess를 선택한 뒤 다음으로 넘어간다.
(4) 키와 값을 입력한다.
(5) 내가 입력한 내용이 맞는지 확인 한다.
(6) 모두 완료되면 키 ID를 받는다. 비밀 엑세스 키는 이 페이지에서만 확인하고 다시 확인을 못하기 때문에 csv파일을 꼭 받아놓는 것이 좋다.
이렇게하면 이제 S3를 사용하기 위한 IAM설정이 완료된 것이다. 필요한 곳에서 마지막에 본 엑세스 키와 비밀 엑세스 키를 이용해서 접근할 수 있다.
S3 설정
이제 S3를 설정해보자.
S3에서는 bucket이라는 것을 생성해야 한다. 하나의 프로젝트, 폴더 등의 느낌으로 생각하면 될 것같다.
(1) S3 -> 버킷 만들기
(2) 버킷의 이름을 원하는대로 입력해준다.
(3) 박스의 내용을 선택해준다.
(4) 모든 퍼블릭 엑세스 차단을 선택해제한다.
(5) 특별히 설정할 것은 없다. 버킷 생성을 완료해준다.
(6) 버킷생성이 완료된 후 생성한 버킷을 선택하고 '권한' 탭으로 들어오면 버킷 정책을 만들 수 있다.
(7) 버킷 ARN을 복사한 뒤 정책 생성기를 클릭한다.
(8) 빨간박스에 내용들을 선택, 입력해준다. ARN을 입력하는 곳에는 복사한 ARN + /* 을 입력하면 된다. 간혹 모두 입력했는데 사진과 같이 버튼이 활성화가 안되고 경고 문구가 나타나는 경우가 있는데 이때는 ARN에 *를 입력한 뒤 모두 생성된 후에 ARN값을 변경해주면 된다.
(9) 입력한 내용이 맞는지 확인 후 넘어간다.
(10) 해당 내용을 복사한다.
(11) 복사한 내용을 붙여넣어준다. 위에서 ARN을 *로 적은 부분을 다시 복사한 ARN + /* 로 수정해준다. 이때 1번줄에 가장 처음 시작하는 괄호는 띄어쓰기가 되있으면 안된다. 만약 띄워져 있다면 Policies must be valid JSON and the first byte must be '{' 이런 에러메세지가 출력된다.
이제 S3까지 모두 설정이 끝났다. 실제 프로젝트에서 사용할 때 S3의 bucket과 IAM의 key값들을 사용해서 S3에 접근할 수 있다. 스프링부트를 사용하면 라이브러리만 하나 추가해주면 AWS관련 설정은 크게 해줄 것이 없다.
S3에 파일업로드 하는 것을 보고싶다면 [토이 프로젝트/여행일지작성] - 로컬 파일업로드 S3로 전환하기 를 참고하면 될 것이다.