09. 인증과 보안
9.1. https
9.1.1 https 의 동작방식
- http 는 평문이 전달되기때문에 도청당할 수 있다.
- https = http over ssl /tls 이고 포트번호 443 = osi 5번 레이어
- 전자 인증서를 통해 통신 쌍방의 신뢰 관계를 만드는 것이 목표
- 데이터 암호화
- 데이터 손상 금지
- 신뢰할만한 상대가 목표
9.1.2. 인증서
- 서버 인증서와 클라이언트 인증서로 부류됨
- 클라이언트정보는 인증 기능이나 http 헤더를 통해 받을 수 있다.
- https의 경우, 공유 암호화 + 비대칭 공개키 암호화 방식을 둘다이용함
- 서버 인증서의 경우 사실상 표준인 Symantex 사의 인증기관, 즉 CA 가 해당 도메인에 대한 신뢰 여부를 인증하게됨
- 서버 인증일 뿐 접속 사용자를 인증하지는 않기때문에 사용자 인증 도 추가해야함
- 사용자 인증 + https = > 서명이 가능해짐
9.2. 사용자, 그룹, 롤 , 정책
- 사용자(액터) 인증은 -> aws 의 IAM 이 담당
- 테넌트 : 클라우드에는 최상의 개념으로 테넌트가 있고, 테넌트는 분리된다.
- 사용자:
- 액터는 api 를 실행하게 만드는 사람을 의미하고 사용자가 이에 해당함
- 클라우드에는 관리자가 존재한다. 관리자가 그룹을 나눠 정책을 지정하고 그룹 하위에 사용자를 둘 수 있다.
- iam 의 경우 리전에 속하지 않는다.
- 정책
- 정책은 이펙트, 액션,, 리소스 3가지로 나뉜다.
- Policy Generator 의 도움을 받을 수 있다.
- 인증키 및 토큰
- 토큰을 발급받기 위해 aws 의 STS(security token service)에서 토큰을 발급받는다.
- 서명
- 클라이언트로부터 전송된 데이터가 위변조되지 않았는지 확인하는 방법이 전자 서명
- 요청 정보의 해시값과 요청값, 시크릿 액세스 키를 조합해 전자 서명을 만들어야함
- 사용 알고리즘 : SHA
- 서명값은 필요한 서명키와 서명 문자열을 HMAC 함수를 이용해 얻어냅니다.