AI 워크로드 시대, 쿠버네티스 보안 방법
출처: The New Stack
Kubernetes 보안은 언제나 복잡했습니다 — 접근 제어, 이미지 취약점, 비밀 관리, 네트워킹을 모두 아우르죠. AI 워크로드가 이를 더욱 어렵게 만듭니다. 새로운 동작, 새로운 트래픽 패턴, 새로운 위험으로 공격 표면이 확대됩니다.
2년 전만 해도 클러스터는 마이크로서비스를 실행했습니다. 이제는 에이전트를 실행합니다. 따라서 예측 가능한 CPU 사용량을 가진 지속적인 애플리케이션 대신, GPU 노드에서 동적이고 일시적인 프로세스가 폭발적이고 예측 불가능한 트래픽을 생성하고, 빈번히 외부로 나가야 합니다 — 그런데 Kubernetes NetworkPolicy는 이를 처리할 만큼 세밀함이나 가시성을 제공하지 못합니다.
2년 전만 해도 클러스터는 마이크로서비스를 실행했습니다. 이제는 에이전트를 실행합니다.
에이전트는 신뢰할 수 없는 코드를 복사하거나 생성하고, 아직 평가하지 않은 도구를 발견·호출하며, 새로운 레지스트리에서 화이트리스트조차 거치지 않은 도구를 사용하고, 하위 에이전트·스킬·MCP 클라이언트를 띄우고, 익숙하지 않은 API에 대한 예상치 못한 호출을 연쇄시키며, 인프라와 데이터 소스에 대해 예측 불가능한 요구를 합니다.
게다가 이제 인프라에는 희소하고 비용이 많이 드는 GPU 자원이 포함됩니다. 이 GPU는 거의 확실히 다른 사용자와 공유되며, 대부분의 팀이 보안하는 방식과는 다릅니다. 이를 해결하려면 전통적인 클러스터 강화만으로는 부족합니다: 네트워크부터 시작해 네 개의 핵심 제어 평면 전반에 걸쳐 보안을 제공하는 아키텍처가 필요합니다.
부트스트랩부터 에이전트 홉까지 제로 트러스트 네트워킹
**Azure Kubernetes Service**와 같은 관리형 서비스에서도 기본 클러스터는 기본적으로 무제한 외부 네트워크 접근을 허용합니다. 사용자가 번거로운 방화벽 규칙으로 이를 제한하도록 내버려 두는 대신, AKS는 보다 안전한 기본값을 향해 나아가고 있습니다: **네트워크 격리 클러스터**는 명시적으로 활성화하지 않는 한 퍼블릭 인터넷에 대한 외부 의존성을 전혀 두지 않은 상태로 부트스트랩할 수 있게 해줍니다.
AKS 보안 경험을 담당하는 **Shashank Barsin**이 The New Stack에 이렇게 설명했습니다.
“클러스터 자체를 부트스트랩할 때는 egress가 필요 없습니다: 프라이빗 Azure Container Registry에서 모든 이미지를 가져오기 위해 프라이빗 엔드포인트를 사용할 수 있습니다.”라고 Barsin은 말합니다. “우리는 플랫폼을 설계하면서 예상치 못한 데이터 유출이 없도록 했습니다. AI 시대에는 에이전트가 무엇을 하고 어떤 데이터를 추출할 수 있는지 항상 염려하게 됩니다.”
클라우드 네이티브 보안 및 레지스트리 팀을 이끄는 **Toddy Mladenov**는 The New Stack에 클러스터가 퍼블릭 레지스트리와 클러스터 외부 API를 볼 수 없게 하면, 그곳에서 실행되는 에이전트가 원치 않는 행동이나 연결을 시도할 기회가 줄어든다고 전했습니다.
“클러스터 제어면에서 설정하는 네트워크 라우트는 에이전트가 도구를 얻고, 패키지를 다운로드하고, 작업에 필요한 지식을 얻을 수 있는 위치를 결정합니다.”라고 Mladenov는 말합니다.
완전 격리 환경에서는 네트워크 가속 기술의 발전으로 Private Link가 Azure Key Vault에 연결하거나 메트릭·로그를 Azure Monitor에 전송하는 데 더 적합해졌으며, 이를 통해 텔레메트리와 비밀을 퍼블릭 네트워크에서 분리할 수 있습니다.
제로 트러스트는 클러스터 운영에도 적용됩니다; AKS는 Kubernetes 생태계 전체와 마찬가지로 Gateway API를 채택하고 있으며, 현재 프리뷰 단계인 **Azure Kubernetes Application Network**는 관리형 Istio 서비스를 통해 **ambient service mesh**를 간소화해, 플랫폼 팀에게 동서(East‑West)와 남북(North‑South) 트래픽을 일관되게 제어·모니터링할 수 있는 방법을 제공합니다.
가드레일과 거버넌스를 위한 정책‑코드(Policy-as-code)
모든 AI 행동을 예측하려 할 수는 없지만, **선언형 정책**을 통해 에이전트‑에이전트, 에이전트‑도구, 에이전트‑LLM 간 통신을 제어할 수 있습니다.
OPA, Kyverno와 같은 입장 정책 엔진을 활용해 **admission policies**를 설정하면, 어느 에이전트가 어떤 트랜잭션에서 어떤 정체성을 사용해 어떤 워크로드를 배포하고, 어떤 도구를 호출하며, 어떤 데이터 소스가 민감한지, 언제 인간의 개입이 필요한지를 세밀하게 제어할 수 있습니다.
“우리는 한 에이전트가 다른 에이전트를 호출하고, 그 에이전트가 또 다른 에이전트를 호출하고, 그 에이전트가 여러 도구를 호출하는 상황을 다루고 있습니다. 그리고 이때 필요한 권한 부여는 정적인 일회성 권한이 아니라 트랜잭션 컨텍스트 내에서 이루어져야 합니다.”라고 Barsin이 설명합니다. “에이전트가 하위 에이전트와 도구를 사용해 수행하는 전체 트랜잭션을 연결해서 파악할 수 있는 능력이 점점 더 중요해지고 있습니다.”
“제로 트러스트 영역에서 등장하고 있는 transaction token과 AAuth 같은 새로운 프로젝트는 클러스터뿐 아니라 그 위에 올려진 워크로드와 그들의 통신까지 전체 수명 주기를 포괄합니다.”
Istio 커뮤니티는 AgentGateway 프로젝트를 제어 평면으로 활용해, 에이전트가 불규칙하고 폭발적인 트래픽을 생성하면서도 연결을 유지해야 하는 경우 라우팅 레이어를 제공하는 방안을 탐색하고 있습니다. AKS는 이 프로젝트가 성숙함에 따라 연계될 예정이며, 동시에 팀은 에이전트와 도구 전체 경로—엔드 유저부터 에이전트, 도구까지—를 제어 평면이 볼 수 있게 하는 에이전트 정체성 방식을 실험하고 있습니다. 이를 통해 정책이 전체 컨텍스트에 적용될 수 있습니다.
“제로 트러스트 영역에서 등장하고 있는 transaction tokens 과 AAuth 은 클러스터뿐 아니라 그 위에 올린 워크로드와 통신까지 전체 수명 주기를 포괄합니다.”
Barsin은 개인 시간에 kontxt(IETF Agentic Authorization 제안서 기반 OAuth 및 Transaction Token 오픈소스 구현) 프로젝트에 협업하고 있습니다. 이는 에이전트‑에이전트 통신을 위한 제로 트러스트 환경을 제공하고, 전체 정체성 체인을 포괄하는 선언형 권한 정책을 지원합니다.
이러한 접근 방식은 규제 데이터 처리를 태그한 트랜잭션에 참여하는 에이전트와 도구가 일정 수준 이상의 정책 준수를 만족하도록 요구하는 등 고수준 제어를 가능하게 할 전망입니다.
이미지 스캔 및 출처 검증
정책은 에이전트가 어떤 레지스트리에서 이미지·라이브러리·도구를 가져올 수 있는지, 새로운 도구를 사용 승인하는 절차, 어떤 API와 데이터 소스가 민감하거나 기밀 혹은 모든 에이전트가 사용해도 되는지를 정의해야 합니다. “경계를 제한하지 않으면 에이전트는 편리한 레지스트리에서 도구를 자유롭게 끌어올 수 있습니다.”라고 Mladenov는 경고합니다. “그게 바로 에이전트의 본질입니다: 문제를 해결할 방법을 찾으려 합니다. 제한이 없으면 인터넷 어디서든 해결책을 찾아낼 것입니다.”
에이전트가 실행하는 내용에 대한 위험을 낮추면서도 유연성을 유지하려면, VNet 내부에 승인된 하나의 큐레이션된 레지스트리만 사용하도록 제한할 수 있습니다. 이렇게 하면 에이전트가 접근할 수 있는 도구가 제한되고, 다음과 같은 보안 정책을 적용할 수 있습니다:
이렇게 하면 공용 레지스트리에서 가져온 이미지도 안전하게 관리할 수 있습니다.