포스팅 목차
Amazon S3 - Buckets
- Amazon S3는 객체를 저장을 위한 서비스
- 파일이 bucket 또는 디렉토리에 있고 각 bucket은 전역적으로 고유한 이름을 갖는다.
- bucket은 region 수준에서 정의된다
- Namining Convention
- 대문자 포함 안됨
- 밑줄 안됨
- 3~63 캐릭터 길이
- IP 주소 안됨
- 소문자 또는 숫자로 시작 할 것
Amazon S3 - Object
- S3 버킷에서 객체를 만든다
- 객체는 파일로 Key를 가진다.
- Key는 파일의 전체 경로이다 (bucket 뒤에 있는 경로)
- s3://my-bucket/file.txt
- s3://my-bucket/dir/file.txt
- Key는 파일의 전체 경로이다 (bucket 뒤에 있는 경로)
- Key는 prefix + object name의 조합이다.
- s3://my-bucket/dir/my_file.txt
- 버킷 내에는 디렉토리 개념이 없이 Key 이름이 길어진다.
- Key는 단지 “/”를 포함한 긴 이름이다.
- 객체의 값은 Conent body의 내용이다
- 최대 5TB(5000GB)의 사이즈로 매우 크다
- 한번에 5GB 이상 없로드 할수 없기 때문에 multi-part upload를 사용해야 한다.
- Metadata : 각 객체에 대한 key pair 리스트 (시스템이나 사용자 메타데이터에 사용)
- Tags : 객체나 수명 주기 정책 관련 보안이 없는 경우에 매우 유용한 key/value pair와 태그를 가질 수 있다.
- Version ID : versioning이 enabled 일 경우
Amazon S3 - Versioning
- Amazon S3 안에 파일을 version 관리할 수 있다.
- bucket 레벨에서 enabled 되어야 한다.
- 같은 Key로 파일 버전을 다시 업로드 하면 기존 파일을 덮어쓰는 게 아니라 해당 파일의 새로운 버전을 생성한다.
- 모든 파일 버전을 어느 정도 유지하면 원치 않는 삭제로 부터 보호 받을 수 있다. 원하는 이전 버전으로 복원할수 있기 때문이다.
- 버저닝을 활성화 하기 전에 버전 관리 되지 않는 파일은 null 버전이 된다.
- 버저닝을 활성화 했다가 중단하면 이번 버전을 삭제 하는게 아니라 이후의 파일이 버전 할당을 받지 못하도록 한다.
Amazon S3 - Block Public Access 버킷 설정
- 객체가 public 화되는 것을 차단하는 설정.
- 계정에 제한이 있을 경우 사용됨.
- 아래와 같은 방식이 승인되는 경우 객체와 버킷이 외부로 공개되지 않도록 차단할 수 있게 된다. (퍼블릭 엑세스 차단 설정 4가지)
- new access control lists (ACLs) - 새 엑세스 제어 목록
- any access control lists (ACLs) - 모든 엑세스 제어 목록
- new public bucket or access point policies - 새 퍼블릭 또는 엑세스 포인트 정책
- 퍼블릭 버킷이나 액세스 포인트 정책을 통해 버킷과 객체를 향한 퍼블릭 및 교차 계정 액세스를 막을수 있다.
- 이 설정들은 기업 데이터 유출을 막기 위해 만들어짐.
- Amazon S3 버킷이 유출이 많았고 결국 S3는 버킷이 퍼블릭이 아니라는 사실을 알릴 수 있는 설정을 만듬
- 따라서 버킷을 절대로 퍼블릭으로 두지 않으려면 이 설정을 켜둬야 한다.
- account 레벨에서 설정할 수 있다.
Amazon S3 - Websites
- S3는 정적 웹사이트를 호스팅 할 수 있고 www에서 접근이 가능하도록 허용한다.
- 웹사이트 URL도 아주 간단하다
- .s3-website-.amazonaws.com
- .s3-website..amazonaws.com
- 웹사이트를 활성화 했지만 설정된 버킷 정책이 없을 때는 해당 버킷에 대한 공개 액세스가 가능하며 403 Forbidden 오류가 발생한다.