250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- shared lock
- 이진탐색
- SQL프로그래밍
- exclusive lock
- 다대다
- 비관적락
- 연결리스트
- 백트래킹
- 스프링 폼
- eager
- 연관관계
- BOJ
- fetch
- 힙
- CHECK OPTION
- querydsl
- 낙관적락
- FetchType
- execute
- 스토어드 프로시저
- PS
- 즉시로딩
- 데코레이터
- 일대다
- 유니크제약조건
- JPQL
- 동적sql
- dfs
- 지연로딩
- 다대일
Archives
- Today
- Total
흰 스타렉스에서 내가 내리지
CF(7): CloudFront 컨텐츠 보호(2) 본문
728x90
# Origin Access Control (OAC) - S3 Origin 에서의 컨텐츠 보호
- OAI 와 함께 CloudFront 를 거치지 않은 S3 에의 접근을 방지하기 위한 기능
- Origin Access Identity(OAI) : 예전 방식, OAC 를 권장
- OAC 는 일종의 Identity : IAM 사용자 혹은 IAM 역할과 비슷한 Identity
- 즉 S3에서 해당 OAC의 접근을 허용하고 CloudFront 에서 OAC를 활용해서 S3와 소통.
- S3에서 기본적으로 모든 접근을 차단하고 OAC의 접근만 허용.
- OAC 는 Lambda Function URL 에도 사용 가능
Client 가 직접 접근할 시에는 S3 의 버킷 정책에 의해 차단되나, OAC 는 허용된다.
즉, CloudFront 를 통해서만 버킷 내의 객체에 접근할 수 있다.
# Origin Access Control (OAC)의 3가지 Sign 방법
- CF 가 S3와 소통하기 위한 요청에 Sign 방법 정의 가능 (Authorization 헤더를 통해 시그니처를 전달해야 함)
- 3가지 종류
- Sign Requests: CloudFront IAM Principle 이 S3 에 요청할 때 SigV4 로 Sign
- 즉 요청에 자격증명을 활용해 필요한 정보로 → Authorization Header 를 구성 → S3에서 해당 내용을 검증해서 자격이 있는 요청인지 확인 → 요청 처리 or 거부
- 클라이언트가 Sign한 헤더가 있다면 덮어씌움
- 즉, CloudFront 가 요청에 서명을 추가해서 Origin 에 보내는 것.
- Do not override authorization header : 클라이언트 Header 가 있다면 사용, 없으면 새로 Sign
- Do not sign requests : Authorization Header 를 사용하지 않음 (≒ Disable)
- 클라이언트가 항상 Sign 을 통해 요청하거나, 컨텐츠가 퍼블릭인 경우
- Sign Requests: CloudFront IAM Principle 이 S3 에 요청할 때 SigV4 로 Sign
# Custom Origin 보호
- 방법 1 : Custom Header 활용
- CloudFront 에서 Header 생성 → Origin 에서 해당 Header 가 없으면 거부
- 방법 2 : Origin 에서 CloudFront IP를 제외한 모든 트래픽을 차단
EC2 인스턴스에서 보안그룹을 설정하여 CF IP 범위만 허용하게 할 수 있다.
참고로 aws 에서 직접 관리하는 IP range 가 있고, 이를 보안 그룹에서 참조할 수 있다.
이를 일일이 다 찾아 넣을 필요는 없고, 한줄이면 된다. 이에 대한 자세한 내용은 보안 그룹 강의를 참고하자.
# 뷰어 액세스 제한
- CloudFront 에 허용된 방법으로만 접근 가능하도록 설정하는 방법
- 2가지 접근 방법
- Signed URL : 파일 하나에만 접근 가능
- Signed Cookie : 다수의 파일에 접근 가능
- 서명 방법
- Trusted Key : 등록된 Public Key 에 해당하는 Private Key 로 Sign (권장)
- Trusted Signer : 등록된 AWS 계정의 권한으로 Sign (Root 계정 필요, 비추천)
- 유효 기간 설정 가능
# 지리적 배포 제한 (Geo Restriction) - 특정 지역을 기반으로 트래픽 허용/거부
- 2가지 접근 방법
- CloudFront 지리 배포 제한
- Whitelist 혹은 Blacklist → 나라별 기준
- 모든 배포에 제한 사항 포함
- 즉 일부만 제한 걸기 불가능
- IP 주소의 정확도는 99.8%
- 3rd Party 지리적 위치 서비스 사용
- 커스터마이징 가능 (예: 브라우저 별, 쿠키 별 등등)
- Signed URL 기반
- CloudFront 지리 배포 제한
3rd Party 에 요청하면, 이를 검증하고 Pre-signed URL 발급.
Client 는 발급받은 Pre-signed URL 로 CloudFront 에 요청.
# Field-Level Encryption
- CloudFront 를 활용하여 실제 데이터를 처리하는 주체까지 데이터를 암호화해서 전달할 수 있는 방법
- HTTPS 통신과는 별도의 개념
- Edge Location 에서 받은 데이터 중 특정 데이터를 주어진 Public Key 로 암호화
- 이후 데이터를 처리하는 측에서 Private Key 로 복호화하여 사용
'AWS' 카테고리의 다른 글
CloudFront: Cache Key 설정 시나리오 (0) | 2024.10.27 |
---|---|
CDN에서 Signed URLs 와 암호화/검증 동작원리 (0) | 2024.10.26 |
CF(6): CloudFront 컨텐츠 보호(1) (1) | 2024.10.26 |
CF(5): CloudFront 파일 관리 (0) | 2024.10.26 |
CF(4): CloudFront Behavior (동작) (0) | 2024.10.26 |