인증
인증 (Authentication)
이 문서에서는 Grafana MCP 서버가 Grafana API를 호출할 때 필요한 자격 증명을 설정하는 방법을 알아봐요. 서비스 계정 토큰(권장)이나 사용자 이름/비밀번호를 사용할 수 있어요.
출처: 문서
본문
달성할 목표 (What you'll achieve)
서버가 Grafana 인스턴스에 인증할 수 있도록 환경 변수(또는 그에 상응하는 값)를 설정해요. uvx, Docker, 바이너리, Helm 중 어떤 방식으로 서버를 실행하든 동일한 자격 증명이 적용돼요.
시작하기 전에 (Before you begin)
- 서비스 계정
서비스 계정 토큰 사용 (Use a service account token)
서버에 전달되는 환경에 GRAFANA_URL과 GRAFANA_SERVICE_ACCOUNT_TOKEN을 설정해요.
- GRAFANA_URL: http://localhost:3000 https://myinstance.grafana.net
- GRAFANA_SERVICE_ACCOUNT_TOKEN:
더 이상 사용하지 않는(deprecated) GRAFANA_API_KEY도 여전히 지원되지만 향후 버전에서 제거될 예정이에요. 대신 GRAFANA_SERVICE_ACCOUNT_TOKEN을 사용하세요.
파일에서 토큰 읽기 (Read the token from a file)
값을 인라인으로 전달하는 대신 토큰을 담고 있는 파일 경로를 GRAFANA_SERVICE_ACCOUNT_TOKEN_FILE에 설정할 수 있어요. 파일은 매 요청마다 새로 읽히므로, 토큰이 교체(rotate)되면 서버를 재시작하지 않아도 자동으로 반영돼요.
이 방식은 볼륨으로 마운트된 Secret이 내부 Secret이 변경될 때 제자리에서 업데이트되는 Kubernetes에서 유용해요. 서버의 클라이언트 캐시는 토큰 값으로 키가 지정되므로, 교체된 토큰은 팟(pod) 재시작 없이 투명하게 새 클라이언트를 만들어요:
env:
- name: GRAFANA_SERVICE_ACCOUNT_TOKEN_FILE
value: /var/run/secrets/grafana/token
volumeMounts:
- name: grafana-token
mountPath: /var/run/secrets/grafana
readOnly: true
volumes:
- name: grafana-token
secret:
secretName: grafana-mcp-token
파일 내용의 앞뒤 공백(끝의 줄바꿈 포함)은 잘려나가요(trim). GRAFANA_SERVICE_ACCOUNT_TOKEN과 GRAFANA_SERVICE_ACCOUNT_TOKEN_FILE이 모두 설정된 경우 인라인 토큰이 우선해요.
요청별 Grafana URL 선택을 수행하는 HTTP 배포의 경우, 각 요청은 선택한 인스턴스에 대한 토큰을 제공해야 해요. 서버는 그 요청에 GRAFANA_SERVICE_ACCOUNT_TOKEN이나 토큰 파일을 재사용하지 않아요.
사용자 이름과 비밀번호 사용 (Use username and password)
토큰 대신 GRAFANA_USERNAME과 GRAFANA_PASSWORD를 설정해 basic auth를 사용할 수 있어요. 이 방식은 자동화에는 적합하지 않으므로, 가능하면 서비스 계정 토큰을 사용하는 것이 좋아요.
다음 단계 (Next steps)
- 도구 활성화 및 비활성화
- 전송 방식과 주소