코드로서의 정책이란 무엇인가요?
코드로서의 정책은 코드를 사용하여 정책을 정의, 업데이트, 공유 및 시행하는 정책 관리 방식입니다. 정책 관리 시 수동 프로세스에 의존하는 대신 코드 기반 자동화를 활용하면 팀에서 더 빠르게 움직이고 사람의 실수로 인한 실수 가능성을 줄일 수 있습니다.
동시에 보안과 같은 도메인에 대한 코드형 정책 접근 방식을 사용하면 개발자, 보안 엔지니어 등 다양한 유형의 이해관계자가 이해할 수 있는 방식으로 정책을 정의하고 관리할 수 있습니다.
이 페이지에서는 코드형 정책의 작동 방식과 중요한 이유, 보안의 맥락에서 이를 활용하는 방법에 대해 설명합니다.
정책-코드 정의
코드로서의 정책이 무엇을 의미하는지 이해하려면 먼저 "정책"의 정의를 이해해야 합니다.
여기서 정책이란 IT 운영 또는 프로세스를 관리하는 모든 유형의 규칙, 조건 또는 지침을 의미합니다. 예를 들어 정책은 코드가 보안 제어를 통과하여 구축되기 위해 충족해야 하는 조건을 정의하는 규칙일 수 있습니다. 또는 보안 이벤트에 대한 응답으로 자동으로 실행되는 일련의 절차일 수도 있습니다.
코드로서의 정책은 코드를 사용하여 규칙과 조건을 정의하고 관리하는 것입니다. 코드형 정책 접근 방식에 따라 팀은 Python, YAML 또는 Rego와같은 프로그래밍 언어를 사용하여 정책을 작성합니다. 특정 언어는 일반적으로 사용 중인 정책 기반 코드 관리 및 시행 도구에 따라 다릅니다.
엔지니어가 업데이트를 해야 하는 경우 기존 코드를 수정하는 방식으로 업데이트합니다. 또한 버전 관리 시스템(VCS)을 사용하여 다른 사람들과 코드를 공유하여 정책에 대한 가시성을 제공할 수 있습니다. 마지막으로, 코드형 정책 시행 엔진을 사용하여 정책을 준수할 수 있습니다. 시행 엔진은 독립형 정책 코드일 수도 있고 더 큰 플랫폼에구축될 수도 있습니다.
코드로서의 정책 대 코드로서의 인프라
코드로서의 정책이라는 개념은 인프라스트럭처로서의 코드, 즉 IaC와비슷하게 들릴 수 있습니다. 코드 기반 파일을 사용하여 인프라 설정 및 프로비저닝을 자동화하는 IaC는 수년 동안 IT 운영팀에서 흔히 사용되어 왔습니다.
IaC는 인프라를 프로비저닝해야 하는 IT 운영 팀에 유용하지만, 정책 기반 코드는 보안 운영, 규정 준수 관리, 데이터 관리 등을 개선할 수 있습니다.
코드로서의 정책의 이점
규칙, 조건 및 절차를 수동으로 관리하는 대안과 비교했을 때, 코드로서의 정책은 몇 가지 중요한 이점을 제공합니다:
- 효율성: 정책을 코드로 작성하면 사실상 무제한의 대규모로 정책을 공유하고 자동으로 시행할 수 있습니다. 이는 엔지니어가 매번 수동으로 정책을 적용해야 하는 것보다 훨씬 효율적입니다. 정책을 업데이트하고 공유할 때도 엔지니어마다 다르게 해석할 수 있는 인간 언어로 설명하는 것보다 명확하고 간결한 코드로 정책을 정의하는 것이 더 효율적입니다.
- 속도: 정책 시행을 자동화할 수 있다는 것은 코드형 정책이 수동 접근 방식보다 더 빠르게 운영된다는 의미이기도 합니다.
- 가시성: 정책이 코드로 정의되면 모든 이해관계자가 코드를 사용하여 시스템 내에서 어떤 일이 일어나고 있는지 쉽게 이해할 수 있습니다. 예를 들어 다른 엔지니어에게 문의하고 응답을 기다릴 필요 없이 어떤 코드 기반 정책이 시행되고 있는지 확인하는 것만으로 경고 또는 수정 규칙을 검토할 수 있습니다.
- 협업: 정책 기반 코드는 일관되고 체계적인 정책 관리 수단을 제공함으로써 협업을 간소화합니다. 여기에는 같은 팀 내에서의 협업뿐만 아니라 서로 다른 유형의 팀, 특히 코드로 생각하고 작업하는 데 익숙한 개발자와 보안 또는 IT 운영과 같은 다른 영역의 전문가 간의 협업도 포함됩니다.
- 정확성: 팀에서 코드를 사용하여 정책을 정의하고 관리하면 수동으로 시스템을 관리할 때 발생할 수 있는 구성 실수의 위험을 피할 수 있습니다.
- 버전 관리: 정책 파일의 여러 버전이 변경될 때마다 추적하는 경우, 코드형 정책은 새 정책 버전으로 인해 문제가 발생하는 경우 이전 구성으로 쉽게 되돌릴 수 있도록 합니다.
- 테스트 및 유효성 검사: 정책이 코드로 작성된 경우 자동화된 감사 도구를 사용하여 정책을 쉽게 검증할 수 있습니다. 이러한 방식으로 코드형 정책은 프로덕션 환경에 심각한 오류가 발생할 위험을 줄이는 데 도움이 될 수 있습니다.
Policy-As-Code 사용 방법
오늘날 코드형 정책을 활용하는 가장 쉬운 방법은 코드형 정책 접근 방식을 통해 관리하려는 도메인에 대해 기본적으로 코드형 정책을 지원하는 도구를 채택하는 것입니다.
예를 들어, 보안 영역에서는 Prisma Cloud, Bridgecrew 및 Checkov를 통해 팀이 코드를 사용하여 보안 정책을 정의할 수 있습니다. 또한 구축 전에 잘못된 구성이나 취약성을 감지하기 위해 정책 파일을 자동으로 스캔하고 감사할 수 있습니다. 이 접근 방식은 이러한 도구가 클라우드 보안 태세 관리를간소화하는 한 가지 방법입니다.
또한 모든 도메인에 코드형 정책을 적용하기 위한 공통 프레임워크를 제공하는 것을 목표로 하는 Open Policy Agent와같은 도구를 살펴볼 수도 있습니다. 그러나 현재까지 이와 같은 커뮤니티 기반 정책 기반 프레임워크의 벤더 채택은 제한적이기 때문에 기본 정책 기반 접근 방식을 지원하는 벤더 도구를 찾는 것이 보안 또는 기타 IT 도메인에 대한 정책 기반 접근 방식을 구현하는 가장 간단한 경로입니다.