728x90
S3
프로젝트를 하다가 PDF를 어딘가에 저장해야 하는 일이 생겨서 S3 버킷에 저장해보려고 한다. 그래서 우선 S3를 생성해 보겠다. (AWS계정이 없다면 만들고 와야 한다.)
버킷 생성
Amazon S3 버킷을 생성해 보자.
- 버킷 이름은 알아볼 수 있도록 마음대로 설정해 주면 된다.
- AWS 리전은 속도를 위해 많이 사용될 지역으로 설정해 주는 게 좋다.
- AWS S3 버킷에서 객체(파일)의 소유권은 업로드를 수행한 IAM 사용자(계정)에게 자동으로 할당된다. 객체의 소유권은 기본적으로 업로드한 IAM 사용자에게 속하게 된다.
- ACL(Access Control List)은 AWS S3 버킷의 객체에 대한 액세스 권한을 관리하는 기능이다. ACL을 활성화하면 업로드된 객체에 대한 액세스 권한을 미리 정의된 규칙에 따라 설정할 수 있다. 예를 들어, Canned ACL(Canned Access Control List)을 사용하여 업로드된 객체에 대한 공개 읽기 액세스를 허용할 수 있다.
- 요약하면, AWS S3 버킷에서 객체의 소유권은 업로드를 수행한 IAM 사용자에게 자동으로 할당되며, ACL을 활성화하여 객체에 대한 액세스 권한을 설정할 수 있다.
- 직접 S3에 접근할 수 있는 URL을 입력하여 이미지가 정상적으로 업로드될 수 있도록 하기 위해 퍼블릭 액세스 차단을 모두 해제했다.
- 실무에서 사용하는 거라면 모든 퍼블릭 액세스 차단을 권장한다.
- 설명과 같이 버킷의 버전을 관리해 주는 역할을 한다.
- 필요하다면 활성화를 시켜주면 된다.
- 버킷에 저장되는 객체를 자동으로 암호화해 주는 설정이다.
- 기본적으로 제공해 주는 암호화를 사용했다.
이제 모든 설정이 끝났다면 버킷 만들기를 눌러서 만들면 된다.
지금 이렇게 만든 S3가 정답은 아니기 때문에 실무에서 사용한다면 상황에 맞게 퍼블릭 액세스 차단 설정이나 ACL 비활성화등 권장하는 방법을 사용하길 바란다.
버킷 정책 설정
Amazon S3 > 버킷을 가보면 방금 만든 domain-web-storage가 있을 것이다.
- 정책 타입 선택
- 버킷 정책이 적용될 대상 (전체: *)
- 버킷이 수행할 액션 (GetObject, PutObject 선택)
- 버킷에 어떤 리소스에 적용할지 (버킷이름/*)
{
"Version": "2012-10-17",
"Id": "Policy1686890931481",
"Statement": [
{
"Sid": "Stmt1686890475946",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::domain-web-storage/*"
}
]
}
업로드 확인
- 폴더를 만들어서 파일을 폴더별로 구분할 수 있다.
- 업로드를 누르면 파일을 추가할 수 있다.
업로드된 image.png를 확인해 보면
이렇게 잘 들어온 게 확인이 됐다!
간단하게 파일 저장을 하기 위해 S3 버킷을 만드는 실습을 해봤습니다.
언제나 잘못된 설명에 대한 피드백은 환영입니다🤍
728x90