공동 책임 모델은 이 한 문장으로 요약된다.
AWS는 "클라우드 자체(OF the cloud)"의 보안을, 고객은 "클라우드 안(IN the cloud)"의 보안을 책임진다.
임대 아파트에 비유하면 이렇다.
온프레미스 시절에는 이런 그림이 필요 없었다. 건물부터 코드까지 전부 우리 책임이었기 때문이다. 그런데 클라우드로 옮기면 일부는 AWS가, 일부는 고객이 맡게 된다. 여기서 위험한 착각이 생긴다.
"AWS가 알아서 다 지켜 주겠지."
실제로 클라우드에서 발생하는 보안 사고의 상당수는 AWS 인프라가 뚫려서가 아니라, 고객이 자기 몫을 설정하지 않아서 일어난다. 저장소를 실수로 전체 공개해 두거나, 관리자 열쇠를 아무 데나 흘리거나, 방화벽을 전 세계에 열어 두는 식이다. 공동 책임 모델은 **"어디까지가 내 몫인지 착각하지 말라"**는 경고문에 가깝다.
렌터카로 바꿔 봐도 같다.
| 렌터카 | 클라우드 |
|---|---|
| 정비·검사·리콜 대응은 렌터카 회사 | 하드웨어·시설·가상화는 AWS |
| 안전벨트 매기, 문 잠그기, 과속 안 하기는 운전자 | IAM 설정, 암호화, 방화벽 규칙은 고객 |
| 차 안에 두고 내린 귀중품은 운전자 책임 | 저장한 데이터와 그 공개 범위는 고객 책임 |
| 브레이크 결함으로 난 사고는 회사 책임 | 물리 인프라 결함은 AWS 책임 |
⚠️ 함정: 공동 책임 모델을 "보안 업무를 반씩 나눠 갖는다"로 이해하면 틀린다. 겹치는 구간 없이 층으로 갈라져 있다. 아래층(시설·하드웨어·가상화)은 전부 AWS, 위층(내가 올린 것과 설정)은 전부 고객이다. 그리고 층 자체가 서비스 종류에 따라 위아래로 움직인다는 점이 이 모델의 핵심이다.
AWS는 서비스를 돌리는 기반 인프라를 책임진다. 고객이 손댈 수 없고, 손댈 필요도 없는 영역이다.
| AWS가 책임지는 것 | 설명 |
|---|---|
| 물리적 시설(데이터센터) | 건물 출입 통제, 경비, 화재·전력·냉방 |
| 하드웨어 | 서버, 스토리지, 네트워크 장비 |
| 가상화(하이퍼바이저) | 가상 서버를 돌리는 기반 소프트웨어 |
| 글로벌 네트워크 인프라 | 리전·AZ를 잇는 네트워크 |
한마디로 콘크리트 바닥부터 가상화 계층까지가 AWS의 영역이다.
여기에는 고객이 아예 볼 수도, 손댈 수도 없는 것들이 들어간다. 데이터센터 주소도 공개되지 않고, 서버실에 들어가 볼 수도 없으며, 하이퍼바이저 설정을 바꿀 수도 없다. **"고객이 손댈 수 없는 것 = AWS 책임"**이라는 감각을 잡아 두면 문항 대부분이 정리된다.
💡 개념: AWS 문서는 이를 **"Security OF the Cloud"**라고 부른다. 반대로 고객 몫은 **"Security IN the Cloud"**다. 시험에서는 이 영어 문구가 보기 그대로 등장하는 경우가 많으니, 한국어 해석뿐 아니라 of / in이라는 전치사 하나로 갈린다는 사실을 기억하자.
of= 클라우드라는 시설 그 자체(AWS),in= 그 안에 내가 넣어 둔 것(고객).
고객은 AWS가 제공한 기반 위에 자기가 올려 놓고 설정하는 모든 것을 책임진다.
| 고객이 책임지는 것 | 설명 |
|---|---|
| 데이터 | 어떤 데이터를 둘지, 어떻게 분류·암호화할지 |
| IAM(사용자·권한) | 누구에게 무슨 권한을 줄지 |
| 게스트 OS 패치(EC2) | 가상 서버의 운영체제 보안 업데이트 |
| 네트워크/방화벽 설정 | 보안 그룹 등 접근 규칙 |
| 애플리케이션 보안 | 직접 만든 앱 코드의 취약점 |
💡 관련 이론: "데이터, 그리고 누가 접근할 수 있는지(IAM)"는 어떤 서비스를 쓰든 항상 고객 책임이다. AWS가 인프라를 아무리 안전하게 만들어도, 고객이 비밀번호를 약하게 설정하거나 데이터를 아무에게나 공개하면 사고가 난다. 이 두 가지는 절대 AWS가 대신해 주지 않는다.
공동 책임 모델의 경계선은 고정된 게 아니라, 어떤 서비스를 쓰느냐에 따라 위아래로 움직인다. 더 "관리형(managed)"인 서비스를 쓸수록 고객 책임은 줄어든다.
고객 책임 많음 ↑ AWS 책임 많음 ↑
┌──────────────────────────────────────┐
│ EC2 (가상 서버, IaaS) │ OS 패치·앱·설정 모두 고객
│ RDS (관리형 데이터베이스) │ DB 엔진 패치는 AWS, 데이터·권한은 고객
│ S3 / Lambda (완전 관리형) │ 데이터 분류·권한만 고객, 나머지 AWS
└──────────────────────────────────────┘
고객 책임 적음 ↓ AWS 책임 적음 ↓
서비스별로 경계선이 어떻게 움직이는지 항목 단위로 보면 훨씬 선명해진다.
| 항목 | EC2 | RDS | S3 / Lambda |
|---|---|---|---|
| 물리 시설·하드웨어 | AWS | AWS | AWS |
| 가상화(하이퍼바이저) | AWS | AWS | AWS |
| 게스트 OS 설치·패치 | 고객 | AWS | AWS(고객은 볼 일도 없음) |
| 데이터베이스 엔진 패치 | 고객(직접 설치했다면) | AWS | 해당 없음 |
| 백업 수행 | 고객(설정·운영) | AWS가 기능 제공, 고객이 설정 | AWS가 내구성 관리, 고객이 정책 설정 |
| 애플리케이션 코드 | 고객 | 고객 | 고객 |
| 방화벽·접근 규칙 | 고객(보안 그룹) | 고객 | 고객(권한 정책) |
| 데이터 분류·암호화 선택 | 고객 | 고객 | 고객 |
| IAM 사용자·권한 | 고객 | 고객 | 고객 |
표를 세로로 훑어보면 규칙이 보인다.
💡 관련 이론: "서비스의 추상화 수준이 올라갈수록 고객 책임은 위로 좁아진다"는 원칙으로 기억하면 모든 문제가 풀린다. 같은 일을 EC2 → RDS → Lambda로 옮길수록 고객이 신경 쓸 부분이 줄어든다. 단, 데이터와 권한(IAM)만큼은 어느 단계에서도 고객 몫으로 남는다.
📚 사례: 사내 데이터베이스를 클라우드로 옮긴다고 하자. 방법은 두 가지다. ① EC2에 직접 데이터베이스를 설치하는 방법 — 익숙한 방식 그대로 쓸 수 있고 세부 설정도 마음대로지만, OS 패치·DB 엔진 패치·백업 스크립트·장애 대응이 전부 고객 몫이다. ② RDS 같은 관리형 서비스를 쓰는 방법 — 세부 통제는 줄어들지만 패치와 백업 같은 반복 운영 업무를 AWS가 맡는다. 같은 데이터베이스인데 팀이 야근할 일의 양이 달라진다. 시험에서 "운영 부담을 줄이고 싶다", "패치 관리를 하고 싶지 않다"는 지문이 나오면 답은 관리형 서비스다.
"공동 책임 모델"이라는 이름 때문에 보안 이야기로만 생각하기 쉽지만, 실제로는 운영 전반이 같은 방식으로 나뉜다.
| 영역 | AWS 쪽 | 고객 쪽 |
|---|---|---|
| 패치 | 인프라와 관리형 서비스의 소프트웨어 | 고객이 다루는 게스트 OS와 애플리케이션 |
| 구성(설정) | 서비스가 안전한 기본값으로 동작하도록 제공 | 실제로 어떤 값으로 설정할지 결정 |
| 인식 교육 | AWS 직원에 대한 교육 | 자기 조직 구성원에 대한 교육 |
| 규정 준수 | 인프라가 각종 인증·감사 기준을 충족하도록 관리 | 그 위에 올린 워크로드가 기준을 지키는지 책임 |
특히 규정 준수는 오해가 많다. "AWS가 인증을 받았으니 우리 서비스도 자동으로 준수된다"고 생각하면 틀린다. AWS가 보장하는 것은 기반 인프라 수준이고, 그 위에서 데이터를 어떻게 다루는지는 여전히 고객의 몫이다. 이런 구조를 **"규정 준수의 상속(inheritance)"**이라고 부른다 — 아래 계층의 준수 결과를 물려받되, 위 계층은 스스로 지켜야 한다.
💡 개념: 고객은 감사나 심사를 받을 때 "AWS 인프라가 어떤 기준을 충족하는지"를 증빙해야 할 때가 있다. AWS는 이런 규정 준수 보고서를 고객이 직접 받아 볼 수 있는 창구를 제공하는데, 그 서비스가 AWS Artifact다. 이름 정도만 알아 두면 충분하다.
시험에서 헷갈리게 만드는 보기들을 미리 정리해 두자.
| 항목 | 누구 책임? | 이유 |
|---|---|---|
| 데이터센터 출입 통제 | AWS | 물리적 시설 보안 |
| 하이퍼바이저(가상화) 보안 | AWS | 기반 인프라 |
| EC2 게스트 OS 패치 | 고객 | 고객이 올린 OS |
| 보안 그룹(방화벽) 설정 | 고객 | 고객이 설정하는 네트워크 규칙 |
| 데이터 암호화 정책 | 고객 | 항상 고객 책임 |
| IAM 사용자·권한 부여 | 고객 | 항상 고객 책임 |
경계선이 움직인다는 말에 흔들리지 않으려면, 절대 안 움직이는 것부터 외워 두는 편이 빠르다.
언제나 고객 책임 (외워야 할 목록)
언제나 AWS 책임 (외워야 할 목록)
⚠️ 함정: 암호화는 보기에서 가장 자주 낚는 항목이다. AWS는 "암호화할 수 있는 기능과 도구"를 제공하지만, 그 기능을 켤지 말지, 어떤 데이터에 적용할지 정하는 것은 고객이다. "AWS가 모든 데이터를 자동으로 암호화해 준다" 같은 보기는 오답으로 보면 된다. 마찬가지로 백업도 AWS가 기능을 주지만 정책을 정하는 건 고객이다.
📚 사례: 저장소를 실수로 전체 공개 설정해 두어 내부 자료가 인터넷에 노출되는 사고는 클라우드에서 드물지 않게 보고된다. 이때 AWS 인프라는 아무 문제 없이 정상 동작했다. 스토리지는 고객이 요청한 대로 "누구나 읽을 수 있게" 공개했을 뿐이다. 공동 책임 모델로 보면 접근 권한 설정은 고객 책임이므로 이 사고는 명백히 고객 영역이다. 아파트 비유로 돌아가면, 건물 현관은 멀쩡했는데 세입자가 자기 집 문을 열어 둔 상황이다.
공동 책임 모델 문항은 "이 항목은 누구 책임인가" 또는 "이런 상황에서 고객이 해야 할 일은"의 두 형태가 대부분이다.
| 문항에 이런 표현이 보이면 | 답은 이쪽 |
|---|---|
| "데이터센터 출입 통제", "경비", "물리 보안" | AWS |
| "서버·디스크 교체", "하드웨어 유지보수", "장비 폐기" | AWS |
| "하이퍼바이저", "가상화 계층" | AWS |
| "리전·AZ 간 네트워크 회선" | AWS |
| "RDS의 DB 엔진 패치", "관리형 서비스의 OS 패치" | AWS |
| "EC2 인스턴스의 운영체제 업데이트" | 고객 |
| "보안 그룹 규칙", "어떤 포트를 열지" | 고객 |
| "누구에게 어떤 권한을 줄지", "MFA 설정", "액세스 키 관리" | 고객 |
| "어떤 데이터가 민감한지 분류" | 고객 |
| "저장 데이터를 암호화할지 결정·설정" | 고객 |
| "직접 개발한 애플리케이션의 취약점" | 고객 |
| "운영 부담을 줄이고 패치를 맡기고 싶다" | 관리형 서비스로 이전 |
| "Security OF the cloud" | AWS |
| "Security IN the cloud" | 고객 |
빠르게 판단하는 요령은 두 가지다.
헷갈리는 짝들도 한 번 정리하고 넘어가자.
| 짝 | 구분 |
|---|---|
| 암호화 기능 제공 vs 암호화 적용 결정 | 기능은 AWS가 제공, 켤지 말지는 고객이 결정 |
| 관리형 서비스의 엔진 패치 vs EC2의 OS 패치 | 앞은 AWS, 뒤는 고객 |
| 물리 네트워크(회선·장비) vs 논리 네트워크(보안 그룹·접근 규칙) | 앞은 AWS, 뒤는 고객 |
| 인프라의 규정 준수 인증 vs 내 워크로드의 규정 준수 | 앞은 AWS, 뒤는 고객 |
| 저장 장치의 물리적 파기 vs 데이터의 삭제·보존 정책 | 앞은 AWS, 뒤는 고객 |
다음 글에서는 AWS가 "좋은 클라우드 설계란 무엇인가"를 정리한 Well-Architected Framework의 6대 기둥을 본다.
AWS는 "클라우드라는 건물"을, 고객은 "그 안에 넣어 둔 것"을 지킨다.
선택지를 클릭하면 정답·해설이 펼쳐집니다.
문제 1
공동 책임 모델에서 AWS가 책임지는 영역을 가장 잘 설명한 것은?
문제 2
EC2 가상 서버를 운영할 때 고객의 책임에 해당하는 것은?
문제 3
어떤 AWS 서비스를 쓰든 항상 고객의 책임으로 남는 것은?
문제 4
같은 작업을 EC2에서 Lambda 같은 완전 관리형 서비스로 옮기면 책임 경계는 어떻게 변하는가?
문제 5
다음 중 AWS가 아니라 고객이 책임지는 항목은?