AI VIDEO BRIEFING

제로 트러스트란 무엇인가: AWS 내부 API 구축으로 배우는 신원 증명 기반 보안 아키텍처

사내 네트워크에 들어왔다는 이유만으로 접근을 허용하는 관행이 침해 확산의 통로가 된다. DynamoDB·Lambda·API Gateway로 제로 트러스트 내부 API를 만드는 과정을 따라가며 핵심 원리 네 가지를 정리했다.

"네트워크 안에 있다"는 이유로 신뢰하지 않는다 — 제로 트러스트 5분 정리 영상 대표 이미지

핵심 메시지

  • 대형 침해 사고 상당수는 시스템이 '뚫려서'가 아니라 누군가가 '신뢰받아서' 확산된다. 피싱당한 노트북 하나, 유출된 비밀번호 하나면 공격자도 내부자와 똑같은 자동 신뢰를 물려받는다.
  • 제로 트러스트의 규칙은 단순하다. 네트워크 안에 있다는 사실은 아무것도 보장하지 않으며, 모든 요청은 매번 자신이 누구인지 암호학적으로 증명해야 한다.
  • 보호는 데이터 자체에서 시작한다. API를 만들기 전에 저장 데이터를 암호화해 '길'이 아니라 '내용물'을 지키는 것이 첫 번째 원칙이다.
  • 최소 권한은 침해 시 피해 반경을 미리 제한하는 장치다. 조회만 가능한 역할을 쓰면 코드가 탈취돼도 데이터 변경·삭제는 물리적으로 불가능하다.
  • 같은 머신, 같은 네트워크, 같은 URL로 보낸 두 요청이 서명 유무만으로 200과 403으로 갈린다는 점이 제로 트러스트가 작동한다는 증거다.

쉽게 이해하기

사무실에서 사내 네트워크에 접속하거나 VPN을 연결하는 순간 무슨 일이 벌어지는지 생각해 보자. 내부 위키가 열리고, 파일 공유가 마운트되고, 사내 도구들이 응답한다. 그 뒤로는 아무도 당신이 누구인지 다시 묻지 않는다. 안에 들어왔으니 신뢰받는 것이다. KodeKloud의 이 영상은 바로 이 관행이 공격자가 노리는 지점이라고 지적한다. 뉴스에 나오는 침해 사고 대부분은 무언가가 해킹당해서가 아니라 누군가가 신뢰받아서 퍼진다는 것이다.

영상은 이 거래를 끝내는 아키텍처를 AWS 위에 직접 만들어 보인다. 보호할 대상은 사내 재고 정보를 담은 DynamoDB 테이블이고, 그 안에는 상태가 '일급비밀'인 항목 하나가 심어져 있다. 여기서 첫 번째 원칙이 등장한다. API를 한 줄도 만들기 전에 저장 데이터를 암호화해 두면, 하부 저장장치를 통째로 손에 넣더라도 바이트는 쓸모가 없다. 지켜야 할 것은 데이터로 가는 길이 아니라 데이터 자체다.

테이블을 읽는 Lambda 함수에는 DynamoDB에 대해 읽기 전용 IAM 역할만 부여한다. 이 함수는 재고를 조회할 수는 있어도 변경하거나 삭제하는 것이 구조적으로 불가능하다. 공격자가 이 코드를 장악해도 피해 반경은 이미 상한이 정해져 있는 셈이다. 그 앞단에 API Gateway를 두고, 해당 메서드의 인가 방식을 '없음'에서 AWS IAM으로 바꾸는 것이 이 구성에서 가장 결정적인 스위치다. 이 순간부터 모든 요청은 실제 자격 증명으로 생성한 암호학적 서명을 지참해야 하며, 서명이 없으면 게이트웨이가 403으로 응답하고 Lambda는 깨어나지도 않는다.

반대편에는 자신을 증명해야 하는 클라이언트가 있다. VPC와 퍼블릭 서브넷을 만들고 그 안에 작은 EC2 인스턴스를 띄우는데, 주목할 점은 무엇을 주지 않는가다. SSH 키 페어를 아예 발급하지 않고 인스턴스 커넥트로 접속하므로 유출될 키도, 탈취될 비밀번호도 없다. 대신 이 머신이 받는 것은 API Gateway 호출 권한 하나뿐인 IAM 역할, 즉 신원이다. 여기서 VPC는 격리와 트래픽 통제를 제공할 뿐이며, 그 안에 있다는 사실만으로 얻는 권한은 전혀 없다.

마지막은 두 번의 요청으로 증명된다. 클라이언트에서 파이썬 스크립트를 실행하면 인스턴스에 자동으로 발급된 역할의 임시 자격 증명을 집어 서명 버전 4로 요청에 서명한다. 서명된 요청은 게이트웨이 검증을 통과해 200과 함께 일급비밀 항목을 받아온다. 같은 요청을 서명 없이 보내면 게이트웨이에서 403으로 죽는다. 머신도 네트워크도 URL도 동일하고, 차이는 오직 '누가 묻는지에 대한 증명'뿐이다.

주요 인사이트

  • 제로 트러스트의 핵심은 도구가 아니라 전제의 전환이다. 위치(네트워크 내부)를 권한의 근거로 삼던 것을 신원 증명으로 바꾸는 것이며, 이 전환 없이는 어떤 보안 제품을 붙여도 내부 확산 문제는 남는다.
  • 인가를 API Gateway 단에서 처리하면 인증되지 않은 트래픽이 애플리케이션 코드에 도달조차 하지 못한다. 검증을 앞단으로 밀어낼수록 공격 표면과 비용이 함께 줄어든다.
  • SSH 키를 발급하지 않는 선택은 불편을 감수한 절충이 아니라 위험 자체를 제거하는 설계다. 존재하지 않는 자격 증명은 유출될 수 없다.
  • 임시 자격 증명을 자동으로 받아 서명하는 방식은 하드코딩된 키를 없앤다. 코드나 저장소에 남는 장기 비밀이 사라지면 유출 사고의 대표적 경로 하나가 통째로 닫힌다.
  • 최소 권한은 사고를 막는 장치라기보다 사고의 크기를 미리 정해두는 장치다. 침해를 전제하고 설계할 때 가장 먼저 손댈 수 있는 항목이기도 하다.

자주 묻는 질문

제로 트러스트에서 VPC는 왜 여전히 필요한가?

격리와 트래픽 통제를 위해서다. 다만 예전 모델에서처럼 VPC 자체가 보안이 되지는 않는다. 영상은 VPC 안에 있다는 사실만으로 머신이 얻는 권한은 전혀 없으며, 데이터에 닿을 수 있는 이유는 위치가 아니라 증명 가능한 신원이라고 설명한다.

서명된 요청과 서명 없는 요청은 어떻게 갈리나?

클라이언트는 인스턴스에 부여된 역할의 임시 자격 증명으로 서명 버전 4 서명을 만들어 요청에 담는다. 게이트웨이가 서명을 검증해 허용된 신원임을 확인하면 200과 데이터를 돌려주고, 서명이 없으면 같은 머신·네트워크·URL이라도 게이트웨이에서 403으로 차단된다.

저장 데이터 암호화를 왜 가장 먼저 다루나?

지켜야 할 대상이 접근 경로가 아니라 데이터 자체이기 때문이다. DynamoDB가 데이터를 암호화해 두면 하부 물리 저장장치를 확보하더라도 그 바이트는 쓸모가 없다. 영상은 API를 만들기도 전에 적용되는 첫 번째 제로 트러스트 원칙으로 이를 제시한다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식

#제로트러스트#AWS보안#IAM#최소권한#API보안