본문으로 건너뛰기

보안

보안(Security) 기둥은 “위협으로부터 시스템과 데이터를 보호하면서도, 비즈니스에 필요한 가치를 계속 전달할 수 있는 능력"을 다룹니다. 단일 방어선에 의존하지 않고 여러 겹의 방어를 쌓는 것이 핵심 사고방식입니다.

심층 방어 (Defense in Depth)

하나의 보안 장치가 뚫려도 다음 겹이 막아주는 구조를 설계합니다. 예를 들어 웹 애플리케이션 하나를 보호하는 데도 다음과 같이 여러 겹을 쌓습니다.

  1. 네트워크 경계: 보안 그룹, NACL, WAF로 악성 트래픽을 1차 차단
  2. 자격 증명 경계: IAM 역할과 정책으로 누가 무엇에 접근할 수 있는지 제한
  3. 애플리케이션 경계: 입력 검증, 인증/인가 로직
  4. 데이터 경계: KMS 암호화로 설령 데이터가 유출되어도 무의미한 암호문만 노출

이 중 하나라도 빠지면 다른 모든 겹이 강해도 전체 방어선이 약해집니다.

최소 권한 (Least Privilege)

IAM의 핵심 원칙은 “필요한 권한만, 필요한 기간만” 부여하는 것입니다. 실무에서 자주 어기는 패턴과 대안은 다음과 같습니다.

  • * 와일드카드로 모든 리소스에 접근 가능한 정책 대신, 구체적인 리소스 ARN을 명시
  • 장기 액세스 키 대신 IAM 역할과 임시 자격 증명(STS) 사용
  • 사람 사용자에게도 가능하면 IAM Identity Center로 SSO를 통한 임시 권한 부여
  • 정기적으로 IAM Access Analyzer로 사용되지 않는 권한을 찾아 제거

데이터 보호: 저장 시와 전송 중 암호화

데이터는 두 가지 상태에서 모두 보호해야 합니다.

  • 저장 데이터(At Rest): S3, EBS, RDS 등에서 KMS 키로 암호화. 키 정책으로 누가 복호화할 수 있는지 엄격히 통제
  • 전송 중 데이터(In Transit): TLS로 클라이언트-서버 간, 서비스 간 통신을 암호화. ACM(Certificate Manager)으로 인증서를 자동 발급/갱신

사고 대응 준비

보안 사고는 “발생하지 않기를 바라는 것"이 아니라 “발생했을 때 빠르게 대응할 수 있도록 미리 준비하는 것"이 현실적인 접근입니다. GuardDuty와 Security Hub로 탐지 체계를 갖추고, 사고 발생 시 격리할 계정/리소스를 사전에 정의한 자동화된 대응 플레이북(예: EventBridge + Lambda로 침해된 IAM 자격 증명 자동 비활성화)을 준비해두는 것이 권장됩니다.

SAA 연결: 이 보안 원칙들을 실제 아키텍처에 적용하는 구체적인 사례는 SAA: 보안 아키텍처에서 다룹니다. SAP 수준에서 GuardDuty, Security Hub, Config를 조직 전체에 적용하는 방법은 SAP 도메인 1: 보안 제어 규정을 참고하세요.