AWS 마이크로서비스 보안 [AWS에서 마이크로서비스를 안전하게 운영하기 위한 보안 설계]
- 원서명Security and Microservice Architecture on AWS: Architecting and Implementing a Secured, Scalable Solution (ISBN 9781098101466)
- 지은이고라브 라제(Gaurav Raje)
- 옮긴이박상영
- ISBN : 9791161758237
- 40,000원
- 2024년 03월 08일 펴냄
- 페이퍼백 | 536쪽 | 188*235mm
- 시리즈 : 해킹과 보안
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/security-msa-aws
요약
이전에 수립한 많은 레거시 보안 정책이 클라우드 컴퓨팅과 마이크로서비스가 제공하는 이점을 감안하지 못하고 있다. 이를 개선하고자 마이크로서비스 아키텍처와 AWS 클라우드의 특성을 모두 고려해, AWS 기반 마이크로서비스에서 발생 가능한 위험을 완화할 수 있는 보안 통제 방법을 AWS가 제공하는 서비스와 도구를 활용해 설명한다.
추천의 글
“저자는 최신 애플리케이션 아키텍처의 세 가지 중요 주제인 클라우드, 마이크로서비스 및 보안을 한 권의 책에서 모두 다루는 훌륭한 결과물을 내놓았다. 비즈니스를 위해 최신 디지털 애플리케이션을 구축하고 운영하는 모든 사람에게 이 책을 적극 추천한다.”
이 책에서 다루는 내용
클라우드 시스템에서 동작하는 마이크로서비스를 설계하는 조직에서 보안 이슈는 우선순위가 낮아 나중에 고려하는 경우가 대부분이다. 오늘날 대부분의 기업은 잠재적인 보안 위협에 노출돼 있지만 사전 대응보다는 사후 대응에 주력하고 있다. 이로 인해 만들어지는 시스템은 구현하기 어렵고 관리 및 확장이 훨씬 더 불편하면서 복잡하다. 저자는 오버헤드를 늘리지 않으면서도 AWS에서 매우 안전한 시스템을 구축하는 방법을 이 책을 통해 설명한다.
AWS 경험을 가진 클라우드 솔루션 아키텍트와 소프트웨어 개발자에게 적합한 실용적인 도서로서, 높은 수준의 아키텍처 및 설계에 관한 논의로 시작해 개발 및 운영 경험을 손상시키지 않는 범위에서 클라우드에서 솔루션을 구현하는 방법을 설명한다. AWS 공동 책임 모델을 활용해 얻을 수 있는 장점은 다음과 같다.
◆ 마이크로서비스로 금융, 의료 및 법률 분야의 다양한 규제를 간단하고도 쉽게 준수할 수 있는 모듈형 아키텍처 개발
◆ 악의적인 행위자로부터 마이크로서비스를 보호하는 데 사용할 수 있는 다양한 AWS 기반 보안 통제 도입
◆ 모듈화한 아키텍처를 활용해 개별 마이크로서비스에서 보안 메커니즘을 독립적으로 확장
◆ 개발 팀의 자율성이나 효율성을 손상시키지 않으면서 보안 태세 개선
이 책의 대상 독자
아마도 여러분은 AWS에 마이크로서비스 시스템을 구현하고 나서 갑자기 시스템을 보호해야 할 필요를 깨달았거나 보안을 중요한 요소로 고려하는 산업계에 재직 중일 수도 있다. 또는 여태껏 개발된 적이 없는 애플리케이션을 개발하는 과정 중에 마이크로서비스를 막 발견한 사람일지도 모른다. 아니면 마이크로서비스를 사용하는 회사에 입사해 보안 측면의 모범 사례를 따르고 있는지를 궁금해하고 있거나 다양한 유형의 클라우드 설계 패턴을 배우고 AWS가 클라우드 환경에서 제공하는 도구에 관한 추가 정보를 찾는 데 관심이 있는 사람일 수도 있다. 당신이 어떤 사람인지는 중요하지 않다. 누구든지 이 책을 통해 새로운 지식을 배울 것이라 확신한다.
목차
목차
- 1장. 클라우드 기반 마이크로서비스 소개
- 클라우드 정보 보안의 기초
- 위험과 보안 통제
- 조직의 보안 정책
- 보안 사고와 보안의 3요소
- AWS 공동 책임 모델
- 클라우드 아키텍처와 보안
- 모듈화를 통한 보안
- 단순화를 통한 보안
- AWS의 완전 관리형 서비스를 통한 보안
- 폭발 반경과 격리
- 심층 방어와 보안
- 경계 보호를 통한 보안
- 제로 트러스트 아키텍처를 통한 보안
- 소프트웨어 아키텍처에 대한 간략한 소개
- 계층형 아키텍처
- 도메인 주도 설계
- 마이크로서비스
- AWS에서 마이크로서비스 구현
- 컨테이너 기반 마이크로서비스 아키텍처
- 쿠버네티스의 매우 간략한 소개
- 서비스형 함수: AWS 람다를 사용한 FaaS
- 클라우드 마이크로서비스 구현 개요
- 아마존 EKS
- 아마존 EKS Fargate 모드
- AWS 람다를 사용한 서비스형 함수
- 마이크로서비스 구현 요약
- 마이크로서비스 통신 패턴 예
- 예제 1: 콘텍스트 간 단순 메시지 전달
- 예제 2: 메시지 큐
- 예제 3: 이벤트 기반 마이크로서비스
- 요약
- 클라우드 정보 보안의 기초
- 2장. 인가와 인증 기초
- AWS IAM의 기초
- AWS의 권한 주체
- IAM 정책
- 최소 권한의 원칙
- 최소 권한의 원칙과 폭발 반경
- AWS IAM 정책의 구조
- 권한 주체 기반 정책
- 리소스 기반 정책
- 신뢰 영역
- 정책 평가
- AWS IAM 정책의 고급 개념
- IAM 정책 조건
- AWS 태그와 속성 기반 접근 통제
- Not 정책 요소: NotPrincipal 및 NotResource
- IAM 정책 마무리
- 역할 기반 접근 통제
- 역할 기반 접근 통제 모델링
- 역할 보호
- 역할 수임
- AWS CLI를 사용한 역할 수임
- AWS 관리 콘솔을 사용한 역할 전환
- 서비스 연결 역할
- 인증 및 신원 관리
- 인증의 기초
- AWS의 자격증명 연동
- SAML 2.0과 OpenID Connect를 사용한 자격증명 연동
- 역할 기반 접근 통제와 마이크로서비스
- 실행 역할
- AWS 람다를 사용한 역할 기반 접근 통제
- EC2와 인스턴스 메타데이터 서비스로 역할 기반 접근 통제
- 서비스 계정이 필요로 하는 IAM 역할을 사용하는 아마존 EKS로 역할 기반 접근 통제
- 요약
- AWS IAM의 기초
- 3장. 암호화의 기초
- 암호화의 간략한 개요
- AWS에서 암호화의 중요성
- 마이크로서비스 아키텍처에서 암호화의 중요성
- AWS에서의 암호화
- 키 기반 암호화의 보안 문제
- 비즈니스 문제
- AWS KMS
- CMK를 사용한 기본 암호화
- 봉투 암호화
- 봉투 암호화 부연 설명
- 보안과 AWS KMS
- KMS 콘텍스트 및 추가 인증 데이터
- 키 정책
- Grants와 ViaService
- CMK와 CMK의 구성 요소 및 지원되는 작업
- 리전과 KMS
- 비용, 복잡성, 규제 고려
- 비대칭 암호화와 KMS
- 암호화와 복호화
- 디지털 서명(서명과 검증)
- 도메인 주도 설계와 AWS KMS
- 콘텍스트 경계와 암호화
- 계정과 CMK 공유
- KMS와 네트워크 고려 사항
- KMS grant 재논의
- KMS 계정과 토폴로지: 통합
- 옵션 1: 경계 콘텍스트 내에 CMK 포함
- 옵션 2: 전용 계정을 생성해 CMK 보유
- AWS 시크릿 매니저
- 시크릿 매니저의 작동 방식
- AWS 시크릿 매니저의 비밀 값 보호
- 요약
- 암호화의 간략한 개요
- 4장. 저장된 데이터 보안
- 데이터 분류 기초
- KMS를 사용한 봉투 암호화 요약
- AWS S3
- AWS S3의 데이터 암호화
- 버킷 정책을 사용한 S3 접근 통제
- 아마존 GuardDuty
- Glacier 저장소 잠금을 사용한 부인 방지
- 컴퓨팅 서비스에 저장된 데이터 보안
- AWS CodeGuru를 사용한 정적 코드 분석
- AWS ECR
- AWS 람다
- AWS EBS
- AWS에서 제공하는 도구 요약
- 마이크로서비스 데이터베이스 시스템
- AWS DynamoDB
- 아마존 오로라 관계형 데이터 서비스
- 미디어와 데이터 삭제
- 요약
- 5장. 네트워크 보안
- AWS 네트워킹
- 통제
- 모놀리식과 마이크로서비스 모델에 대한 이해
- 세분화와 마이크로서비스
- 소프트웨어 정의 네트워크 파티션
- 서브넷팅
- 서브넷 내에서의 라우팅
- 게이트웨이와 서브넷
- 퍼블릭 서브넷
- 프라이빗 서브넷
- 서브넷과 가용 영역
- 서브넷에서 인터넷 접근
- VPC
- VPC 내에서의 라우팅
- 네트워크 계층에서 마이크로세분화
- VPC 간 통신
- VPC 피어링
- AWS Transit Gateway
- VPC 엔드포인트
- VPC 간 통신 요약
- 클라우드 환경의 방화벽
- 보안 그룹
- 보안 그룹 참조(체인) 및 설계
- 보안 그룹의 속성
- 네트워크 ACL
- 보안 그룹과 네트워크 ACL 비교
- 컨테이너와 네트워크 보안
- 인스턴스 메타데이터 서비스 접근 차단
- 파드를 프라이빗 서브넷에서 실행
- 파드의 인터넷 접근 차단
- 파드 간에 암호화된 네트워킹 사용
- 람다와 네트워크 보안
- 요약
- AWS 네트워킹
- 6장. 대외 공개 서비스
- API 우선 설계와 API Gateway
- AWS API Gateway
- API Gateway 엔드포인트 유형
- API Gateway 보안
- API Gateway 통합
- API Gateway 접근 제어
- API Gateway 인프라 보안
- AWS API Gateway 사용 시 비용 고려 사항
- 배스천 호스트
- 해결책
- 정적 자산 배포(콘텐츠 전송 네트워크)
- AWS CloudFront
- 서명된 URL과 쿠키
- AWS Lambda@Edge
- 엣지 네트워크를 알려진 공격으로부터 보호
- AWS WAF
- AWS Shield와 AWS Shield Advanced
- 마이크로서비스와 AWS Shield Advanced
- 엣지 보호를 위한 비용 고려 사항
- 요약
- 7장. 전송 보안
- TLS 기초
- 디지털 서명
- 인증서, 인증기관, 신원 검증
- TLS 암호화
- 마이크로서비스 환경의 TLS 종료와 종료 지점별 장단점
- TLS 오프로딩과 종료
- 전송 암호화 적용 시 발생 비용과 복잡성
- 마이크로서비스에 TLS 적용
- 메시지 큐(AWS SQS) 사용 시 전송 암호화 적용
- gRPC와 애플리케이션 로드밸런서
- mTLS
- 서비스 메시에 대한 보안 관점의 간략한 소개
- 프록시와 사이드카
- App Mesh 구성 요소와 용어
- TLS와 App Mesh
- mTLS 재논의
- AWS App Mesh 요약
- 서버리스 마이크로서비스와 전송 암호화
- AWS API 게이트웨이와 AWS 람다
- 캐싱, API 게이트웨이, 전송 암호화
- 필드 수준 암호화
- 요약
- TLS 기초
- 8장. 조직의 복잡성을 고려한 보안 설계
- 조직 구조와 마이크로서비스
- 콘웨이의 법칙
- 단일 팀 지향 서비스 아키텍처
- 역할 기반 접근 통제
- 권한 상승
- 권한 경계
- 책임을 위임하기 위한 권한 경계
- 대규모 조직을 위한 AWS 계정 구조
- AWS 계정과 팀
- AWS Organizations
- 조직 단위와 서비스 제어 정책
- 목적 기반 계정
- 조직 관리를 위한 AWS 도구
- AWS Organizations 모범 사례
- AWS Resource Access Manager
- AWS RAM을 사용한 공유 서비스
- IAM Identity Center를 사용한 AWS SSO
- 계정에 멀티팩터 인증 적용
- 역할 기반 접근 통제, SSO, AWS Organizations를 사용한 복잡한 도메인 기반 조직 단순화
- 요약
- 조직 구조와 마이크로서비스
- 9장. 모니터링과 사고 대응
- 미국 국립 표준 기술원 사고 대응 프레임워크
- 단계 1: 설계 및 준비
- 단계 2: 탐지 및 분석
- 단계 3: 억제 및 격리
- 단계 4: 포렌식 분석
- 단계 5: 재발 방지
- 단계 6: 사후 활동
- 보안 인프라 보호
- CloudTrail 보안
- 목적 기반 계정
- 요약
- 미국 국립 표준 기술원 사고 대응 프레임워크
- 부록 A. 테라폼 클라우드에 대한 짧은 소개
- 부록 B. AWS와의 연동을 지원하는 SAML 자격증명 공급자의 예
- 부록 C. AWS KMS를 사용한 암호화 실습
- 부록 D. 최소 권한의 원칙 적용 실습