👉 버킷은 S3에서 파일을 저장하는 폴더라고 생각하시면 됩니다.
우리가 컴퓨터를 사용할 때 폴더 안에 파일을 저장하는 것처럼
S3에서도 버킷 안에 파일을 저장합니다.
버킷 만들기에 보이는 옵션들은 전부 사용하지는 않습니다.
서비스의 상황에 따라 그때그때 찾아보면서 사용하는 것을 추천드립니다 😀
그럼 버킷 만들기 버튼을 클릭해볼까요!!
👉 **버킷이름**: 이름은 무수히 많은 버킷중에 고유한 이름이어야 합니다.
(이유는 나중에 알려드려요!! 기대하세요~ 😛)
**AWS 리전**: 앞에서 배웠던 리전을 선택합니다.
**기존 버킷 복사**: 기존 버킷의 설정을 그대로 사용할때 유용합니다.
👉 **액세스 차단 설정**은 버킷에 저장한 파일의 권한을 설정하는 기능입니다.
**퍼블릭 엑세스**: 버킷이 생성되면 고유한 URL이 부여됩니다. URL을 통해서
저장된 파일에 접근 할수 있게 하는 기능입니다.
**ACL**: 액세스 제어 목록으로 버킷과 객체에 대한 액세스를 관리합니다.
추후 에러 발생으로 차단설정을 해제한다. 그 내용은 아래에 나온다.
버킷버전관리
👉 **버전관리**는 개발할때 소스를 git, svn으로 관리하는 것처럼
버킷내의 파일들을 버전을 관리할 수 있는 기능입니다.
태그
👉 **태그**는 해당 버킷을 태깅해놓고 이후에 비용측정이라던지
많은 버킷중에 태그로 검색을 한다던지 할때 쓰는 태깅 기능입니다.
기본암호화
👉 **암호화**는 말그대로 파일들을 암호화해서 좀더 보안적으로 신경써서 관리하게 해주는 기능입니다.
고급설정
👉 **객체 잠금**은 보시는 것과 같이 고~~급 설정입니다.
중요한 파일이 버킷에 저장되면 보안에 좀 더 신경써야겠죠!!
이런경우 사용하는 기능입니다.
![https://s3-us-west-2.amazonaws.com/secure.notion-static.com/c08b83a4-ac83-4520-a315-c4b63caa7d4b/_2021-03-26__4.59.04.png](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/c08b83a4-ac83-4520-a315-c4b63caa7d4b/_2021-03-26__4.59.04.png)
👉 버킷이 잘 생성되셨나요❓
그럼 바로 파일을 저장해 볼게요 파일 저장은 업로드 버튼 클릭해서
업로드할 파일을 추가하고 저장하면 됩니다.
업로드 화면 이동 & 파일 추가 & 그 외 옵션
👉 업로드할 파일을 추가합니다.
대상 탭에 보시면 업로드할 파일이 어떤 옵션을 가지는지 보이고요
추가 업로드 옵션을 사용하여 버킷을 만들 때 설정했던 옵션들을 업로드할 때
다시 설정할 수 있습니다.
🍯 앞에서도 알려드렸듯이 AWS의 제품들에는 옵션들이 엄청 많아요!!
옵션들을 전부 알고 있을 필요는 없고 필요할 때 찾아서 쓰시면 됩니다.
객체 URL 확인하기
👉 S3에 업로드 되는 모든 파일에는 객체 URL이 부여됩니다.
해당 URL을 브라우저 주소창에서 호출하면 업로드된 파일이 보입니다.
하지만 파일에 권한을 퍼블릭 하게
주지 않았기 때문에 AccessDenied 라는 에러가 보입니다.
에러 원인 : 객체 소유자는 나로 되어 있고 , 나만 객체 읽기 쓰기 가 되어
해결 하려면 [모든사람(퍼블릭 엑세스)] 로 바꿔줘야한다. [편집] 클릭
여전히 모든사람에 대한 읽기/쓰기가 비활성화 되어 있다. 이유는 노란색 박스에 있음.
적재적소하게 맞는 걸로 체크하여 설정 하면됨 ( 실습 중엔 체크하지 않아 다 허용할 수 있게함)
예> 퍼블릭한 버킷 하나/ 퍼블릭하지 않은버킷 하나 를 두는 방법 또는 한 버킷 안에서 퍼블릭파일과 퍼플릭하지 않은 파일로 나누기도 함
여전히 에러
버킷의 권한이 퍼블릭 하다고 해서 파일까지 퍼블릭이 자동으로 적용되지 않는다. 그래서 업로드할 파일이나 업로드된 파일은 별도로 권한 설정이 필요함.
버킷 - 권한 - 버킷 정책 - 편집
Select Type of Policy: S3 Bucket Policy
Effect: Allow
Principal:
Actions: GetObject, PutObject ( 때에 따라 다름)
Amazon Resource Name (ARN): 해당 버킷 ARN 입력
-> ARN은 이전 창에서 복사할 수 있다.
Add Statement 클릭 - 내용 확인 후 Generate Policy 클릭 - json 내용 복사
참고로 나의 경우 Resource 부분 뒤에 "/" 부분을 추가해줘야 접근이 가능했다.
복사한 내용 붙여넣기 - 변경 사항 저장
권한 개요에 "퍼블릭" 문구가 생기면 성공이다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:Put*",
"s3:Get*"
],
"Resource": "arn:aws:s3:::[내버킷이름넣기]/*"
}
]
}
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"HEAD",
"GET",
"PUT",
"POST"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": [
"ETag"
]
}
]
한 후 다시 브라우저로 새로고침하면 이미지 파일이 잘 업로드 된 것을 볼 수 있음
해당 링크 보고 직접 엑세스 키 ID, 비밀 엑세스 키 생성하기
**계정 액세스 키 ID와 보안 액세스 키를 얻는 방법은 다음과 같습니다.**
AWS 계정 및 액세스 키 - AWS Tools for PowerShell
메모해 둘것 ( 유출 조심)
엑**세스 키 ID :
**비밀 엑세스 키 :