MCP Security

MCP 서버는 Kiro의 기능을 확장해 주지만 외부 코드로 동작하므로, 자격 증명과 작업 범위를 안전하게 다루기 위한 운영 원칙이 필요합니다.

MCP 보안의 출발점

MCP 서버는 Kiro 외부에서 돌아가는 서드파티 프로세스입니다. 다음 네 가지 특성을 늘 염두에 두는 것이 좋습니다.

안전한 설정

API 키와 token 보호

설정 파일에 자격 증명을 직접 적어 커밋하지 않도록 하고, 가능한 한 좁은 권한과 짧은 수명의 token을 사용합니다. 비밀 값은 환경 변수로 주입하는 것이 기본입니다.

{
  "mcpServers": {
    "github": {
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}
export GITHUB_TOKEN=your-token-value

승인된 환경 변수

Kiro는 허용 목록(allowlist)에 등록된 환경 변수만 확장합니다. Kiro 설정에서 Mcp Approved Env Vars 항목을 검색해 사용할 변수를 추가하세요. 등록되지 않은 변수가 참조되면 보안 경고 팝업이 노출됩니다.

설정 파일 권한

로컬 설정 파일은 본인 외에는 읽지 못하도록 권한을 좁혀 둡니다.

chmod 600 ~/.kiro/settings/mcp.json
chmod 600 .kiro/settings/mcp.json

도구 호출을 안전하게 다루기

  1. 각 호출 요청을 그대로 통과시키지 말고 파라미터를 한 번 더 확인합니다.
  2. 해당 tool이 어떤 부수효과를 일으키는지 미리 이해해 둡니다.
  3. 의심스러운 요청은 즉시 거부합니다.
auto-approve 가이드 — 자동 승인은 (1) 신뢰할 수 있는 출처, (2) 쓰기 권한이 없는 읽기 전용 동작, (3) 자주 사용하고 영향 범위가 좁은 tool에만 한정합니다.
{
  "mcpServers": {
    "aws-docs": {
      "autoApprove": [
        "mcp_aws_docs_search_documentation",
        "mcp_aws_docs_read_documentation"
      ]
    }
  }
}

워크스페이스 단위 분리

프로젝트별로 서로 다른 MCP 서버가 필요하다면 워크스페이스 설정을 활용해 분리합니다. 각 프로젝트의 .kiro/settings/mcp.json에만 해당 서버를 정의하면, 토큰과 권한이 그 프로젝트 안에 머무르고 사고가 나더라도 영향 범위가 제한됩니다.

project-a/
├── .kiro/
│   └── settings/
│       └── mcp.json
project-b/
├── .kiro/
│   └── settings/
│       └── mcp.json

모니터링과 감사

MCP 서버의 동작은 로그로 확인할 수 있습니다. Kiro 패널을 열고 Output 탭에서 드롭다운을 Kiro - MCP Logs로 변경하면 호출 내역이 표시됩니다. 정기적으로 다음 항목을 점검하세요.

보안 사고 대응

특정 MCP 서버가 의심스러울 때는 다음 순서로 대응합니다.

  1. 해당 서버를 즉시 비활성화합니다.
  2. 관련된 token과 API 키를 모두 폐기·재발급합니다.
  3. 연결되어 있던 외부 서비스에서 비인가 활동이 있었는지 점검합니다.
  4. 서버 메인테이너에게 사실관계를 보고합니다.

추가 보안 조치

네트워크 측면에서는 outbound 트래픽을 방화벽으로 제한하고, 민감한 연결은 VPN을 통해 처리하며, 트래픽을 주기적으로 모니터링합니다. 시스템 측면에서는 OS 보안 패치를 최신으로 유지하고, MCP 서버는 최소 권한 사용자 계정으로 실행하는 것이 안전합니다.

검증되지 않은 MCP 서버에 광범위한 권한의 token을 그대로 넘기지 마세요. 한 번 유출된 자격 증명은 회수가 어렵습니다.