일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- web view
- 휴대폰 기기
- apk파일 추출
- React Native
- 원복
- 완전탐색
- 경우의 수
- 이영직
- 구현
- 티스토리챌린지
- React Natvive
- bfs dfs
- 자료구조
- 비트마스킹
- Project Bee
- react
- 버튼 활성화
- FlatList
- ReactNative
- multipart upload
- 해외 대외활동
- Navigation
- 오블완
- 창의충전소
- springboot
- 폴더구조
- 상속 관계 매핑
- 백준 1992
- BFS
- 노마드코더
- Today
- Total
유미의 기록들
[최종 프로젝트] Signed URL 적용 본문
- 콘텐츠 보호
강의 영상과 같은 유료로 제공되는 영상이 모든 사용자에게 무제한으로 노출되는 것을 방지하기 위해, 수강 유저에게만 제한적으로 접근권한을 주고자 합니다.
signed URL은 및 시간 같은 추가 정보가 포함되므로 콘텐츠에 대한 액세스를 세부적으로 제어할 수 있습니다
- 안전한 접근 제어
사용자가 접근 권한을 얻기 위해 각자의 키를 공유할 수 없기 때문에 RSA 키 쌍을 통해 “내가 승인한 사람만” 콘텐츠에 접근하게 만든다
CloudFront에 SignedURL 적용하기
- Signed URLs 인증 절차에 사용할 공개키와 개인키 RSA key pair를 만든다.
- 공개키를 AWS CloudFront keygroups에 등록하고 해당 CloudFront에 접근제한을 설정하고 keygroups을 연결한다.
- 애플리케이션에서 개인키를 사용하여 인증정보가 쿼리에 담겨있는 Signed URLs을 생성한다.
- 해당 Signed URLs로 접근하면 url 쿼리에 등록된 개인키가 CloudFront에 등록된 공개키와 복호화를 성공하여 콘텐츠에 접근이 가능하다.
- 루트사용자가 aws에서 key pair 생성하는 방식
- 키 그룹을 생성하는 방법
키그룹 생성 권장
RSA key pair 생성
RSA알고리즘 사용할 때, 두가지 키가 생성된다
개인키는 비밀로 유지되어야 하는 키 →자신이 데이터를 암호화 해독, 자신의 데이터에 서명 ⇒ 애플리케이션이 개인키로 URL에 서명하여 특정 조건(유효 기간, IP 제한 등)이 설정된 SignedURL을 생성
공개키는 다른사람과 공유할 수 있다 → 다른 사람이 보낸 데이터 암호화, 서명 검증 ⇒ CloudFront 에 등록
암호화 : 데이터를 안전하게 전달하는 방식
나 ——> “안녕” ——> 친구
누군가가 중간에서 가로챌 수 있다
RSA를 통해 나와 친구는 각각 공개키와 개인키를 만든다
나 : 친구의 공개키를 사용하여 “안녕” 암호화 —→ 복잡한 코드로 변환 ←-누가 중간에 가로채도 내용 해독할 수 없음
친구 : “안녕”암호화된 거 받음 → 자신의 개인키로 암호를 해독하여 “안녕” 확인
서명 : 메시지의 진짜 발신자를 증명하는 방식
나 —→ “안녕” —→ 친구
내가 보낸 메시지가 맞아! 위조 된것이 아니야를 증명하고 싶어
나 : 나의 개인키로 서명을 만든다 “안녕”에 서명이 붙어서 전송, 개인키로 생성된 서명은 소유자만 만들 수 있기 때문에 이 메시지는 내가 보낸 것을 증명 가능
친구 : 나의 공개키로 서명 검증, 서명이 올바르다면, 내가 보낸게 맞다 확신, 서명검증 실패하면 메시지가 변조되었음을 알 수 있다
사용자 ——→ 애플리케이션 (영상 접근 요청) : private 키를 가지고 signedURL 생성해서 응답 (접근 허가 티켓)
사용자 ——→ CloudFront : public 키로 이 URL의 서명 확인
'대외활동 기록 > 내일배움캠프' 카테고리의 다른 글
Multipart Upload 방식 vs Pre-signedURL 방식 (0) | 2024.11.14 |
---|---|
[최종 프로젝트] CDN 적용하여 강의 컨텐츠 조회 성능 최적화 (1) | 2024.11.12 |
[최종 프로젝트] SpringBoot 프로젝트 EC2 배포 (2) | 2024.11.11 |
[최종 프로젝트] Reflection을 이용한 테스트 코드 (1) | 2024.11.10 |
[최종 프로젝트] AWS Multipart Upload로 대용량 파일 업로드 (0) | 2024.11.09 |