관리 메뉴

거니의 velog

(60) AWS Elastic Beanstalk 6 본문

SpringBoot_React 풀스택 프로젝트

(60) AWS Elastic Beanstalk 6

Unlimited00 2024. 3. 12. 17:40

6. S3 업로드 처리

* AWS의 많은 서비스 중에 S3는 대용량의 파일을 업로드 하거나 서비스할 수 있는 기능을 제공하므로 이미지나 기타 파일들에 대해서 저장 및 조회 기능 구현 시에 도움이 된다. 빈즈톡을 이용하는 경우 기본적으로 S3를 이용하기 때문에 설정을 이용해서 파일 업로드 기능을 처리할 수 있다.

* AWS의 메뉴에서 S3를 선택하면 빈즈톡 애플리케이션 생성 시에 만들어진 S3의 버킷(파일을 담는 공간)을 확인할 수 있다.


(1) IAM을 이용한 S3 사용자 생성

* S3 버킷에 직접 파일을 업로드하는 작업은 가능하지만, 이를 프로그램을 통해서 처리하기 위해서는 사용자를 생성하고 사용자가 가지는 액세스 키(access key), 비밀 엑세스 키(secret access key) 등을 사용해야만 한다.

* 우선 IAM 서비스로 접근해서 사용자 생성 메뉴를 찾는다.

* 사용자의 이름을 지정하고 다음 단계에서 권한을 설정한다.

* 권한을 설정할 떄는 '직접 정책 연결' 항목을 선택하고 AmazonS3FullAccess 정책을 선택한다.


[엑세스 키 생성]

* 사용자가 생성되면 생성된 사용자의 액세스 키와 비밀 키를 지정하기 위해서 해당 사용자를 조회한다.

* 엑세스 키 항목에서 새로운 액세스 키를 생성할 수 있다.

* 엑세스 키의 생성 단계에서는 해당 키를 어떤 상황에서 이용할 것인지를 결정하는데 먼저, 로컬 환경에서 S3를 이용해서 업로드를 실행할 것이므로 '로컬 코드' 항목을 선택한다. 이후 설명을 입력하면 액세스 키와 비밀 액세스 키가 생성된다. 생성된 키는 csv 포맷으로 다운로드해서 보관할 수 있다.


(2) 버킷 정책 설정

* S3에 버킷 정책은 쉽게 말해서 버킷에 할 수 있는 파일을 올리거나 삭제하거나 등을 할 수 있는 권한 정책을 지정하는 것이다. S3의 버킷 조회 화면에는 '권한' 탭을 이용해서 버킷 정책을 설정할 수 있다.

* 버킷 정책의 편집을 선택하면 정책 생성기를 선택해서 버킷 정책에 필요한 JSON 문자열을 생성할 수 있는데 이때 버킷 ARN 값이 필요하므로 미리 보관해 두어야 한다.

* 정책 생성기에서는 S3 Bucket Policy를 선택하고 Principal 항목에는 * 을 지정한다.

* 가장 중요한 Actions 항목에서는 DeleteObject, GetObject, PutObject  3개의 항목을 선택한다.

* ARN 항목에서는 앞에서 저장해 둔 ARN 값에 /* 를 반드시 추가해 주어야 한다.

ARN 문자열 끝에 /* 를 반드시 붙인다.

* 이렇게 생성된 버킷 정책은 다음과 같은 결과가 된다.

* 생성된 버킷 정책은 아래와 같은 형태로 출력되는데 이 중에서 Statement 속성의 내부 값을 이용하게 된다.

* 버킷 정책에서 새 문 추가를 이용해서 생성된 JSON 문자열 중 Sid로 생성되는 항목부터 추가하도록 수정한다.

* 외부에서 해당 S3에 있는 파일들을 보기 위해서 버킷의 속성에서 ACL을 편집한다.

* 여러 항목 중에서 모든 사용자가 읽기 가능하도록 설정한다.


 

'SpringBoot_React 풀스택 프로젝트' 카테고리의 다른 글

(62) AWS Elastic Beanstalk 8  (0) 2024.03.13
(61) AWS Elastic Beanstalk 7  (0) 2024.03.13
(59) AWS Elastic Beanstalk 5  (0) 2024.03.12
(58) AWS Elastic Beanstalk 4  (0) 2024.03.12
(57) AWS Elastic Beanstalk 3  (0) 2024.03.12