Sre를 위한 시스템 설계와 구축 - 1장

KyungJun WooKyungJun Woo
2 min read

신뢰성과 보안

신뢰성

  • 내부 시스템을 얼마나 믿을 수 있는가?

  • 에러시 대처 : “실패 시 개방”하여 팀과 협력해 빠르게 해결

보안

  • 외부의 적으로 부터 안전한가?

  • 공격시 대처 : “실패 시 보안”으로 일부만 알고 안전하고 은밀하게 해결

절충안 -> 실패 시 보안 하되, 다른 방법으로 열 수 있게 허용하기

안전한 시스템의 CIA 3대 조건

기밀성

  • 사용자의 권한에 맞게 보여져야 하는 정보만 보여야 한다.

무결성

  • 시스템에서 다뤄지는 데이터들은 무결해야한다.

가용성

  • 서비스는 그 어떤 상황에서든 이용할 수 있어야 한다.

신뢰성과 보안을 사전 예방 - 리스크 요인

불가시적인 특징

  • 신뢰성과 보안은 긴급 상황이 아니라면 알아채기 어렵다…

  • 하지만 문제가 터지면 지불해야 하는 비용은 상당하다.

시스템이 발전할 수록 복잡도가 증가한다.

  • 복잡도는 대부분 의도치 않게 축적된다.

신뢰성과 보안을 사전 예방 - 액션 플랜

사전 보안성 평가

  • 리스크 기반 접근 법으로 사고시의 기회 비용을 예측하여, 모두의 동의하에 사전에 대응할 수 있는 공감대 형성

간결성

  • 간결한 시스템은 “이해 가능성"을 높여 평균 복구 시간을 줄일 수 있다.

심층 방어

  • 여러 겹의 방어로 민감한 데이터의 방어를 더 견고히할 수 있다. ex) 독립적 암호화 계층

개별적 장애 도메인

  • 일부가 뚫렸어도 다른 곳은 뚫리지 않도록 해야한다. ex) 구글의 지역기반 자격증명

악의적인 내부자에 대한 방어

  • 최소 권한 원칙, 멀티파티 승인

테스트

  • 신뢰성과 보안에 영향을 미치는 예외 상황을 사전에 파악할 수 있는 가장 좋은 방법

  • 서비스 레벨에서의 e2e 테스트 - 카나리 테스트

안정적인 무중단 배포 전략

  • rolling 배포 전략 & blue/green 배포 전략

사후 대응

-> 완벽한 예방과 방어는 절대 불가능, 따라서 장애를 탐지하고 복구하기 위한 대책을 세워야 한다.

시스템 조사와 로깅

  • 올바른 로깅은 장애 탐지와 대처를 위한 기본

  • 통상 로그에는 인증 자격 증명이나 사용자 식별 정보 같은 민감한 정보를 담으면 안됨 (로그 자체가 공격자의 목표가 되기 때문)

위기 대응을 위한 사전 계획

  • 사고의 조짐은 사전에 있다.

  • 상황이 발생하기 전에 미리 계획을 세워두고 명령 체계를 명확히 하고 견고한 체크리스트와 지침서, 프로토콜을 갖추는 것이 기본

0
Subscribe to my newsletter

Read articles from KyungJun Woo directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

KyungJun Woo
KyungJun Woo