이전 포스팅에서는 이미지의 저장을 위한 AWS의 S3 Bucket을 생성했다.
그러나 이 상태로는 사용할 수 없다.
외부에서 이 버킷에 접근해 이미지를 저장하고, 읽기 위해서는 접근 권한을 설정해줘야 하기 때문이다.
이번 포스팅에서는 CORS설정과 버킷 정책을 설정하는 과정을 기록한다.
버킷 정책 설정
생성된 버킷으로 들어가서 버킷의 권한을 설정할 수 있다
권한을 클릭하면 정책을 편집할 수 있다. 정책 편집을 누른다.
그러면 버킷 ARN을 볼 수 있다. 이를 복사하고, 정책 생성기를 클릭한다.
1. Select Type of Policy 에서 S3 Bucket Policy를 선택한다.
2. Principal에 * 입력
3. Actions에 Get Object, Put Object 을 체크한다.
4. Amazon Resource Name (ARN) 에 위에서 복사한 ARN을 입력한 후 /* 입력 ex)arn:aws:s3:::ARN복사한것/*
5. Add Statement 클릭한다
생성을 완료하면, policy json document 가 나오는데, 이를 복사한다.
이전의 정책 편집 페이지로 돌아사서 정책한에 json구문을 붙여넣기 하고 저장한다.
CORS
버킷 정책 아래의 CORS를 설정한다.
편집을 눌러 아래를 붙여넣는다.
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"HEAD",
"GET",
"PUT",
"POST"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": []
}
]
공개 설정
위의 과정으로 버킷의 정책에 대한 설정을 완료했지만, 그렇다고 해서 버킷의 이미지를 외부에서 로드할 수 있는것은 아니다.
이번에는 이미지가 저장된 images 폴더만 외부에서 이미지 url로 이미지를 볼 수 있도록 하자.
먼저 버킷으로 들어와서 폴더 만들기를 통해서 images 폴더를 만든다. 폰더가 아래처럼 생성되었다면 다음으로 넘어가자
폴더 왼쪽의 체크박스를 클릭하고, 위의 작업을 누르면 ACL을 사용하여 퍼블릭으로 설정할 수 있다.
이제 이 폴더의 이미지 파일을 외부에서 url을 통해 읽을 수 있게 되었다.
확인을 위해 이미지를 넣고,
url창에 이미지 url을 넣으면 다음처럼 나온다.
'[Project] Threepark' 카테고리의 다른 글
[Capstone Design] 3. 백엔드 구현 - (2) Django Environ으로 환경변수 관리하기 (0) | 2024.05.14 |
---|---|
[Capstone Design] 3. 백엔드 구현 - (1) Django Rest Framework 환경 설정 (0) | 2024.05.14 |
[Capstone Design] 2. 스토리지 서비스 (AWS S3) - (1) S3 Bucket 생성 (0) | 2024.05.13 |
[Capstone Design] 1. 데이터베이스 (AWS RDS + MySQL) - (2) MySQL 연결 (0) | 2024.05.13 |
[Capstone Design] 1. 데이터베이스 (AWS RDS + MySQL) - (1) RDS 생성 (0) | 2024.05.13 |