000 | 00000cam c2200205 c 4500 | |
001 | 000046103411 | |
005 | 20220204105618 | |
007 | ta | |
008 | 220104s2021 ulka 001c kor | |
020 | ▼a 9791161755458 ▼g 93000 | |
035 | ▼a (KERIS)BIB000015912631 | |
040 | ▼a 222003 ▼c 222003 ▼d 211009 | |
082 | 0 4 | ▼a 004.6782 ▼2 23 |
085 | ▼a 004.6782 ▼2 DDCK | |
090 | ▼a 004.6782 ▼b 2021z5 | |
100 | 1 | ▼a 이상근 |
245 | 1 0 | ▼a OPA 시작하기 : ▼b 클라우드 네이티브 애플리케이션과 마이크로서비스를 위한 정책, 권한 엔진 / ▼d 이상근 지음 |
246 | 3 | ▼a 오피에이 시작하기 |
260 | ▼a 서울 : ▼b 에이콘, ▼c 2021 | |
300 | ▼a 383 p. : ▼b 삽화 ; ▼c 24 cm | |
490 | 1 0 | ▼a 에이콘 클라우드 컴퓨팅 시리즈 |
500 | ▼a 색인수록 | |
500 | ▼a OPA는 "Open Policy Agent"의 약어임 | |
650 | 8 | ▼a 클라우드 컴퓨팅[cloud computing] |
830 | 0 | ▼a 에이콘 클라우드 컴퓨팅 시리즈 |
Holdings Information
No. | Location | Call Number | Accession No. | Availability | Due Date | Make a Reservation | Service |
---|---|---|---|---|---|---|---|
No. 1 | Location Science & Engineering Library/Sci-Info(Stacks1)/ | Call Number 004.6782 2021z5 | Accession No. 121258932 | Availability Available | Due Date | Make a Reservation | Service |
No. 2 | Location Sejong Academic Information Center/Science & Technology/ | Call Number 004.6782 2021z5 | Accession No. 151357778 | Availability Available | Due Date | Make a Reservation | Service |
No. | Location | Call Number | Accession No. | Availability | Due Date | Make a Reservation | Service |
---|---|---|---|---|---|---|---|
No. 1 | Location Science & Engineering Library/Sci-Info(Stacks1)/ | Call Number 004.6782 2021z5 | Accession No. 121258932 | Availability Available | Due Date | Make a Reservation | Service |
No. | Location | Call Number | Accession No. | Availability | Due Date | Make a Reservation | Service |
---|---|---|---|---|---|---|---|
No. 1 | Location Sejong Academic Information Center/Science & Technology/ | Call Number 004.6782 2021z5 | Accession No. 151357778 | Availability Available | Due Date | Make a Reservation | Service |
Contents information
Book Introduction
OPA(Open Policy Agent)는 클라우드 네이티브 애플리케이션과 마이크로서비스 환경에 최적화된 정책 엔진이다. OPA는 현재 존재하는 기술 중에서는 Policy as Code 개념을 가장 잘 구현할 수 있는 수단이며, Policy as Code 개념을 구현하면 정책을 애플리케이션의 다른 부분과 독립적으로 개발 및 유지 보수할 수 있고 빠른 요구사항의 변화에도 용이하게 대응할 수 있다. OPA는 이미 4~5년 전에 등장해 많은 프로젝트에 적용되고 있지만 처음 배우기는 생소하고 어렵다.
한 권 전체를 OPA에 집중하는 최초의 책으로 좀 더 쉽게 OPA를 접할 수 있기를 기대하고 쓴 책이다. 이 책을 통해 OPA를 라이브러리나 별도 서버로 애플리케이션에 통합하는 방법, OPA의 정책 언어 Rego를 활용해 정책을 작성하는 방법, 쿠버네티스 환경 및 마이크로서비스 환경에서 OPA를 적용하는 데 사용할 수 있는 다양한 기술과 사례 등을 배울 수 있다.
★ 이 책에서 다루는 내용 ★
■ OPA와 관련 기술 이해
■ OPA의 정책 언어인 Rego의 문법 및 OPA 규칙 작성법
■ OPA에서 제공하는 내장 함수
■ OPA 정책 번들 생성 및 서명 등 정책을 패키징하고 관리하는 방법
■ Go 클라이언트 라이브러리와 REST 서버를 통해 OPA를 통합하는 방법
■ OPA를 통해 API 권한 관리 시나리오를 구현하고 점진적으로 개선해 나가는 과정
■ 웹어셈블리 SDK를 통해 Go 이외의 다양한 언어(특히 자바)에서 OPA를 내장하는 방법
■ 플러그인과 내장함수를 구현해 OPA를 확장하는 방법
★ 이 책의 대상 독자 ★
■ 쿠버네티스 기반 클라우드 네이티브 환경과 마이크로서비스 아키텍처와 관련된 업무를 수행하는 개발자, 아키텍트, 컨설턴트 등 실무자
■ 애플리케이션의 정책과 권한을 유지보수가 용이하고 테스트하기 쉽게 설계하는 방법을 알고 싶은 독자
■ Policy as Code 개념이 어떻게 구현되는지 구체적으로 알고 싶은 독자
Information Provided By: :

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

Table of Contents
1장. OPA 소개 __OPA 개요 __OPA의 특징 ____OPA의 장점 ________정책을 코드로 통합 ________형식의 유연성 ________REPL 및 플레이그라운드 지원 ________테스트 및 성능 측정의 용이성 ________정책 번들 지원 ________많은 프로젝트에 적용돼 검증됨 ________빠른 기능 개발 속도 ________문서화의 범위가 넓음 ____OPA의 단점 ________전용 정책 언어 Rego의 생소함 ________프로그래밍 언어 지원의 제약 ________데이터베이스 등 외부 저장소 미지원 ________문서화의 디테일 부족 __OPA 사용 사례 ________사용자 권한 관리 ________시스템 정책 및 제약사항 관리 ________API 게이트웨이 보안 ________CI/CD 자동화를 위한 검사 도구 ________서비스 수준 정책 관리 ________정책의 통합 관리 __OPA 관련 기술 및 개념 정리 ________인증 ________권한 부여 혹은 인가 ________감사 ________RBAC ________ABAC ________JWT ________OAuth 2.0 ________OpenID Connect 1.0 __OPA 사용해 보기 __정리 2장. OPA 설치 및 사용 __OPA 설치 ____리눅스 환경 ____맥 OS 환경 ____윈도우 환경 ____설치 확인 __Visual Studio Code 및 OPA 플러그인 설치 ____Visual Studio Code 설치 ____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 통합 __OPA REST API 서버 ____HTTPS로 OPA 서버 실행 __OPA REST API 서버 설정 ____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 인터페이스 정의 ____웹 어셈블리 런타임 연동 ____SDK API 구현 ____OPA 웹 어셈블리 자바 SDK 사용 예제 __OPA 웹 어셈블리 SDK와 내장 함수 ____SDK에서 구현해야 할 내장 함수 확인 ____SDK를 통해 호출할 내장 함수 목록 초기화 ____내장 함수 구현 예시 ____사용자 내장 함수 구현 __정리