Microservices Security in Action (마이크로서비스 아키텍처 보안 설계와 구현)

Microservices Security in Action (마이크로서비스 아키텍처 보안 설계와 구현)

$50.09
Description
마이크로서비스 아키텍처에서 발생할 수 있는 다양한 보안 이슈를 살펴보고 예제 코드와 실습을 활용해 해당 이슈를 해결하는 데 필요한 지식을 전달한다. 책을 다 읽을 때쯤이면 마이크로서비스 보안을 이해하고 안전한 설계와 구현에 필요한 지식까지 습득할 수 있을 것이다.
저자

프라바스시리와데나

PrabathSiriwardena
WSO2에서보안아키텍처부사장을맡고있으며2007년부터ID관리및보안분야에서종사하고있다.

목차

1부.개요

1장.마이크로서비스보안의특징
1.1모놀리식애플리케이션의보안동작원리
1.2마이크로서비스보안의어려움
1.2.1공격노출지점이넓어질수록공격받을위험도증가
1.2.2보안검증지점분리는성능저하를초래
1.2.3배포복잡성으로인한마이크로서비스간초기신뢰설정어려움
1.2.4다양한마이크로서비스간통신추적의어려움
1.2.5컨테이너의불변성으로인한자격증명과접근제어정책유지의어려움
1.2.6마이크로서비스의분산된특성으로인한사용자컨텍스트공유의어려움
1.2.7다중개발언어지원아키텍처는개발팀에더많은보안전문지식을요구
1.3핵심보안원칙
1.3.1인증은스푸핑으로부터시스템을보호
1.3.2무결성검증으로데이터변조에서시스템을보호
1.3.3부인방지:한번의서명으로영구적으로기록하자
1.3.4기밀성은의도하지않은정보노출에서시스템을보호
1.3.5가용성:어떠한상황에서도시스템을가동중인상태로유지
1.3.6인가:권한범위를넘어선행위차단
1.4외부경계보안
1.4.1마이크로서비스그룹에서API게이트웨이의역할
1.4.2경계지점에서의인증
1.4.3경계지점인가절차
1.4.4클라이언트애플리케이션/사용자컨텍스트를상위마이크로서비스로전달
1.5서비스간통신보안
1.5.1서비스간인증
1.5.2서비스수준인가
1.5.3마이크로서비스간사용자컨텍스트전파
1.5.4신뢰경계간연결
요약

2장.마이크로서비스보안을위한첫단계
2.1첫번째마이크로서비스제작
2.1.1필요소프트웨어다운로드및설치
2.1.2예제코드저장소복사본생성
2.1.3주문처리마이크로서비스컴파일
2.1.4주문처리마이크로서비스접근
2.1.5소스코드디렉토리에는어떤것이있는가?
2.1.6마이크로서비스의소스코드이해
2.2OAuth2.0서버준비
2.2.1인가서버와의통신
2.2.2OAuth20인가서버실행
2.2.3OAuth20인가서버에서액세스토큰획득
2.2.4액세스토큰응답이해하기
2.3OAuth2.0을사용한마이크로서비스보안
2.3.1OAuth20기반보안
2.3.2예제코드실행
2.4클라이언트애플리케이션에서보안이적용된마이크로서비스호출
2.5OAuth2.0권한범위를사용한서비스수준인가수행
2.5.1인가서버에서범위가지정된액세스토큰획득
2.5.2OAuth20범위를사용한마이크로서비스접근보호
요약


2부.외부경계보안

3장.API게이트웨이를사용한클라이언트와내부시스템사이의트래픽보안
3.1마이크로서비스그룹에서API게이트웨이의필요성
3.1.1마이크로서비스에서보안영역분리
3.1.2소비를더어렵게하는마이크로서비스그룹의고유한복잡성
3.1.3외부에노출하지않는게바람직한마이크로서비스의특성
3.2외부경계보안
3.2.1마이크로서비스소비자환경이해
3.2.2접근위임
3.2.3API보호를위해Basic인증을사용해선안되는이유
3.2.4API보호를위해공통전송계층보안을사용해선안되는이유
3.2.5OAuth20을사용해야하는이유
3.3ZuulAPI게이트웨이설치
3.3.1주문처리마이크로서비스컴파일및실행
3.3.2Zuul프록시컴파일및실행
3.3.3Zuul게이트웨이에OAuth20기반보안적용
3.4Zuul과마이크로서비스간의통신보안
3.4.1방화벽으로접근방지
3.4.2mTLS를사용한API게이트웨이와마이크로서비스간의통신보안
요약

4장.단일페이지애플리케이션으로보안을강화한마이크로서비스접근
4.1앵귤러를사용해단일페이지애플리케이션실행
4.1.1앵귤러애플리케이션빌드및실행
4.1.2단일페이지애플리케이션의동작원리살펴보기
4.2CORS구축
4.2.1동일출처정책사용
4.2.2CORS사용
4.2.3교차출처요청을허용하는출발지검사
4.2.4API게이트웨이를리소스서버프록시로운영
4.3OIDC를사용한단일페이지애플리케이션보안
4.3.1OIDC로그인흐름이해
4.3.2애플리케이션코드분석
4.4연합인증사용
4.4.1다수의신뢰도메인들
4.4.2도메인간의신뢰형성
요약

5장.요청제한,모니터링및접근제어수행
5.1Zuul을사용해API게이트웨이로보내지는요청관리
5.1.1할당량기반애플리케이션요청제한
5.1.2사용자를위한공평한사용정책
5.1.3주문처리마이크로서비스에할당량기반요청제한적용
5.1.4마이크로서비스의최대처리용량
5.1.5운영관점에서의요청제한
5.1.6OAuth20토큰및인가처리지점을향한요청제한
5.1.7권한기반요청제한
5.2프로메테우스와그라파나를사용한모니터링및분석
5.2.1주문처리마이크로서비스모니터링
5.2.2프로메테우스메트릭모니터링의동작원리
5.3OPA를사용해API게이트웨이에접근제어정책적용
5.3.1도커컨테이너로OPA실행
5.3.2OPA엔진에데이터제공
5.3.3OPA엔진에접근제어정책제공
5.3.4OPA정책평가
5.3.5OPA사용시참고사항
요약


3부.서비스간통신

6장.인증서를사용해내부시스템(서비스)간의트래픽보호
6.1mTLS를사용하는이유
6.1.1인증기관을이용해클라이언트와서버간에신뢰구축
6.1.2mTLS는클라이언트와서버가서로를식별하도록지원
6.1.3HTTPS는TLS기반으로동작하는HTTP프로토콜
6.2마이크로서비스접근을보호하기위해인증서생성
6.2.1인증기관생성
6.2.2주문처리마이크로서비스에서사용할키생성
6.2.3재고마이크로서비스에서사용할키생성
6.2.4한번의스크립트실행으로필요한모든키생성
6.3TLS를사용해마이크로서비스보호
6.3.1TLS를적용한주문처리마이크로서비스실행
6.3.2TLS를적용한재고마이크로서비스실행
6.3.3TLS를사용해2개의마이크로서비스간통신보호
6.4매력적인mTLS
6.5키관리의어려움
6.5.1키프로비저닝과부트스트래핑신뢰
6.5.2인증서해지
6.6키순환
6.7키사용모니터링
요약

7장JWT를사용한내부시스템(서비스)간의트래픽보호
7.1마이크로서비스보호를위한JWT사용사례
7.1.1공유JWT를사용해마이크로서비스간사용자컨텍스트공유
7.1.2서비스간상호작용을위해새로발급한JWT를사용해사용자컨텍스트공유
7.1.3다른신뢰도메인에속한마이크로서비스와사용자컨텍스트공유
7.1.4자체발급JWT
7.1.5네스티드JWT
7.2JWT를발급하는STS구축
7.3JWT를사용해마이크로서비스보호
7.4접근제어에사용할권한범위출처로JWT사용
7.5JWT를사용해서비스간통신보호
7.6다른aud속성을가진새로운JWT로JWT교환
요약

8장.gRPC를사용한내부시스템(서비스)간의트래픽보호
8.1gRPC를사용한서비스간통신
8.2mTLS를사용해서비스간gRPC통신보호
8.3JWT를사용해서비스간gRPC통신보호
요약

9장.반응형마이크로서비스보호
9.1반응형마이크로서비스를사용하는이유
9.2카프카를메시지브로커로구축
9.3이벤트를카프카토픽에푸시하는마이크로서비스개발
9.4카프카토픽에서이벤트를읽는마이크로서비스개발
9.5TLS를사용해전송데이터보호
9.5.1TLS키와카프카인증서생성및서명
9.5.2카프카서버에TLS설정
9.5.3마이크로서비스에TLS설정
9.6mTLS를사용한인증
9.7접근제어목록을사용해카프카토픽에대한접근제어
9.7.1카프카접근제어목록활성화및클라이언트식별
9.7.2카프카에서접근제어목록정의
9.8NATS를메시지브로커로설정
요약


4부.안전한배포

10장.도커로컨테이너보안정복
10.1도커에서STS실행
10.2도커컨테이너에서시크릿관리
10.2.1도커이미지에포함한시크릿외부화
10.2.2환경변수로시크릿전달
10.2.3도커로배포하는운영환경의시크릿관리방안
10.3도커이미지서명및검증을위해도커컨텐트트러스트사용
10.3.1TUF
10.3.2도커컨텐트트러스트
10.3.3키생성
10.3.4DCT로서명
10.3.5DCT로서명검증
10.3.6DCT가사용하는키유형
10.3.7DCT가클라이언트애플리케이션을리플레이공격으로부터보호하는방법
10.4주문처리마이크로서비스를도커에서실행
10.5제한된권한으로컨테이너실행
10.5.1컨테이너를root외의사용자로실행
10.5.2root사용자의권한삭제
10.6DockerBenchforSecurity실행
10.7도커호스트에대한접근보호
10.7.1도커데몬에원격접근활성화
10.7.2도커API접근을보호하기위해엔진엑스서버에서mTLS활성화
10.8컨테이너이상의보안고려
요약

11장쿠버네티스상의마이크로서비스보안367
11.1쿠버네티스상에서STS실행
11.1.1STS로사용할쿠버네티스디플로이먼트를YAML형식으로정의
11.1.2쿠버네티스에서STS디플로이먼트생성
11.1.3디플로이먼트트러블슈팅
11.1.4쿠버네티스클러스터외부에STS노출
11.2쿠버네티스환경에서시크릿관리
11.2.1컨피그맵을사용한쿠버네티스설정외부화
11.2.2applicationproperties파일을위한컨피그맵정의
11.2.3keystorejks와jwtjks파일을위한컨피그맵정의
11.2.4키저장소자격증명을위한컨피그맵정의
11.2.5kubectl클라이언트로컨피그맵생성
11.2.6쿠버네티스디플로이먼트에서컨피그맵소비
11.2.7초기화컨테이너를사용한키저장소로딩
11.3쿠버네티스시크릿사용
11.3.1모든컨테이너의디폴트토큰시크릿
11.3.2시크릿사용을위해STS업데이트
11.3.3쿠버네티스가시크릿을저장하는방법에대한이해
11.4쿠버네티스에서주문처리마이크로서비스실행
11.4.1주문처리마이크로서비스의컨피그맵/시크릿생성
11.4.2주문처리마이크로서비스의디플로이먼트생성
11.4.3주문처리마이크로서비스의서비스생성
11.4.4종단간흐름테스트

출판사 서평

◈이책에서다루는내용◈

◆마이크로서비스보안개념
◆API게이트웨이로경계지점보호
◆도커,쿠버네티스,이스티오사용과배포
◆코드수준의보안점검
◆HTTP,gRPC,카프카통신


◈이책의대상독자◈

마이크로서비스설계원칙에정통하고자바에대한기본지식이있는개발자를위한책이다.자바개발자가아니더라도C++나C#같은객체지향프로그래밍언어에익숙하고기본적인프로그래밍구조를이해하고있다면이책에서많은것을얻을수있다.온라인상에일부관련문서와블로그게시물이존재하지만이책은모든걸명확하고따르기쉬운형식으로모아뒀기때문에마이크로서비스보안을이해하려는모든사람에게도움을줄수있다.


◈이책의구성◈

이책은5부13장으로구성돼있다.1부는마이크로서비스보안의기본사항을설명한다.
◆1장은마이크로서비스보안이어려운이유와마이크로서비스환경을보호하기위한핵심원칙을설명한다.
◆2장은스프링부트로첫번째마이크로서비스를빌드하고OAuth2.0으로보호하는방법을설명하며OAuth2.0토큰발급자를설정하는방법까지다룬다.

2부는일반적인마이크로서비스환경의경계지점이나진입점에서마이크로서비스를보호하는방법을설명한다.
◆3장은마이크로서비스소비자환경을살펴보고ZuulAPI게이트웨이뒷단의스프링부트마이크로서비스를배포하는방법을설명하며ZuulAPI게이트웨이에OAuth2.0기반보안을적용하는방법까지다룬다.
◆4장은앵귤러(Angular)로단일페이지애플리케이션(SPA)를개발하는방법을설명하며OIDC(OpenIDConnect)로단일페이지애플리케이션을보호하는방법까지다룬다.
◆5장은ZuulAPI게이트웨이에트래픽제한,모니터링및접근제어를적용해4장에서구축한사례를확장하는방법을설명한다.

3부는클라이언트애플리케이션의요청이경계지점의보안정책을통과해마이크로서비스그룹내부로들어간다음마이크로서비스간의상호작용을보호하는프로세스를설명한다.
◆6장은mTLS(상호TLS)로HTTP프로토콜기반마이크로서비스간통신을보호하는방법을설명한다.
◆7장은JWT(JSONWebToken)를사용해마이크로서비스간컨텍스트데이터(예:최종사용자컨텍스트)를공유하는방법을설명한다.
◆8장은mTLS와JWT를사용하는gRPC프레임워크기반마이크로서비스간통신을보호하는방법을설명한다.
◆9장은반응형마이크로서비스를보호하는방법을설명하며카프카를메시지브로커로설치하는방법과카프카토픽에접근제어정책을적용하는방법까지다룬다.

4부는컨테이너화한환경에서마이크로서비스를배포하고보호하는방법을설명한다.
◆10장은도커에마이크로서비스를배포하고mTLS와JWT로마이크로서비스간상호작용을보호하는방법을설명하며도커가내장하고있는몇가지보안기능을다룬다.
◆11장은쿠버네티스에서도커컨테이너로마이크로서비스를배포하고mTLS와JWT로서비스간통신을보호하는방법을설명한다.
◆12장은이스티오서비스메시로마이크로서비스의보안처리부담을전가하는방법을설명한다.
5부는개발프로세스에서보안점검을수행하는방법을설명한다.
◆13장은소나큐브,젠킨스및OWASPZAP으로마이크로서비스를대상으로한보안점검을자동화하는방법을설명한다.