10. 고급 s3 및 Athena (AWS Certified Developer Associate)
1. S3 기본 암호화 vs 버킷 정책
버킷 정책 방식이 기본 암호화보다 먼저 고려된다는 점을 기억하자.
만약 SSE-S3라는 암호화 매커니즘을 강제하려면 버킷 정책을 사용해야 하지만 버킷 내 모든 객체를 암호화 하는것이 목적이라면 기본 암호화를 사용해도 된다.
2. S3 Access Logs
모든 엑세스를 S3 버킷에 로깅하는 경우 모든 요청들은 승인 여부에 상관없이 다른 S3버킷에 로깅 되어 이후 분석에 가능하게 도와준다.
사용자가 S3에 요청을 보내면 해당 요청은 로깅 버킷으로의 로그가 남게되고 해당 버킷은 요청을 실행하는 버킷인것!
주의점
- 모니터링 중인 버킷을 로깅 버킷으로 설정하면 안된다. 만약 설정하게되면 로깅 루프가 생기게 되고 버킷의 크기가 기하급수적으로 커지게 된다.
3. S3 Replica 복제본
같은 리전 또는 다른 리전에 S3 Replica를 설정할 수 있다.
4. 서명된 S3 URL 설정
대표적인 사용은 프리미엄 사용자에게만 특적 시간동안 영상을 다운로드 하도록 승인할때, 다운로드할 사용자들의 몯록이 지속적으로 변경될 경우 사용자가 버킷에 직접 엑세스하지 못 하게끔 하는경우 --> 피로필 사진을 직접 업로드하도록 하는 경우에 서명된 URL을 생성해서 사용한다.
4-1. 실습
- 자 그럼 서명된 URL을 CLI를 사용해 생성하는 실습을 해보자
먼저 S3를 생성하고, 버킷에 파일 한개를 업로드해둔다. (우리가 알아야될 내용은 생성한 버킷의 S3 URI과 리전명을 기억하자!)
그런뒤 AWS CLI를 실행할 수 있는 cmd창을 연다. 가장 쉬운것은 AWS가 제공하는 AWS CloudShell를 사용하면 아주 아주 편하게 실습을 해볼 수 있다.
아래와같은 우리는 명령어를 써볼텐데 "aws s3 presign [본인의 S3 URL] --region [리전명] --expries-in [signed URL 유지 시간]"
요렇게 작성하면 아래와같이 서명된 URL이 나올것이다. 그럼 이것을 가지고 인터넷에 URL을 입력하면 사진이 나오는것을 확인할 수 있다!!
(만약 문제가 발생하면 "aws configure set default.s3.signature_version s3v4" 명령어를 실행해보길)