pile·
보안·인포그랩인포그랩·

인프라 접근 권한도 코드로: Teleport로 구현하는 Access as Code

인프라 접근 권한 관리가 AWS IAM, SSH 설정, DB 접근 제어, Kubernetes RBAC, 애플리케이션 레이어 등 다섯 개 독립 시스템에 분산된 문제를 Teleport의 Access as Code(AaC) 방식으로 통합한 사례를 다룬다. 권한 변경을 YAML 코드로 선언하고 Git으로 버전 관리하며, Teleport가 단기 인증서를 동적으로 발급해 오프보딩 누락과 정적 비밀 키 노출 위험을 제거한다. 네 가지 조건(선언적 정의·버전 관리·프로토콜 통합·동적 자격증명)으로 AaC를 정의하고 CyberArk·Cloudflare·HashiCorp Boundary·Teleport를 비교 분석한다.

핵심 포인트
  • AaC 4대 조건: 선언적 정의, Git 버전 관리, 프로토콜 통합(SSH/K8s/DB/앱), 동적 자격증명 발급
  • 단일 Teleport role YAML로 SSH 로그인 계정·Kubernetes 그룹·DB 사용자·앱 스코프를 동시 정의
  • Terraform 인프라 레이블 ↔ role node_labels 연동으로 서버 추가 시 접근 권한 자동 적용
  • IdP 계정 비활성화 = 오프보딩 완료, 기존 인증서는 TTL 내 자연 만료
  • CyberArk·Boundary 대비 Teleport가 4대 조건 모두 충족하는 유일한 도구로 선정
상세 정리
  • 기존 문제: 접근 권한 감사 시 5개 시스템 개별 조회 필요, 오프보딩 체크리스트 누락 빈발
  • AaC 조건 1: 권한 상태를 선언형으로 정의, UI 클릭이 아닌 코드로 "누가 무엇을 어떤 속성으로" 표현
  • AaC 조건 2: 모든 변경은 Git commit + PR 리뷰, git blame으로 전체 감사 이력 자동 확보
  • AaC 조건 3: 하나의 role YAML이 SSH/Kubernetes/DB/앱 프로토콜별 세부 속성 포함
  • AaC 조건 4: IdP 인증 성공 시 Teleport 내장 CA가 role 기반 단기 인증서 자동 발급
  • 경쟁 도구: CyberArk는 리소스 유형별 정책 분리(조건 3 실패), Boundary는 외부 Vault 필요 + TCP 터널(조건 3·4 부분 실패)
  • role YAML 구조: node_labels(SSH 대상), logins(SSH 계정), kubernetes_groups, db_users + db_names, app_labels를 단일 spec에 통합
  • 레이블 연동: Terraform EC2 tags → Teleport 에이전트 자동 임포트 → role 매칭, 새 서버 배포 시 권한 자동 적용
  • 인증서 수명: max_session_ttl 설정(예: 8h), 정적 키 불필요, 오프보딩은 IdP 비활성화 하나로 완결
  • Just-in-Time 권한: 엔터프라이즈 기능, 승인 워크플로우 + 최대 14일 TTL 임시 권한 상승
  • CI/CD 통합: role YAML을 Git 저장, CI 파이프라인이 tctl create -f로 적용, 직접 콘솔 접근은 CI 서비스 계정만 허용
  • 도입 로드맵: 레이블 체계 설계 → SSH 마이그레이션(이중 인증 병행) → Git 기반 관리 확립 → K8s·DB·앱 통합
  • 결과: 권한 감사 시간 대폭 단축, 컴플라이언스 이력 자동화, 오프보딩 오류 제거
왜 읽나분산된 인프라 접근 권한을 단일 YAML + Git으로 통합하는 구체적 구현 패턴과 도구 비교를 실전 예제 코드와 함께 제공하는 AaC 실천 가이드다.
인포그랩
인포그랩 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 보안·gitlab-engGitLab Blog·

    Serena MCP 에이전트의 치명적 원격 코드 실행 취약점 분석

    GitLab 보안팀이 AI 코딩 에이전트 Serena(월 PyPI 다운로드 13.6만 건)에서 치명적 원격 코드 실행 취약점을 발견했다. Jinja2 비샌드박스 환경과 신뢰 모델의 미검사 경로가 결합해 개발자가 악의적 저장소를 열기만 해도 코드가 실행된다. serena-agent 1.7.0에서 SandboxedEnvironment 교체로 수정 완료됐다.

    요약 이어보기
    #mcp#security#rce+2