메인 콘텐츠로 건너뛰기

AI에 특정 Managed Host의 읽기 전용 권한만 부여하기

완성 결과: 실제 인증된 AI 클라이언트가 branch-a의 호스트/프로세스 정보를 조회할 수 있지만 임의 명령 실행과 다른 대상에 대한 권한은 없습니다.
원격 MCP에는 single443와 신뢰할 수 있는 공개 HTTPS가 필요합니다. Claude·ChatGPT 연결을 완료하고 이 실습에서는 별도 최소 권한 identity를 사용하세요.

1단계 — 서버·Agent·배포 모드 확인

실제 Data Relay Link CLI 캡처 — 정책 설정 이전의 실제 Server 상태: Remote Access는 초기 ALLOW, Internet Access와 AI Access는 기본 DENY입니다. 그림 1. 정책 설정 이전의 실제 Server 상태: Remote Access는 초기 ALLOW, Internet Access와 AI Access는 기본 DENY입니다. 제품 CLI 출력 예시; 일부 주소·호스트는 가렸습니다. Server REPL:
branch-a가 정상 등록되어 있고 Agent 관리 연결이 가능해야 합니다. MCP 사용을 위한 별도의 SSH Remote Service는 필요하지 않습니다. 공용 https://<호스트>/mcp는 single443에서만 제공됩니다. direct 모드라면 설치된 제품과 같은 버전의 Server 설치 프로그램에서 배포 모드를 전환합니다. 배포 모드를 따르고, 오래된 인증서만 보고 준비 완료로 판단하지 마세요.

2단계 — AI Identity와 최소 권한 Object 생성

실제 Data Relay Link CLI 캡처 — Server의 실제 menu 화면: Remote Access는 4번, Internet Access는 5번, AI Access는 6번, System은 7번을 선택합니다. 그림 2. Server의 실제 menu 화면: Remote Access는 4번, Internet Access는 5번, AI Access는 6번, System은 7번을 선택합니다. 제품 CLI 출력 예시; 일부 주소·호스트는 가렸습니다. Server REPL:
set ai-identity의 Guided Wizard에서 실제 인증에 필요한 설정을 구성합니다. 대화형 AI는 지원되는 OAuth Authorization Code 인증을 사용합니다. 서버 계약에 맞는 OAuth 방식 지정:
AI Identity 이름만 생성했다고 외부 AI가 인증된 것은 아닙니다. 토큰이나 클라이언트 비밀정보는 공개 저장소/문서에 기록하지 마세요.

3단계 — 특정 호스트와 읽기 권한만 WHITELIST 허용

Server REPL:
기대: observer는 ALLOW, 다른 매칭 허용 Rule이 없다면 exec-check는 DENY. AI Access는 WHITELIST 전용·기본 DENY이며 Enforcement 비활성화는 DENY ALL입니다. 읽기 전용 계정에는 command-exec를 부여하지 마세요.

4단계 — 공개 MCP TLS 주소 구성

실제 Data Relay Link CLI 캡처 — 실제 Direct 모드의 MCP 경고: 인증서와 공개 주소가 설정되지 않았으며 single443 전환이 필요합니다. MCP 접속 성공 화면이 아닙니다. 그림 3. 실제 Direct 모드의 MCP 경고: 인증서와 공개 주소가 설정되지 않았으며 single443 전환이 필요합니다. MCP 접속 성공 화면이 아닙니다. 제품 CLI 출력 예시; 일부 주소·호스트는 가렸습니다. 이미 single443으로 구성된 Server에 DNS/HTTPS/인증서 발급 환경을 마련한 다음 Server REPL에서 실제 소유 도메인/이메일로 교체하여 실행합니다.
인증서 발급 사전 점검 통과와 운영 담당자 승인이 있을 때만:
외부 네트워크에서 https://mcp.example.net/mcp, /.well-known/oauth-authorization-server, /.well-known/oauth-protected-resource/mcp가 정상 HTTPS로 응답하고 OAuth 발급자/엔드포인트가 일치하는지 확인합니다. 내부 loopback 확인만으로 완료하지 않습니다.

5단계 — 실제 MCP 클라이언트 로그인/허용·거부 시험

  1. 원격 MCP/OAuth를 지원하는 실제 AI 클라이언트에 **https://mcp.example.net/mcp**를 Custom Remote MCP 엔드포인트로 추가합니다. 제품/플랜의 실제 지원 여부를 먼저 확인하세요.
  2. OAuth Authorization Code 로그인 및 동의를 완료합니다. 검증된 사용자/클라이언트가 의도한 auditor-ai에 대응하는지 확인하고, 보류 승인 요청도 인증된 주체를 검토한 뒤 처리합니다.
  3. 제공되는 MCP 도구 목록에서 branch-a의 host-info 조회를 실제 실행해 성공을 확인합니다.
  4. 명령 실행 등 허용하지 않은 동작을 요청하여 명시적 정책 DENY인지 확인합니다.
  5. Server REPL에서 감사:
완료 기준: 실제 외부 AI 사용자 연결, OAuth 성공, 허용 작업 성공, 비허용 작업 DENY 모두 확인해야 합니다. CLI 시뮬레이션만으로 사용자 E2E PASS를 선언하지 마세요.

장애/권한 철회

실패하면 TLS·OAuth·클라이언트 플랜·Agent 신뢰·AI Access Rule을 서로 구분해 점검합니다. 파일 접근에는 경로 제한 paths가 필요하며 읽기 권한에 명령 실행을 포함하지 않습니다. system credential revoke ai-identity auditor-ai는 기존 인증을 끊는 보안 작업이므로 의도한 때만 수행하세요. Rule 제거는 unset ai-access auditor-host 영향 검토 후 실행하며 다른 ID나 인증서를 삭제하지 않습니다.

최신 동작 확인 — 2026-10-28

Claude와 ChatGPT 실제 MCP 테스트가 완료되었습니다. 클라이언트 연결 가이드를 따르고 최초 소유자 mcp-owner-full-access까지 전체 유효 정책을 확인하세요. observer를 추가해도 기존 command-exec 권한은 제거되지 않습니다. 소유자 권한이 넓다면 이 읽기 전용 실습에는 별도 비소유자 identity가 필요합니다. 현재 CLI 전체 목록 · MCP 호환성

로그 파일만 읽도록 추가 제한

운영자가 branch-a의 /var/log/myapp/health.log에 민감정보 없는 실습 로그를 준비한 경우, AI Access 파일 예제의 app-reader Rule을 사용합니다. Claude/ChatGPT에 해당 파일 read_file만 요청하고 command-exec나 다른 경로는 허용하지 마세요. file-read 정책 테스트에는 path를 반드시 포함합니다. 실제 파일 존재·OS 권한과 도구의 ALLOW·DENY를 각각 확인합니다. MCP만 사용할 신규 Managed Host는 set enrollment bulk에서 count 1, SSH 사용자명 빈 값으로 management-only 등록합니다. Choose Remote Services는 서비스가 하나 이상 필요합니다. SSH/RDP를 게시할 필요가 없고 기존 정상 호스트는 재등록하지 않습니다.
마지막 수정일 2026년 10월 29일