본문으로 건너뛰기

수요자 가이드

vLLM API 보안

API 키 없이 열면 제3자가 쓴다

vLLM 서버는 기본으로 인증이 없어, 주소를 아는 누구나 호출할 수 있습니다. API 키 없이 열어 두면 제3자가 내 GPU 로 추론을 돌리고, 그 시간의 요금은 내게 청구됩니다.

1. 무엇이 위험한가요

  • 누구나 호출할 수 있습니다 — 포트가 열린 주소를 알면 인증 없이 요청을 보낼 수 있습니다.
  • 비용은 내 몫입니다 — 남이 보낸 요청도 내 인스턴스의 GPU 시간을 씁니다.
  • 내 작업이 느려집니다 — 남의 요청이 GPU 와 메모리를 함께 씁니다.

2. 템플릿이 미리 해 두는 것

vLLM 템플릿은 인스턴스마다 API 키를 새로 만들어 /opt/wattworks/vllm.apikey 에 둡니다. 이 파일은 root 만 읽을 수 있고, 키는 로그에 남기지 않습니다.

3. 실행할 때는 항상 키를 붙이세요

모델을 지정해 서버를 띄울 때 아래처럼 --api-key 로 그 키를 넘깁니다.

vllm serve <모델> --api-key "$(cat /opt/wattworks/vllm.apikey)" --host 0.0.0.0 --port 8000

--api-key 를 빼지 마세요

--api-key 없이 --host 0.0.0.0 으로 띄우면 인증 없는 서버가 됩니다. 테스트라도 키를 붙여 실행하세요.

4. 호출하기

요청마다 Authorization: Bearer <API 키> 헤더를 붙입니다. 키가 없거나 틀리면 서버가 거절합니다. 내 컴퓨터에서는 SSH 터널을 연 뒤 localhost 로 호출하세요.

내 컴퓨터에서 — 터널 열기
ssh -i ~/.ssh/id_ed25519 -L 8000:localhost:8000 -p <포트> root@<노드 주소>
내 컴퓨터의 다른 터미널에서 — 호출
curl http://localhost:8000/v1/models -H "Authorization: Bearer <API 키>"

왜 SSH 터널인가요

키를 평문 HTTP 로 보내면 중간에서 가로챌 수 있습니다. SSH 터널 안의 요청은 암호화됩니다. 지금 콘솔의 접속 정보에는 SSH 명령만 표시됩니다.

5. 키 관리

  • 키를 코드 저장소 · 공개된 노트북 · 스크린샷 · 채팅에 올리지 마세요.
  • 키를 여러 사람과 나눠 써야 한다면, 누가 쓰고 있는지 알 수 있는 범위에서만 나누세요.
  • 키가 새었다고 판단되면 인스턴스를 종료하고 새로 대여하세요. 키는 인스턴스 안에 있어 종료하면 함께 사라지고, 새 인스턴스는 새 키를 받습니다.

셸에서 키를 확인하고 재발급하는 wwctl url 은 준비 중입니다.

종료하기 전에 /workspace 밖의 파일(내려받은 모델 등)은 사라진다는 점을 확인하세요.

가이드 목록으로