
NyxID 소개: AI 에이전트에게는 접근 권한을, 사용자에게는 제어권을
요약
NyxID는 AI 에이전트의 보안과 연결성 문제를 해결하는 오픈 소스 에이전트 연결 게이트웨이입니다. API 키 노출 위험을 방지하기 위해 제한된 토큰을 사용하며, 클라우드 에이전트가 로컬 네트워크 서비스에 안전하게 접근할 수 있도록 지원합니다.
핵심 포인트
- 에이전트가 실제 API 키를 직접 보지 못하도록 보안 레이어 제공
- AES-256-GCM 암호화를 통한 안전한 자격 증명 관리
- 아웃바운드 연결을 통해 로컬 및 NAT 환경의 서비스 접근 가능
- Apache-2.0 라이선스의 오픈 소스 프로젝트로 셀프 호스팅 지원
여러분이 구축하는 모든 AI 에이전트는 실제 무언가에 도달해야 합니다: SaaS API, 내부 서비스, 혹은 여러분의 로컬 머신에 있는 데이터베이스 같은 것들 말이죠. 그리고 매번 여러분은 똑같은 두 가지 벽에 부딪힙니다.
첫 번째는 키(keys) 문제입니다. 에이전트가 Stripe나 Slack, 또는 여러분의 내부 API를 호출할 수 있도록 하려면, 에이전트가 읽을 수 있는 어딘가에 키를 붙여넣어야 합니다: .env 파일, n8n 자격 증명(credentials), Cursor 설정, 또는 Home Assistant의 secrets.yaml 같은 곳 말입니다. 여러 프로젝트에 걸쳐 이 작업을 하다 보면 동일한 비밀 정보가 수십 군데에 흩어지게 됩니다. 키 하나를 교체(rotating)하려면 오후 내내 설정 파일들을 수정해야 하며, 그 와중에 하나라도 놓치면 일주일 뒤에 무언가가 조용히 401 에러를 반환할 때서야 알게 됩니다.
두 번째는 네트워크(network) 문제입니다. 에이전트가 실제로 사용하기를 원하는 서비스의 절반은 여러분의 로컬 머신이나 네트워크 내부에서 실행됩니다. 하지만 에이전트는 클라우드에서 실행되며, 클라우드는 여러분의 localhost에 도달할 수 없습니다. 이제 자격 증명 문제 위에 네트워킹 문제까지 쌓이게 된 것입니다.
NyxID는 이 두 가지를 모두 처리하는 레이어입니다.
NyxID란 무엇인가
NyxID는 오픈 소스 에이전트 연결 게이트웨이(Agent Connectivity Gateway)입니다. AI 에이전트와 에이전트가 도달해야 하는 API 사이에 위치하며, 실제 자격 증명(credentials)을 직접 보유하고 각 에이전트에게는 제한된 범위의 토큰(scoped token)만을 전달합니다. 여러분의 에이전트는 NyxID와 통신하고, NyxID는 실제 키를 사용하여 실제 API와 통신합니다. 키는 게이트웨이에서 복호화되어 주입되므로, 에이전트의 컨텍스트(context), 프롬프트(prompt), 또는 설정(config)에 절대 남지 않습니다.
이 프로젝트는 Apache-2.0 라이선스이며, 전체 시스템(3개의 Docker 컨테이너)을 셀프 호스팅하거나 호스팅 버전을 사용할 수 있습니다. 어떤 방식이든, 신뢰 경계(trust boundary)에 대한 소유권은 여러분에게 있습니다.
주요 기능
몇 가지 기능들이 있으며, 이들은 서로 결합됩니다:
- 에이전트가 자격 증명(credentials)을 절대 볼 수 없도록 주입합니다. API 키를 NyxID에 한 번만 붙여넣으면 AES-256-GCM 방식으로 암호화되어 저장됩니다. 그 이후부터 에이전트는 NyxID를 통해 호출하며, NyxID는 요청 시점에 키를 주입합니다. 에이전트는 응답(response)은 받지만, 비밀 값(secret)은 절대 받지 못합니다.
- localhost를 포함하여 NAT 뒤에 있는 서비스에 접근합니다. 사용자의 자체 인프라에서 실행되는 작은 자격 증명 노드(credential node)가 아웃바운드 연결(outbound connection)을 통해 NyxID로 전화를 겁니다. VPN, 포트 포워딩(port forwarding), 방화벽 구멍을 열 필요가 없습니다. 이제 클라우드 에이전트가 당신의 책상 아래에 있는 머신에서 실행 중인 서비스에 호출할 수 있습니다.
- REST API를 MCP 도구로 변환합니다. NyxID를 API의 OpenAPI 스펙에 연결하면, 서비스마다 수동으로 MCP 래퍼(wrapper)를 작성할 필요 없이 각 작업을 단일 엔드포인트 상의 MCP 도구로 노출합니다. Claude Code, Cursor, VS Code, Codex, n8n과 함께 작동합니다.
- 모든 에이전트를 격리합니다. 각 에이전트는 고유한 범위가 지정된 토큰(scoped token)을 가집니다. 에이전트 A는 Slack과 Gmail에 접근할 수 있지만, 에이전트 B는 사용자의 내부 API에만 접근할 수 있습니다. 기본 자격 증명을 건드리거나 다른 에이전트를 방해하지 않고도 특정 에이전트의 세션을 취소할 수 있습니다.
- 에이전트가 스스로 수행할 작업과 사용자의 승인이 필요한 작업을 결정할 수 있게 합니다. 승인(approval) 기능을 켜면, 기본적으로 모든 프록시 호출(proxied call)은 사용자의 명시적인 승인을 기다립니다. Telegram 또는 모바일 푸시 프롬프트에 에이전트가 수행하려는 작업이 정확히 표시됩니다 (예: POST /v1/chat/completions, model gpt-4o, 3 messages). 호출은 사용자가 승인할 경우에만 실행되며, 설정한 타임아웃(timeout)이 지나면 자동으로 거부됩니다. 그런 다음 서비스별로 설정을 조정할 수 있습니다. 해롭지 않은 서비스는 예외로 처리하고, 돈이나 운영 환경(production)에 영향을 주는 호출에는 체크포인트를 유지하거나, 에이전트에게 특정 시간 동안만 서비스를 허용하여 반복적인 프롬프트 요청을 중단할 수 있습니다.
실제로 당신에게 무엇이 변하는가
차이점을 느끼는 가장 명확한 방법은 전과 후를 비교하는 것입니다.
이전 (Before): 비밀 정보(secret)는 에이전트가 읽을 수 있는 곳이라면 어디든 존재합니다. .env 파일과 도구 설정(tool configs)에 복사되어 저장되며, 실행이 진행되는 동안 에이전트의 실행 메모리(execution memory)에 머뭅니다. 또한 프롬프트 주입(prompt-injection) 취약점이 있는 에이전트는 해당 키가 해제하는 모든 범위에 대해 전체 폭발 반경(blast radius)을 갖게 됩니다. 키 교체(Rotation)는 수동이며 실수하기 쉽습니다.
이후 (After): 비밀 정보는 게이트웨이(gateway) 뒤의 한 곳에 존재하며, 에이전트는 이를 절대 보유하지 않습니다. 서비스를 한 번 추가하고 단일 MCP 엔드포인트(endpoint)를 연결하기만 하면 됩니다. 에이전트는 호출을 수행하지만, 키는 사용자의 측에 머뭅니다. 그리고 실제로 중요한 호출의 경우, 체크포인트(checkpoint)를 요구할 수 있습니다. 즉, 에이전트가 작업을 일시 중단하고, 질문을 던지며, 어떤 일이 일어나기 전에 사용자의 승인을 기다리게 할 수 있습니다. 한 초기 빌더가 표현했듯, NyxID는 "복잡성을 에이전트 측에서 그것이 마땅히 있어야 할 인프라(infra) 측으로 이동시킵니다." 일상적인 관점에서 이는 키가 어디에 있는지 추적하는 일을 멈추게 하며, 해당 권한이 부채(liability)로 변하지 않도록 에이전트에게 실제 접근 권한을 부여할 수 있음을 의미합니다.
대상 사용자
AI 에이전트를 실제 스택(stack)에 연결하는 모든 사람:
- Claude Code나 Cursor가 방화벽 뒤의 서비스에 접근하기를 원하는 셀프 호스팅(self-hoster) 및 홈랩(homelab) 사용자
- 동일한 API 키가 n8n, Cursor, 그리고 세 개의 .env 파일에 흩어져 있는 것을 목격한 팀
- 모든 곳에 공유되는 하나의 마스터 키 대신, 에이전트별로 취소 가능한 접근 권한을 원하는 빌더
만약 Grafana, Jenkins, n8n, 또는 Home Assistant와 같은 셀프 호스팅 도구를 실행 중이며, 자격 증명(credentials)을 유출하지 않고 에이전트가 이를 사용하기를 원한다면, 그것이 바로 NyxID가 만들어진 사례입니다.
이것이 중요한 이유
에이전트들이 유료 API를 호출하고, 내부 시스템을 건드리고, 돈을 쓰는 등 현실 세계에서 행동하기 시작하고 있습니다. 에이전트가 행동을 시작하는 순간, 두 가지 질문은 더 이상 세부 사항이 아니라 전체 리스크가 됩니다. 즉, 키(key)가 어디에 저장되어 있고 누가 볼 수 있는지, 그리고 에이전트가 감독 없이 그 키로 무엇을 할 수 있는지에 대한 문제입니다. NyxID의 전략은 이 두 가지 모두가 사용자가 제어하고 감사할 수 있는 인프라에 속해야 한다는 것입니다. 이는 오픈 소스(open-source)이며 셀프 호스팅(self-hostable)이 가능합니다. 작업을 수행해야 하는 모든 에이전트에 마스터 키를 붙여넣는 대신, 키는 사용자의 영역에 두고 중요한 작업에는 인간의 체크포인트(human checkpoint)를 두는 방식입니다.
사용해 보기
NyxID는 오픈 소스(Apache-2.0)이며 GitHub에서 확인할 수 있습니다: github.com/ChronoAIProject/NyxID.
세 개의 컨테이너(containers)를 셀프 호스팅하거나, 초대 코드 NYX-OJWGP4FZ를 사용하여 호스팅된 조기 액세스(early access)를 요청하세요. https://nyx.chrono-ai.fun/register
단 한 번의 명령으로 첫 번째 에이전트를 연결하세요:
https://github.com/ChronoAIProject/NyxID/blob/main/skills/INSTALL.md 에서 nyx 스킬을 설치하세요
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기