모래성 말고 철옹성

[SRE] Policy-as-Code란 무엇인가? 본문

DevOps/SRE

[SRE] Policy-as-Code란 무엇인가?

JDhyeok 2025. 10. 3. 01:21

 

최근 한국 뿐만 아니라 전세계적으로 보안 사건, 사고들이 많아지면서 서비스를 운영하는데 고민이 많아지는 것 같다. 산더미 처럼 쌓여가는 레거시 시스템들을 보안패치 하는 것은 기업들에게 큰 고민거리일 듯 하다.

 

이런 것들을 어떻게 자동화할 수 있을까? 하며 찾아보다 새로운 개념을 접하게 되어 정리해봤다.

Policy-as-Code 란?

Policy-as-code는 정책 관리 방식 중 하나로, 정책을 코드로 정의하고, 업데이트하며, 공유하고, 강제할 수 있게 하는 접근법이다. 수동 프로세스에 의존해 정책을 관리하는 대신 코드 기반 자동화를 활용함으로써, 팀은 더 빠르게 움직일 수 있고 사람의 실수로 인한 오류 가능성을 줄일 수 있다.

또한 보안과 같은 영역에서 Policy-as-code 접근법을 사용하면 개발자와 보안 엔지니어 같은 다양한 이해관계자가 이해할 수 있는 방식으로 정책을 정의하고 관리할 수 있다.

 

Policy-as-code가 어떻게 작동하는지, 왜 중요한지, 그리고 보안 맥락에서 이를 어떻게 활용할 수 있는지 알아보자

 

Policy-as-Code 정의

Policy-as-code를 이해하기 위해서는 먼저 "정책(Policy)"의 정의를 알아야 한다.

여기서 정책이란 IT 운영이나 프로세스를 지배하는 규칙, 조건, 지침을 의미한다. 예를 들어, 정책은 보안 검증을 통과해야 코드가 배포될 수 있다는 조건일 수도 있고, 보안 이벤트가 발생했을 때 자동으로 실행되는 절차일 수도 있다.

 

Policy-as-code란 이러한 규칙과 조건을 코드로 정의하고 관리하는 것이다. Policy-as-code 접근 방식에서는 팀이 Python, YAML, Rego 같은 프로그래밍 언어로 정책을 작성한다. 사용하는 언어는 보통 어떤 Policy-as-code 관리 및 강제 도구를 사용하는지에 따라 달라진다.

 

엔지니어가 업데이트해야 할 때는 기존 코드를 수정하면 된다. 또한 정책 코드를 버전 관리 시스템(VCS)을 통해 공유하여 다른 사람이 정책을 확인할 수 있도록 할 수 있다. 마지막으로, Policy-as-code 실행 엔진을 활용해 정책이 준수되도록 강제할 수 있다. 이 실행 엔진은 독립적인 형태일 수도 있고, 더 큰 플랫폼에 내장되어 있을 수도 있다.

 

Policy-as-Code vs. Infrastructure as Code

Policy-as-code 개념은 Infrastructure as Code(IaC)와 비슷하게 들릴 수 있다. IaC는 코드 기반 파일을 사용해 인프라를 자동으로 설정하고 프로비저닝하는 방법으로, IT 운영팀이 수년간 활용해온 일반적인 방식이다.

IaC가 인프라 프로비저닝에 유용하다면, Policy-as-code는 보안 운영, 컴플라이언스 관리, 데이터 관리 등 더 광범위한 영역을 개선할 수 있다.

 

Policy-as-Code의 이점

수동으로 규칙, 조건, 절차를 관리하는 방식과 비교했을 때, Policy-as-code는 다음과 같은 중요한 장점을 제공한다:

  • 효율성: 정책을 코드로 정의하면 사실상 무제한 규모에서 자동으로 공유 및 강제할 수 있다. 이는 엔지니어가 매번 수동으로 정책을 적용하는 것보다 훨씬 효율적이다. 또한 사람이 해석하기 애매할 수 있는 자연어보다 코드로 정의된 정책이 업데이트와 공유에 더 용이하다.
  • 속도: 정책 강제를 자동화하면 수동 방식보다 훨씬 빠르게 운영할 수 있다.
  • 가시성: 정책이 코드로 정의되어 있으면 모든 이해관계자가 시스템 내에서 무슨 일이 일어나고 있는지 쉽게 확인할 수 있다. 예를 들어, 알림이나 대응 규칙을 다른 엔지니어에게 물어보지 않고 코드 기반 정책을 직접 살펴봄으로써 이해할 수 있다.
  • 협업: 정책을 관리하는 체계적이고 일관된 수단을 제공하기 때문에 협업이 단순해진다. 이는 같은 팀 내 협업뿐만 아니라 개발자(코드 중심 사고에 익숙한 사람)와 보안·운영 전문가 간 협업에도 특히 효과적이다.
  • 정확성: 정책을 코드로 정의하고 관리하면 시스템을 수동으로 관리할 때 발생할 수 있는 구성 오류를 피할 수 있다.
  • 버전 관리: 정책 파일의 버전을 추적하면 문제가 생겼을 때 이전 버전으로 쉽게 되돌릴 수 있다.
  • 테스트 및 검증: 정책이 코드로 작성되면 자동화된 감사 도구를 통해 손쉽게 검증할 수 있다. 이를 통해 운영 환경에 치명적인 오류가 도입될 위험을 줄일 수 있다.

Policy-as-Code 활용 방법

오늘날 Policy-as-code를 활용하는 가장 쉬운 방법은 해당 접근법을 네이티브로 지원하는 도구를 도입하는 것이다.

예를 들어 보안 영역에서는 Prisma Cloud, Bridgecrew, Checkov 같은 도구를 사용해 보안 정책을 코드로 정의할 수 있다. 또한 배포 전 정책 파일을 자동으로 스캔 및 감사하여 잘못된 설정이나 취약점을 탐지할 수 있다. 이는 클라우드 보안 태세 관리(CSPM)를 단순화하는 방식 중 하나다.

또한 Open Policy Agent(OPA) 같은 도구를 활용해 어떤 도메인에서든 Policy-as-code를 적용할 수 있는 공통 프레임워크를 제공받을 수도 있다. 그러나 현재까지는 커뮤니티 기반 Policy-as-code 프레임워크의 벤더 채택률은 낮은 편이다. 따라서 보안이나 다른 IT 영역에서 Policy-as-code를 도입하려면 네이티브 지원 기능을 제공하는 벤더 도구를 사용하는 것이 가장 단순한 방법이다.

 

보안은 늘 뒤처지기 쉬운 영역이라고 생각하는데, Policy-as-Code는 이를 예방적으로 관리할 수 있는 중요한 도구다. 현대에 와서 IaC가 인프라 관리의 기본이 된 것처럼, Policy-as-Code도 앞으로는 보안 및 컴플라이언스 관리의 표준으로 자리잡을 수 있지 않을까? 싶다. 앞으로 지켜볼 필요가 있을 것 같다.

원문

https://www.paloaltonetworks.com/cyberpedia/what-is-policy-as-code

 

What Is Policy-as-Code?

Automate security with Policy as Code. Learn how coding policies enhance compliance, enforce access controls, and improve cloud security at scale.

www.paloaltonetworks.com

 

반응형
Comments