S3 버킷 생성
- 1-1) AWS 홈페이지로 이동하여 로그인한 뒤, S3를 검색합니다. 여기서
버킷 만들기
를 클릭해줍니다.
- 1-2) 다음으로 버킷 이름과 리전을 입력합니다.
버킷 이름
: 전 세계에서 하나 뿐인 고유한 이름으로 지정해줍니다.
AWS 리전
: S3가 생성한 버킷 위치를 지정하는 곳으로 가까운 서울로 해줍니다.
- 1-3) 밑으로 좀 내리다 보면 위와 같은 버킷 정책 설정이 나옵니다. S3의 기본 정책은 private 설정으로 되어있습니다. 저희 프로젝트에서는 누구든지 간에 이미지를 조회할 수 있게 해주기위해 모두 퍼블릭으로 설정해줍니다. 만약 차단을 한다면 버킷을 저만 볼 수 있게 됩니다.
이외의 다른 옵션들을 간략히 살펴보겠습니다. (모두 default로 두시면 됩니다)
객체 소유권
: 현재 로그인된 AWS 계정으로만 버킷을 소유할 것인지 유무를 묻는 옵션입니다.
버킷 버전 관리
: 객체의 변경 내용을 유지할 것인지에 대한 옵션입니다. 추가 비용이 드는 작업이므로 필요한 경우가 아니라면 비활성화로 둡니다.
기본 암호화
: 모든 새 객체가 저장될 때 암호화 되도록 합니다.
- 1-4) 나머지는 그대로 두고, 아래로 내려가서 버킷을 생성합니다.
- 1-5) 버킷이 잘 생성되었는지 확인한 뒤, 생성된 버킷의 이름을 클릭합니다.
- 1-6) 우선 업로드를 클릭하여 이미지가 잘 업로드 되는지 확인해보겠습니다.
- 1-7) 파일 추가를 클릭해 이미지 파일을 선택하고 업로드를 클릭합니다.
- 1-8) 업로드한 파일의 상태(성공)를 확인하고, 파일 이름을 클릭해봅니다.
- 1-9) 업로드한 파일의 정보가 나오고, 이미지 파일을 조회할 수 있는 URL을 클릭해봅니다. 이 URL을 이용해서 누구든지 이미지를 볼 수 있도록 합니다.
- 1-10) 아까 퍼블릭 엑세스 설정을 해주었음에도 불구하고
AccessDenied
에러코드가 발생한 모습을 볼 수 있습니다. 이는 초기 설정만으로 퍼블릭으로 설정되는 것이 아니라 버킷 정책
에 대한 추가적인 설정이 필요로 하기 때문입니다.
버킷 정책이 설정되있지 않은 경우 기본으로 모든 리소스 접근에 대한 권한을 차단합니다.
그럼 이제부터 버킷 정책을 생성해주도록 하겠습니다.
버킷 정책 생성
- 1-11) 다시 버킷으로 돌아와서 권한을 클릭해줍니다.
- 1-12) 버킷 정책 오른쪽 상단에 위치한 편집을 클릭해줍니다.
- 1-13) 버킷 정책은 JSON으로 이루어진 데이터입니다. 정책 생성기에서 GUI를 통해 쉽게 JSON으로 이루어진 데이터를 생성할 수 있습니다.
- 1-14) 저희 프로젝트에서는 이미지 조회만 퍼블릭으로 설정하고, 그 나머지 등록이나 삭제는 권한을 가진 사용자만이 이용할 수 있게 할 것이므로 3번 액션에는
GetObject
한 개만 선택해줍니다.
- 1-15) 최종적으로
Generate Policy
를 클릭하여 정책을 생성합니다.
- 1-16) 저희가 설정한 버킷 정책 내용이 담긴 JSON 코드를 복사해줍니다.
- 1-17) 복사한 JSON코드를 편집기에 붙여넣고,
변경 사항 저장
을 클릭합니다.
이제 다시 한 번 객체 URL에 접속하면 이미지가 잘 출력되는 모습을 보실 수 있습니다.