HOME > Detail View

Detail View

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

Material type
단행본
Personal Author
이상근
Title Statement
OPA 시작하기 : 클라우드 네이티브 애플리케이션과 마이크로서비스를 위한 정책, 권한 엔진 / 이상근 지음
Publication, Distribution, etc
서울 :   에이콘,   2021  
Physical Medium
383 p. : 삽화 ; 24 cm
Series Statement
에이콘 클라우드 컴퓨팅 시리즈
ISBN
9791161755458
General Note
색인수록  
OPA는 "Open Policy Agent"의 약어임  
Subject Added Entry-Topical Term
클라우드 컴퓨팅[cloud computing]
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 에이콘 클라우드 컴퓨팅 시리즈

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 B M
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 M
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 B M
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 M

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: : Aladin

Author Introduction

이상근(지은이)

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

Information Provided By: : Aladin

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를 통해 호출할 내장 함수 목록 초기화
____내장 함수 구현 예시
____사용자 내장 함수 구현
__정리

New Arrivals Books in Related Fields

Forouzan, Behrouz A. (2022)
김효곤 (2022)