보안, 규정 준수, ID 핵심 개념

SC-900 대비 Zero Trust, 심층 방어, 공유 책임 모델, 인증/인가, 페더레이션, SSO 등 보안 핵심 개념을 정리합니다.

Azure SC-900 보안 기초: Zero Trust, 심층 방어, 공유 책임 모델

클라우드 보안을 처음 배우는 분들을 위해, 이 글에서는 Microsoft Azure 보안의 핵심 개념들을 일상적인 언어로 설명합니다. 시험을 준비하든, 클라우드 보안에 대한 이해를 넓히고 싶든, 이 글이 좋은 출발점이 될 것입니다.

 

Zero Trust 모델: "아무도 믿지 마라"

예전에는 회사 건물에 들어가기만 하면 내부 직원으로 신뢰받았습니다. 한 번 출입증으로 문을 통과하면, 내부에서는 비교적 자유롭게 돌아다닐 수 있었죠. 하지만 이 방식에는 큰 구멍이 있습니다. 누군가 출입증을 훔치거나, 내부 직원이 나쁜 마음을 먹는다면요?

Zero Trust(제로 트러스트)는 이 생각을 완전히 뒤집습니다. "일단 건물 안에 들어왔으니 믿는다"가 아니라, 매번, 모든 행동마다 "당신이 정말 맞는지, 이 행동을 할 자격이 있는지" 확인하는 방식입니다.

Zero Trust의 3가지 핵심 원칙

첫 번째 원칙: 명시적으로 확인하라 (Verify Explicitly)

매번 접근할 때마다 신원을 확인합니다. 누가 접속하는지, 어디서 접속하는지, 어떤 기기를 사용하는지, 언제 접속하는지 등 가능한 모든 정보를 종합하여 판단합니다. "한 번 로그인했으면 하루 종일 믿는다"는 개념이 없습니다.

두 번째 원칙: 최소 권한 사용 (Use Least Privilege)

마트에서 계산원이 마트 전체 재고 시스템에 접근할 필요는 없습니다. 계산에 필요한 것만 접근할 수 있으면 됩니다. 마찬가지로, 사용자나 시스템에게는 그 업무에 꼭 필요한 최소한의 권한만 줍니다. 필요 이상의 권한은 위험의 씨앗이 됩니다.

세 번째 원칙: 위반을 가정하라 (Assume Breach)

"우리 시스템은 절대 뚫리지 않는다"는 안일함을 버립니다. 언제든 공격받을 수 있다고 전제하고, 피해를 최소화하기 위해 시스템을 작은 구역으로 나눕니다. 한 구역이 뚫려도 다른 구역은 안전하도록 설계합니다.

!Zero Trust의 핵심 원칙 3가지

왜 Zero Trust가 중요한가

과거에는 회사 네트워크 안이면 안전하다고 여겼습니다. 하지만 지금은 직원들이 카페에서, 집에서, 해외에서도 일합니다. 클라우드 서비스를 씁니다. 전통적인 "네트워크 경계" 개념이 무너진 것입니다. Zero Trust는 바로 이 현실에 맞게 설계된 보안 철학입니다.

 

심층 방어 (Defense-in-Depth): 양파처럼 겹겹이

성을 방어할 때 외벽 하나만 믿는 것은 위험합니다. 외벽이 뚫리면 끝이니까요. 그래서 중세 성들은 외벽, 해자(못), 두 번째 성벽, 망루, 내성... 이렇게 여러 겹의 방어선을 쌓았습니다.

심층 방어(Defense-in-Depth)는 바로 이 원리를 IT 보안에 적용한 것입니다. 하나의 보안 장치에만 의존하지 않고, 여러 겹의 보안 계층을 쌓아 공격자가 하나를 뚫더라도 다음 장벽에 막히도록 합니다.

7개 보안 계층

가장 바깥 계층부터 안으로 들어가면:

물리적 보안 (Physical Security) 데이터센터에 물리적으로 침입하지 못하도록 합니다. 잠금장치, 경비원, 보안카메라, 출입 통제 등입니다. 아무리 훌륭한 소프트웨어 보안도 서버실에 누군가가 들어와 하드디스크를 빼내면 의미가 없습니다.

신원 및 액세스 (Identity and Access) 누가 무엇에 접근할 수 있는지 제어합니다. 멀티팩터 인증(MFA), 조건부 액세스 등이 여기에 속합니다.

경계 (Perimeter) DDoS 공격처럼 네트워크 수준의 대규모 공격을 막습니다. Azure DDoS Protection 같은 서비스가 이 역할을 합니다.

네트워크 (Network) 네트워크 내부에서의 이동을 제한합니다. 어떤 서버가 어떤 서버와 통신할 수 있는지 규칙을 정합니다. NSG(네트워크 보안 그룹)가 이 역할을 합니다.

컴퓨팅 (Compute) 가상머신, 컨테이너 등 실제 컴퓨팅 자원을 보호합니다. 불필요한 포트를 닫고, 패치를 최신으로 유지합니다.

애플리케이션 (Application) 애플리케이션 코드 자체의 보안입니다. SQL 인젝션, XSS 같은 공격을 방어하고, 비밀번호와 API 키를 안전하게 관리합니다.

데이터 (Data) 가장 안쪽, 가장 중요한 계층입니다. 데이터 자체를 암호화하고, 접근을 엄격히 제한합니다. 모든 보안 노력의 궁극적 목표는 데이터를 지키는 것입니다.

 

공유 책임 모델: 집주인과 세입자처럼

집을 빌릴 때를 생각해보세요. 건물 구조, 옥상 방수, 배관 같은 것은 집주인이 관리합니다. 하지만 가구 배치, 창문 잠금, 귀중품 관리는 세입자의 책임이죠.

클라우드도 마찬가지입니다. Microsoft(집주인)와 고객(세입자)이 각각 어떤 부분을 책임지는지 명확하게 나누어져 있습니다. 이것이 공유 책임 모델입니다.

서비스 유형별 책임 구분

온프레미스 (On-premises): 고객이 모든 것을 관리합니다. 서버, 네트워크, 운영체제, 애플리케이션, 데이터 모두요. 자기 집을 직접 짓고 관리하는 것과 같습니다.

IaaS (Infrastructure as a Service): Azure가 물리적 인프라(서버, 네트워크, 스토리지)를 책임집니다. 고객은 운영체제부터 그 위의 모든 것을 관리합니다. 예: Azure Virtual Machines

PaaS (Platform as a Service): Azure가 인프라와 운영체제, 런타임까지 관리합니다. 고객은 애플리케이션과 데이터만 책임집니다. 예: Azure App Service, Azure SQL Database

SaaS (Software as a Service): Azure가 거의 모든 것을 관리합니다. 고객은 데이터와 사용자 접근 관리만 책임집니다. 예: Microsoft 365

항상 고객 책임인 것

서비스 유형과 무관하게, 고객이 항상 책임져야 하는 것들이 있습니다: 데이터 기기(PC, 스마트폰 등) 계정 및 사용자 접근 관리

 

CIA 3요소: 보안의 세 기둥

건강의 세 요소를 몸, 마음, 영혼이라고 한다면, 정보 보안의 세 요소는 기밀성, 무결성, 가용성입니다.

기밀성 (Confidentiality)

허가받은 사람만 정보에 접근할 수 있어야 합니다. 병원 진료 기록은 환자와 담당 의사만 볼 수 있어야 하고, 회사 급여 정보는 인사팀과 해당 직원만 알아야 합니다.

기밀성을 지키는 방법: 암호화(데이터를 알아볼 수 없게 변환), 접근 제어(권한 있는 사람만 접근), 인증(신원 확인).

무결성 (Integrity)

정보가 허가 없이 변경되지 않아야 합니다. 병원에서 의사가 처방한 약의 용량이 누군가에 의해 몰래 변경된다면? 재앙이 될 수 있습니다. 데이터는 원본 그대로여야 합니다.

무결성을 지키는 방법: 해시(데이터에 고유한 지문을 남겨 변경 감지), 디지털 서명, 변경 이력 관리.

가용성 (Availability)

필요할 때 정보와 시스템을 사용할 수 있어야 합니다. 아무리 안전해도 사용할 수 없다면 의미가 없습니다. 병원 응급실 시스템이 다운되면 환자의 생명이 위험할 수 있습니다.

가용성을 지키는 방법: 이중화(백업 시스템 운영), 재해 복구 계획, DDoS 방어.

 

GRC: 조직이 보안을 체계적으로 관리하는 방법

회사가 교통 법규를 지키고, 안전벨트를 매고, 음주운전을 금지하는 이유는 단순히 법 때문만이 아닙니다. 사고를 예방하고, 사고가 나도 피해를 줄이고, 법적 문제를 피하기 위해서입니다. GRC도 비슷한 개념입니다.

거버넌스 (Governance)

조직이 어떻게 의사결정을 하고, 목표를 달성하기 위해 어떤 정책과 규칙을 따르는지에 관한 것입니다. 보안 정책 수립, 역할과 책임 정의, 보안 방향 설정 등이 포함됩니다.

위험 관리 (Risk Management)

어떤 위협이 있고, 그 위협이 실제로 발생할 가능성은 얼마나 되며, 발생하면 얼마나 큰 피해를 줄지 평가하는 것입니다. 위험을 파악하면 어디에 투자해야 할지 판단할 수 있습니다.

규정 준수 (Compliance)

블로그 목록으로 돌아가기