S3 버킷은 어떻게 생성할까?
버킷(Bucket) 생성 위치
--
S3 -> 버킷 만들기 버튼 클릭
--
[버킷 생성 과정] 일반 구성
--
AWS 리전을 잘 지정되었나 확인한다.
버킷 이름은
전 세계의 S3 버킷에 대한 고유한 이름을 작성해야 한다.
기존 버킷에서 설정 복사(버킷 선택 버튼)는
기존에 만든(이미 존재하는) 버킷의 설정을 그대로 해당 새로운 버킷에 적용하는 기능이다.
--
[버킷 생성 과정] 객체 소유권
--
해당 파트는
S3 버킷에 업로드된 객체(데이터)의 소유자를 결정하는 파트로
다른 AWS 계정에서 해당 버킷에 객체를 업로드할 때,
해당 객체의 소유권을 어떻게 관리할지 결정하는 파트다.
ACL (Access Control List)는
AWS S3에서 버킷과 객체에 대한 접근 권한을 제어하기 위해 사용되는 권한 관리 도구로,
누가 해당 버킷이나 객체에 접근할 수 있는지를 정의하는 리스트다.
"ACL 비활성화됨(권장)"은
기본적으로 권장되는 설정으로
버킷 소유자만 해당 버킷과 객체에 접근 권한을 가지게 하는 것이다.
그래서 ACL을 사용하지 않고, "버킷 정책"이나 "IAM 정책"으로 접근을 제어한다.
이를 통해 모든 객체는 항상 버킷 소유자가 소유하게 되어
다른 계정에서 해당 버킷에 객체를 업로드하더라도 해당 객체의 소유권은 버킷 소유자가 가지며,
해당 객체도 소유자만 사용할 수 있게 된다.
권장 이유
ACL을 사용하지 않으므로 복잡한 접근 제어를 피해 보안과 관리를 단순화할 수 있다.
최신 보안 표준을 따르며, 비용 절감에도 도움이 된다.
객체의 일관된 접근 관리를 할 수 있다.
"ACL 활성화됨"은
기존 시스템과의 호환성을 위해 사용되는 설정으로
객체 소유권을 ACL을 통해 관리하며, 다른 계정이 업로드한 객체는 업로드한 계정이 소유자가 된다.
그리고 ACL을 사용해서 세부적인 접근 제어 목록을 설정할 수 있다.
(특정 사용자 or 계정에 읽기/쓰기 권한 부여)
다만 해당 버킷을 사용하는 여러 계정들에 대해 관리를 해줘야 하므로 복잡해질 수 있으며,
권한 설정 실수로 보안이 위험해질 수도 있다.
즉, 여러 AWS 계정에서 해당 버킷을 관리해야 하는 것이 아니라면 (권장)을 선택하는 것이 좋으므로
ACL 비활성화를 선택했다.
--
[버킷 생성 과정] 이 버킷의 퍼블릭 액세스 차단 설정
--
해당 파트는
S3에 업로드된 파일(이미지)을 공개적으로 접근할 수 있게 할 것인지 정의하는 곳으로
다른 사람들이 해당 이미지를 조회할 수 있게 하려면 체크를 해제해줘야 한다.
(조회 = 다운로드 = 브라우저에서 파일(이미지) 보기)
우선 모든 접근을 해제해 주고
구체적인 권한 설정은 "버킷 정책"을 통해 정의한다.
--
[버킷 생성 과정] 나머지
--
나머지는 모두 기본으로 선택된 것을 그대로 내버려 두었다.
--
IAM에서 액세스 키 발급받기
--
기본적으로 AWS의 리소스에 아무나 접근을 못하도록 막아놔서
S3에 접근하여 파일을 업로드할 수가 없다.
그리고 해당 버킷 정책에 파일을 다운받는 것에만 권한 허용을 해줄 것이다.
하지만 백엔드 서버에서는 해당 S3에 접근하여 파일을 업로드할 수 있어야 한다.
그래서 S3에 접근할 수 있는 권한을 받기 위해서는
IAM에서 액세스 키를 발급받아 권한을 부여받아야 한다.
--
참고 및 출처
'AWS' 카테고리의 다른 글
[S3] S3와 Spring Boot 연동하기 (3) | 2024.11.15 |
---|---|
[S3] S3 버킷에 정책 설정하기 (0) | 2024.11.13 |
[S3] S3란? (3) | 2024.11.13 |
EC2 인스턴스 상태검사 "1/2개 검사 통과" (EC2 인스턴스 서버 다운) (1) | 2024.10.08 |
[ELB] ACM(SSL/TLS 인증서)를 통해 HTTPS 설정하기 (+ HTTP요청시 HTTPS로 자동 리다렉트) (0) | 2024.09.06 |