Zero Trust란 무엇인가? AWS와 Google Cloud에 적용하는 제로트러스트 보안 구조 알아보기

기업의 서버와 서비스가 기존의 내부 네트워크 중심에서 Cloud 환경으로 이동하면서 보안 구조 역시 크게 변화하고 있습니다.

과거에는 회사 내부 네트워크와 외부 인터넷을 구분하고 내부에 접속한 사용자나 장비를 어느 정도 신뢰하는 방식이 일반적이었습니다.

하지만 AWS, Google Cloud, Kubernetes, SaaS 등 다양한 환경이 연결되면서 단순히 내부와 외부를 구분하는 것만으로는 충분한 보안 구조를 만들기 어려워졌습니다.

이러한 환경에서 중요하게 등장한 보안 개념이 Zero Trust입니다.

Zero Trust란?

Zero Trust는 이름 그대로 기본적으로 아무것도 신뢰하지 않고 접근 요청이 발생할 때마다 검증하는 보안 모델입니다.

기존 보안 구조에서는 특정 네트워크 내부에 접속했다면 신뢰할 수 있는 사용자라고 판단하는 경우가 많았습니다.

Zero Trust에서는 네트워크 위치만으로 사용자를 신뢰하지 않습니다.

사용자의 Identity, Device 상태, 접근하려는 Resource, 현재 위치와 접근 조건 등을 확인한 후 필요한 권한만 제공합니다.

핵심 원칙을 간단하게 표현하면 다음과 같습니다.

Never Trust

Always Verify

Least Privilege

즉, 기본적으로 신뢰하지 않고 지속적으로 확인하며 필요한 최소한의 권한만 제공하는 것입니다.

기존 보안 방식과 Zero Trust의 차이

기존 네트워크 보안은 회사 내부와 외부를 구분하는 경계 중심의 보안 구조를 많이 사용했습니다.

외부 인터넷
→ Firewall
→ 내부 Network
→ Server

이 방식에서는 Firewall을 통과하여 내부 네트워크에 들어온 사용자나 장비를 상대적으로 신뢰하게 됩니다.

반면 Zero Trust에서는 내부 네트워크에 접속했다고 해서 자동으로 신뢰하지 않습니다.

사용자
→ Identity 확인
→ Device 확인
→ 접근 정책 확인
→ 최소 권한 확인
→ Resource 접근
→ 지속적인 Monitoring

따라서 공격자가 특정 계정이나 장비를 확보하더라도 다른 시스템으로 자유롭게 이동하기 어렵도록 설계할 수 있습니다.

Cloud 환경에서 Zero Trust가 중요한 이유

Cloud 환경에서는 서버가 하나의 사내 네트워크에만 존재하지 않습니다.

AWS EC2에서 애플리케이션을 운영하면서 Amazon S3를 사용하고, API Gateway와 Lambda를 연결하고, Kubernetes Cluster를 함께 운영하는 구조도 흔합니다.

또한 개발자와 관리자는 회사뿐 아니라 외부 환경에서도 Cloud Resource에 접근할 수 있습니다.

이런 환경에서는 단순히 IP 주소나 내부 네트워크 여부만으로 접근 권한을 결정하기 어렵습니다.

따라서 사용자 Identity와 Resource 권한을 중심으로 보안 정책을 구성하는 Zero Trust 방식이 중요해집니다.

AWS에서 Zero Trust 적용하기

AWS에서도 다양한 서비스를 조합하여 Zero Trust 구조를 구성할 수 있습니다.

가장 기본이 되는 것은 IAM입니다.

IAM을 이용하면 사용자, Role, Service별로 접근할 수 있는 AWS Resource와 Action을 세밀하게 제한할 수 있습니다.

예를 들어 개발자가 Amazon S3를 사용해야 한다고 해서 모든 S3 Bucket에 대한 전체 권한을 제공할 필요는 없습니다.

필요한 Bucket과 작업에 대해서만 권한을 제공하는 방식으로 Least Privilege 원칙을 적용할 수 있습니다.

여기에 MFA를 적용하면 계정 인증 보안을 더욱 강화할 수 있습니다.

AWS 환경에서는 다음과 같은 요소를 함께 고려할 수 있습니다.

IAM 기반 Identity 및 권한 관리

MFA를 통한 추가 인증

Least Privilege Policy 적용

VPC와 Security Group을 통한 Network 접근 제한

CloudTrail을 통한 API 활동 기록

CloudWatch를 이용한 Monitoring

각 서비스를 별도로 사용하는 것보다 사용자 인증부터 Resource 접근, 기록과 Monitoring까지 전체 흐름을 하나의 보안 구조로 설계하는 것이 중요합니다.

Google Cloud에서 Zero Trust 적용하기

Google Cloud 역시 Identity 중심의 접근 제어 구조를 지원합니다.

대표적으로 Cloud IAM을 이용하여 사용자와 서비스 계정별 Resource 접근 권한을 관리할 수 있습니다.

또한 Identity-Aware Proxy(IAP)를 이용하면 애플리케이션에 접근하는 사용자의 Identity를 확인하고 접근을 제어할 수 있습니다.

VPC Service Controls를 이용하면 중요한 Cloud Resource 주변에 추가적인 보안 경계를 구성하여 데이터 접근 범위를 제한할 수도 있습니다.

Google의 BeyondCorp 역시 Zero Trust와 밀접한 개념입니다.

기존 VPN 중심의 접근 방식에서 벗어나 사용자와 Device의 Identity 및 상태를 확인하여 서비스 접근 여부를 판단하는 구조입니다.

Zero Trust는 제품 하나로 구축되지 않는다

Zero Trust를 이해할 때 가장 중요한 부분입니다.

Zero Trust는 특정 보안 프로그램이나 솔루션 하나를 설치한다고 완성되는 구조가 아닙니다.

Identity

Authentication

Authorization

Network

Device

Application

Logging

Monitoring

이러한 여러 보안 요소를 함께 설계해야 합니다.

따라서 Zero Trust는 하나의 제품이라기보다 전체 인프라에 적용하는 보안 원칙과 Architecture에 가깝습니다.

Kubernetes에서도 Zero Trust를 적용할 수 있을까?

가능합니다.

Kubernetes에서는 하나의 Cluster 안에서도 모든 Pod와 Service가 서로 신뢰할 수 있다고 가정하지 않는 방향으로 보안을 설계할 수 있습니다.

예를 들어 RBAC을 이용하여 사용자와 ServiceAccount의 권한을 제한하고 NetworkPolicy를 적용하여 Pod 사이의 Network 통신을 제한할 수 있습니다.

또한 Secret 관리, Pod Security, Service Mesh의 mTLS 등을 함께 적용하면 Workload 간 통신에서도 Zero Trust 원칙을 적용할 수 있습니다.

따라서 Zero Trust는 AWS나 Google Cloud 같은 Public Cloud뿐 아니라 Kubernetes 환경에서도 중요한 보안 설계 원칙입니다.

Zero Trust 구성 흐름 이해하기

실제 Zero Trust 환경을 단순화하면 다음과 같은 흐름으로 이해할 수 있습니다.

사용자가 Resource 접근 요청

Identity 확인

Device 및 접근 조건 확인

접근 Policy 확인

필요한 최소 권한 부여

Resource 접근

접근 Log 기록

지속적인 Monitoring 및 재검증

여기서 중요한 부분은 처음 인증에 성공했다고 해서 이후 모든 접근을 자동으로 신뢰하지 않는다는 것입니다.

Resource와 작업에 따라 계속해서 접근 권한을 확인하는 구조가 필요합니다.

Zero Trust 적용 시 주의할 점

Zero Trust를 적용한다고 모든 권한을 무조건 차단하는 것은 좋은 방법이 아닙니다.

권한을 지나치게 제한하면 개발과 운영 과정에서 필요한 작업까지 어려워질 수 있습니다.

따라서 실제 환경에서는 사용자가 어떤 Resource에 접근해야 하는지 먼저 파악하고 업무에 필요한 최소 권한을 제공해야 합니다.

또한 기존 시스템에 Zero Trust를 한 번에 적용하기보다 중요한 관리자 계정과 핵심 Resource부터 단계적으로 적용하는 방법도 효과적입니다.

마무리

Zero Trust는 특정 Network 내부에 있다는 이유만으로 사용자나 시스템을 신뢰하지 않고 모든 접근을 지속적으로 검증하는 보안 모델입니다.

AWS에서는 IAM, MFA, VPC, CloudTrail 등의 서비스를 조합할 수 있으며 Google Cloud에서는 Cloud IAM, IAP, VPC Service Controls 등의 기능을 활용할 수 있습니다.

Kubernetes에서도 RBAC, NetworkPolicy, Pod Security 등을 통해 동일한 원칙을 적용할 수 있습니다.

Cloud와 Container 환경이 확대될수록 Network 위치보다 Identity와 최소 권한을 중심으로 접근을 제어하는 Zero Trust 구조의 중요성은 더욱 커지고 있습니다.

댓글 남기기