본문 바로가기

추천 검색어

실시간 인기 검색어

OPA 시작하기

클라우드 네이티브 애플리케이션과 마이크로서비스를 위한 정책, 권한 엔진
클라우드 컴퓨팅, 소프트웨어 아키텍처
이상근 저자(글)
에이콘출판 · 2021년 07월 27일
0.0
10점 중 0점
(0개의 리뷰)
평가된 감성태그가
없습니다
  • OPA 시작하기 대표 이미지
    OPA 시작하기 대표 이미지
  • A4
    사이즈 비교
    210x297
    OPA 시작하기 사이즈 비교 189x235
    단위 : mm
01 / 02
MD의 선택 무료배송 이벤트 소득공제
10% 29,700 33,000
적립/혜택
1,650P

기본적립

5% 적립 1,650P

추가적립

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 1,650P
  • 리뷰 작성 시, e교환권 추가 최대 300원
배송안내
무료배송
배송비 안내
국내도서/외국도서
도서 포함 15,000원 이상 구매 시 무료배송
도서+사은품 또는 도서+사은품+교보Only(교보굿즈)

15,000원 미만 시 2,500원 배송비 부과

교보Only(교보배송)
각각 구매하거나 함께 20,000원 이상 구매 시 무료배송

20,000원 미만 시 2,500원 배송비 부과

해외주문 서양도서/해외주문 일본도서(교보배송)
각각 구매하거나 함께 15,000원 이상 구매 시 무료배송

15,000원 미만 시 2,500원 배송비 부과

업체배송 상품(전집, GIFT, 음반/DVD 등)
해당 상품 상세페이지 "배송비" 참고 (업체 별/판매자 별 무료배송 기준 다름)
바로드림 오늘배송
업체에서 별도 배송하여 1Box당 배송비 2,500원 부과

1Box 기준 : 도서 10권

그 외 무료배송 기준
바로드림, eBook 상품을 주문한 경우, 플래티넘/골드/실버회원 무료배송쿠폰 이용하여 주문한 경우, 무료배송 등록 상품을 주문한 경우
내일(2/27,목) 도착
기본배송지 기준
배송일자 기준 안내
로그인 : 회원정보에 등록된 기본배송지
로그아웃 : '서울시 종로구 종로1' 주소 기준
로그인정확한 배송 안내를 받아보세요!

이달의 꽃과 함께 책을 받아보세요!

1권 구매 시 결제 단계에서 적용 가능합니다.

알림 신청하시면 원하시는 정보를
받아 보실 수 있습니다.

이 책의 이벤트

해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

키워드 Pick

키워드 Pick 안내

관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.

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

이 책의 시리즈 (27)

작가정보

저자(글) 이상근

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

작가의 말

2020년 3월경, 마이크로서비스의 권한 및 정책 부분을 설계하기 위해 기술 검토를 하던 중 처음으로 OPA를 접했다. 그 전에는 OPA를 쿠버네티스 환경에서 일부 검증을 할 때 사용할 수 있는 기술이라고 단편적으로 알고 있었다. 그러나 조사할수록 쿠버네티스 환경뿐만 아니라 마이크로서비스 기반 애플리케이션의 권한이나 정책을 구현할 때에도 범용으로 사용 가능한 기술임을 확실하게 느낄 수 있었다.
OPA를 적용하면서 OPA를 자세히 다룬 책이 있는지도 찾아봤지만 책의 한 장이나 부록으로 몇 페이지 다루는 책은 있어도 필요한 내용을 충분히 다룬 책은 찾을 수 없었다. 그래서 OPA 활용에 필요한 내용을 충분히 알려주는 책을 기획하게 됐다. 항상 최신 클라우드 기술에 관련된 책들은 해외에서 먼저 출판되는 사례가 많은데 OPA는 해외에서 책이 출판되기 전에 국내에 소개하겠다는 작은 목표를 세웠다.
처음에는 마이크로서비스 환경에서 애플리케이션의 정책/권한 부분에만 집중하려고 했다. 하지만 쿠버네티스 환경에서도 널리 활용되는 기술이므로 관련 내용을 꼭 포함하면 좋겠다는 의견을 주신 분이 많아 관련 내용을 보강했다. 결과적으로 옳은 의견이었고, 의견 주신 분들께 감사드린다.
OPA를 접하고 가장 놀라웠던 점은 커뮤니티 버전과 상용 버전의 기능이 차별화되는 일반적인 오픈소스들과 달리 OPA의 핵심 코드뿐만 아니라 OPA와 함께 사용할 수 있는 좋은 도구들도 함께 오픈소스로 공개된다는 점이었다. 이뿐만 아니라 OPA를 사용하다가 해결이 잘 되지 않는 문제가 있다면 Styra사에서 운영하는 OPA 슬랙 채널에서 물어보면 친절한 답변을 얻을 수 있을 것이다. 지면을 빌어 OPA와 관련 도구들을 자유롭게 사용할 수 있도록 공개해 준 Styra사에 감사를 전하고 싶다.
마이크로서비스 아키텍처의 관점에서 OPA를 논하자면, OPA는 정책/권한이라는 중요하고 특별한 도메인을 담당하는 기술이라고 할 수 있다. 마이크로서비스 아키텍처를 구성하는 모든 도메인에서 도메인 전용 언어(DSL)를 정의한다면 혼란스럽겠지만 정책이라는 도메인은 전용의 DSL을 가질 자격이 충분할 만큼 중요한 도메인이다. 정책의 별도 분리를 통해 서비스가 비즈니스 요건에 따라 계속 정책 변경을 요구하더라도 유연한 대처가 가능하다.
또 보안의 관점에서 보면 흔히 암호화와 통신 프로토콜 등에 우선 집중하게 되지만 많은 보안 사고는 정책의 설정이 잘못돼 발생한다. 수년 전 미국 트럼프 대통령의 당선 과정에서 문제가 됐던 캠브리지 애널리티카 사건의 경우도 페이스북의 보안 프로토콜이 해킹 당한 문제가 아닌 정보의 접근 권한이 잘못 설정된 문제였다.
클라우드 네이티브의 관점에서 일단 OPA 자체가 Go 언어로 개발돼 단일 바이너리로 컴파일되는 쿠버네티스 환경에서 컨테이너로 동작하기에 효율적인 형태로 개발됐다. OPA를 Go 클라이언트 라이브러로 사용할 수도 있고, 사이드카로 파드에 컨테이너와 함께 패키징할 수도 있으며, 별도의 REST 서버로도 동작시킬 수 있다. 또 정책을 번들로 패키징해서 여러 서비스에 효율적으로 동기화할 수 있는 수단도 제공한다.
클라우드 네이티브 애플리케이션과 마이크로서비스 아키텍처는 2~3년 전만해도 복잡하기만 하고 실용적이지 않다는 의심도 많이 받았지만, 현재는 그런 단계를 지나 안정적으로 정착되고 대세가 되고 있는 것 같다. 독자들이 OPA를 계속 배우다 보면 Policy as Code 개념을 배우고 있다는 것을 깨닫게 될 것이다. 결국 마이크로서비스와 클라우드 네이티브 환경에 적합한 권한 관리는 이런 형태일 수밖에 없겠다는 느낌도 받을 것이다.
책을 쓰는 과정에서 알 수 없는 버그를 만나 OPA 소스 코드를 살펴보기도 하고, 공식 문서의 내용과 다른 부분에 혼란스럽기도 했으며 자바를 위한 간단한 웹어셈블리 SDK도 만들어 봤다. 이런 힘든 과정을 마치고 책을 출판할 수 있었던 이유는 OPA가 유용한 기술인 이유도 있지만 무엇보다 배우고 적용해 보는 과정이 재밌고 흥미로웠기 때문이다.
독자들도 이러한 흥미를 느낄 수 있을 때까지 처음의 낯섦과 지루함을 조금만 견딜 수 있다면 많은 것을 얻을 수 있을 것으로 기대한다. 그 과정에서 이 책이 도움이 되기를 바란다.

목차

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

출판사 서평

★ 이 책에서 다루는 내용 ★

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


★ 이 책의 대상 독자 ★

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

기본정보

상품정보 테이블로 ISBN, 발행(출시)일자 , 쪽수, 크기, 총권수, 시리즈명을(를) 나타낸 표입니다.
ISBN 9791161755458
발행(출시)일자 2021년 07월 27일
쪽수 384쪽
크기
189 * 235 * 26 mm / 884 g
총권수 1권
시리즈명
클라우드 컴퓨팅, 소프트웨어 아키텍처

Klover 리뷰 (0)

구매 후 리뷰 작성 시, e교환권 200원 적립

Klover리뷰를 작성해 보세요.

문장수집 (0)

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여주는 교보문고의 새로운 서비스입니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 "좋아요“ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보 없이 삭제될 수 있습니다.
리워드 안내
구매 후 90일 이내에 문장수집 작성 시 e교환권 100원을 적립해드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
판매가 5,000원 미만 상품의 경우 리워드 지급 대상에서 제외됩니다. (2024년 9월 30일부터 적용)

구매 후 리뷰 작성 시, e교환권 100원 적립

이 책의 첫 기록을 남겨주세요.

교환/반품/품절 안내

  • 반품/교환방법

    마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환 신청, [1:1 상담 > 반품/교환/환불] 또는 고객센터 (1544-1900)
    * 오픈마켓, 해외배송 주문, 기프트 주문시 [1:1 상담>반품/교환/환불] 또는 고객센터 (1544-1900)
  • 반품/교환가능 기간

    변심반품의 경우 수령 후 7일 이내,
    상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
  • 반품/교환비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
  • 반품/교환 불가 사유

    1) 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
    2) 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
    3) 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
    4) 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
    5) 디지털 컨텐츠인 ebook, 오디오북 등을 1회이상 ‘다운로드’를 받았거나 '바로보기'로 열람한 경우
    6) 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
    7) 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
    8) 세트상품 일부만 반품 불가 (필요시 세트상품 반품 후 낱권 재구매)
    9) 기타 반품 불가 품목 - 잡지, 테이프, 대학입시자료, 사진집, 방통대 교재, 교과서, 만화, 미디어전품목, 악보집, 정부간행물, 지도, 각종 수험서, 적성검사자료, 성경, 사전, 법령집, 지류, 필기구류, 시즌상품, 개봉한 상품 등
  • 상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
  • 소비자 피해보상 환불 지연에 따른 배상

    1) 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
    2) 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

TOP