인증

인증 (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을 설정해요.

더 이상 사용하지 않는(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)

  • 도구 활성화 및 비활성화
  • 전송 방식과 주소

더 알아보기 (Learn more)