OPA 시작하기 (클라우드 네이티브 애플리케이션과 마이크로서비스를 위한 정책, 권한 엔진)

OPA 시작하기 (클라우드 네이티브 애플리케이션과 마이크로서비스를 위한 정책, 권한 엔진)

$33.58
Description
OPA(Open Policy Agent)는 클라우드 네이티브 애플리케이션과 마이크로서비스 환경에 최적화된 정책 엔진이다. OPA는 현재 존재하는 기술 중에서는 Policy as Code 개념을 가장 잘 구현할 수 있는 수단이며, Policy as Code 개념을 구현하면 정책을 애플리케이션의 다른 부분과 독립적으로 개발 및 유지 보수할 수 있고 빠른 요구사항의 변화에도 용이하게 대응할 수 있다. OPA는 이미 4~5년 전에 등장해 많은 프로젝트에 적용되고 있지만 처음 배우기는 생소하고 어렵다.
한 권 전체를 OPA에 집중하는 최초의 책으로 좀 더 쉽게 OPA를 접할 수 있기를 기대하고 쓴 책이다. 이 책을 통해 OPA를 라이브러리나 별도 서버로 애플리케이션에 통합하는 방법, OPA의 정책 언어 Rego를 활용해 정책을 작성하는 방법, 쿠버네티스 환경 및 마이크로서비스 환경에서 OPA를 적용하는 데 사용할 수 있는 다양한 기술과 사례 등을 배울 수 있다.
저자

이상근

숭실대학교에서컴퓨터공학을전공하고,동대학원에서공학박사학위를받았다.세부전공은분산처리이며,주로분산컴퓨팅아키텍처와워크플로우엔진을연구했다.학업을마치고개발자로10년이상다양한경력을쌓았으며엔터프라이즈잡스케줄러,렌더팜관리시스템,클라우드데이터베이스프로비저닝서비스,빅데이터관련시스템,클라이언트사이드로드밸런싱등다양한개발경험이있다.최근에는클라우드와빅데이터관련여러프로젝트에참여하며,OPA를통해마이크로서비스의정책관리를개선할수있는방안을고민하고있다.

목차

1장.OPA소개
__OPA개요
__OPA의특징
____OPA의장점
________정책을코드로통합
________형식의유연성
________REPL및플레이그라운드지원
________테스트및성능측정의용이성
________정책번들지원
________많은프로젝트에적용돼검증됨
________빠른기능개발속도
________문서화의범위가넓음
____OPA의단점
________전용정책언어Rego의생소함
________프로그래밍언어지원의제약
________데이터베이스등외부저장소미지원
________문서화의디테일부족
__OPA사용사례
________사용자권한관리
________시스템정책및제약사항관리
________API게이트웨이보안
________CI/CD자동화를위한검사도구
________서비스수준정책관리
________정책의통합관리
__OPA관련기술및개념정리
________인증
________권한부여혹은인가
________감사
________RBAC
________ABAC
________JWT
________OAuth2.0
________OpenIDConnect1.0
__OPA사용해보기
__정리


2장.OPA설치및사용
__OPA설치
____리눅스환경
____맥OS환경
____윈도우환경
____설치확인
__VisualStudioCode및OPA플러그인설치
____VisualStudioCode설치
____vscode-opa플러그인설치
__기본적인vscode-opa사용방법
__정리


3장.Rego
__Rego개요
__Rego언어문법개요
__레일로드다이어그램
__Rego모듈
____모듈
____패키지
____임포트
____정책
__기본요소
____스칼라값
________숫자
________문자열
____복합값
________객체
________배열
________집합
____포괄식
________객체포괄식
________집합포괄식
________배열포괄식
__변수및참조
____변수
____참조
____순회
__규칙
____값할당
____값할당의특성
____완전한규칙
____규칙집합
____else문
____규칙의기본값
____규칙의예
____부분규칙
____함수
____구문
____some문
____with문
____표현식
____not문
____중위연산자및중위연산자포함식
____집합연산자
____동등성연산자
________할당연산자
________비교연산자
________단일화연산자
____주석
____예약된이름
__그렇다면main은?
__정리


4장.내장함수
__숫자관련함수
____반올림,내림,올림
____절댓값
____특정범위의정수배열생성
__비트연산
__타입관련함수
____타입이름
____타입확인
____타입변환
__집계함수
____count함수
____sum,product,max,min함수
____all,any함수
__복합값관련함수
____배열관련함수
____집합관련함수
____객체관련함수
________object.get
________object.remove
________object.union
________object.filter
________json.filter
________json.remove
__문자열관련함수
____문자열검사
________contains
________indexof
________startswith,endswith
____문자열포맷
________sprintf
________format_int
________대소문자변환
____문자열조작
________concat
________split
________substring
________replace
________strings.replace_n
____문자열공백제거
________trim_space
________trim,trim_left,trim_right
________trim_prefix,trim_suffix
__정규식관련함수
____regex.is_valid
____regex.match
____regex.split
____regex.globs_match
____regex.template_match
____regex.find_n
____regex.find_all_string_submatch_n
__Glob관련함수
____Glob패턴
____Glob매칭
____이스케이프처리
__HTTP관련함수
__JWT관련함수
____JWT디코딩함수
____JWT서명검증
__정리


5장.OPA를사용한정책구현
__기본시나리오
____시스템정의
____입력스키마정의
____데이터정의
____정책작성
____정책테스트
____디버깅을위한쿼리추적
__API가다중권한을요구하는시나리오
____데이터정의
____정책작성
____정책테스트
__공개API를추가한시나리오
____데이터정의
____정책작성
____정책테스트
__권한계층구조를지원하는시나리오
____데이터정의
____정책작성
____정책테스트
__API계층구조를지원하는시나리오
____데이터정의
____정책작성
____정책테스트
__정리


6장.OPA번들
__OPA번들생성
____OPA번들수동생성
____OPA번들도구
__OPA번들의서명
____HMAC을이용한번들서명및검증
____비대칭키서명을이용한번들서명및검증
____번들서명파일만생성
__정리


7장.OPA통합
__OPARESTAPI서버
____HTTPS로OPA서버실행
__OPARESTAPI서버설정
____OPA설정파일의구조
____REST서버시작시OPA설정적용
__도커및쿠버네티스환경에서실행
____도커환경에서실행
____쿠버네티스환경에서실행
__Go클라이언트라이브러리로애플리케이션에통합
__OPA와외부데이터를연동하는방법
____JWT에기반한방법
____Input오버로딩
____번들
____푸시
____평가시폴링
____데이터베이스를활용해서정책정보관리하기
__정리


8장.모니터링
__프로메테우스를통한OPA서버모니터링
____OPA에서제공하는메트릭정보
____프로메테우스를통한모니터링
____단일쿼리성능모니터링
__OPA서버헬스체크
__OPA서버상태정보및결정로그
____OPA상태정보
____OPA결정로그
____OPA결정로그마스킹
____상태정보및결정로그수집을위한서버구현
____상태정보및결정로그파티션설정
__정리


9장.쿠버네티스환경에서OPA활용
__OPA게이트키퍼
____OPA게이트키퍼개요
____OPA게이트키퍼설치및제거방법
____OPA게이트키퍼제약사항템플릿
____OPA게이트키퍼제약사항
____OPA게이트키퍼동작확인
____OPA게이트키퍼CRD관련명령
__OPA게이트키퍼정책라이브러리
____일반템플릿
____PSP템플릿
__OPA게이트키퍼설정
____데이터복제설정
____네임스페이스열외처리
____웹훅설정
__쿠버네티스환경에서사용가능한그외의도구들
____Conftest
____테라폼에서OPA활용
____opa-kafka-plugin
____opa-envoy-plugin
__정리


10장.OPA확장
__OPA내장함수
____OPA내장함수구현
____OPA내장함수통합
__OPA플러그인
____OPA플러그인구조
____플러그인예제
____플러그인버전설정
____특별한OPA플러그인들
__정리


11장.OPA와웹어셈블리
__OPA의웹어셈블리활용
____웹어셈블리개요
____웹어셈블리지원을통해기대할수있는장점
____OPA웹어셈블리를사용하기위한요구사항
____npm-opa-wasm을통한OPA웹어셈블리모듈적용
__자바를위한OPA웹어셈블리SDK작성
____웹어셈블리SDK요구사항
____자바SDK인터페이스정의
____웹어셈블리런타임연동
____SDKAPI구현
____OPA웹어셈블리자바SDK사용예제
__OPA웹어셈블리SDK와내장함수
____SDK에서구현해야할내장함수확인
____SDK를통해호출할내장함수목록초기화
____내장함수구현예시
____사용자내장함수구현
__정리

출판사 서평

★이책에서다루는내용★

■OPA와관련기술이해
■OPA의정책언어인Rego의문법및OPA규칙작성법
■OPA에서제공하는내장함수
■OPA정책번들생성및서명등정책을패키징하고관리하는방법
■Go클라이언트라이브러리와REST서버를통해OPA를통합하는방법
■OPA를통해API권한관리시나리오를구현하고점진적으로개선해나가는과정
■웹어셈블리SDK를통해Go이외의다양한언어(특히자바)에서OPA를내장하는방법
■플러그인과내장함수를구현해OPA를확장하는방법


★이책의대상독자★

■쿠버네티스기반클라우드네이티브환경과마이크로서비스아키텍처와관련된업무를수행하는개발자,아키텍트,컨설턴트등실무자
■애플리케이션의정책과권한을유지보수가용이하고테스트하기쉽게설계하는방법을알고싶은독자
■PolicyasCode개념이어떻게구현되는지구체적으로알고싶은독자