HTTP API 인증 옵션

HTTP API 인증 옵션

Grafana HTTP API에 요청을 보낼 때 사용하는 인증 옵션을 소개하는 문서예요. 온프레미스(Grafana OSS/Enterprise)에서는 기본 인증(basic auth)이나 서비스 계정 토큰(service account token)을 사용하고, Grafana Cloud에서는 서비스 계정 토큰을 사용해요. 조직을 지정하는 X-Grafana-Org-Id 헤더도 함께 다룹니다.

인증 방식에 따른 예시 코드를 그대로 확인하면서, 자신의 환경에 맞는 인증 방법을 선택해 보세요.

출처: 문서

본문

인증 옵션은 Grafana 온프레미스를 사용하는지, 아니면 Grafana Cloud를 사용하는지에 따라 달라져요.

조직을 설정하려면 X-Grafana-Org-Id 헤더 섹션을 참고하세요.

Grafana OSS/Enterprise의 인증 옵션

HTTP API 요청은 기본 인증(basic authentication) 또는 서비스 계정 토큰(service account token)으로 인증할 수 있어요.

기본 인증 (Basic auth)

이 옵션은 Grafana 온프레미스에서만 사용할 수 있어요.

기본 인증은 기본적으로 활성화되어 있으며, 표준 basic auth를 통해 HTTP 요청을 인증할 수 있어요. 기본 인증은 LDAP 사용자도 인증합니다.

예를 들어:

curl http://admin:admin@localhost:3000/api/org
{"id":1,"name":"Main Org."}

서비스 계정 토큰 (Service account token)

서비스 계정 토큰을 만들려면:

  1. 왼쪽 메뉴에서 Administration으로 이동하세요.
  2. Users and access > Service Accounts를 클릭하세요.

서비스 계정 토큰 사용 방법에 대한 자세한 내용은 Service Accounts 문서를 참고하세요.

모든 요청에서 Authorization 헤더에 토큰을 넣어 사용합니다. 예를 들어:

GET http://your.grafana.com/api/dashboards/db/mydash HTTP/1.1
Accept: application/json
Authorization: Bearer <SERVI...KEN>

Authorization 헤더 값은 Bearer <YOUR_SERVICE_ACCOUNT_TOKEN> 형식이어야 해요.

Grafana Cloud의 인증 옵션

Grafana Cloud 인스턴스가 제공하는 HTTP API를 사용하려면 서비스 계정 토큰으로 요청을 인증해야 해요.

서비스 계정 토큰에 접근하거나 만들려면:

  1. 왼쪽 메뉴에서 Administration으로 이동하세요.
  2. Users and access > Service Accounts를 클릭하세요.

서비스 계정 생성, 권한 부여, 토큰 추가에 대한 자세한 내용은 Service Accounts를 참고하세요.

Grafana 인스턴스에 보내는 모든 요청의 Authorization 헤더에 서비스 계정 토큰을 포함하세요.

GET http://your.grafana.com/api/dashboards/db/mydash HTTP/1.1
Accept: application/json
Authorization: Bearer <SERVI...KEN>

HTTP API에 대한 요청은 Authorization 헤더로 인증됩니다.

Authorization: Bearer *** ACCOUNT TOKEN>

X-Grafana-Org-Id 헤더

X-Grafana-Org-Id는 동작이 적용되는 조직을 지정하는 선택 속성(optional property)이에요. 설정하지 않으면 생성된 키는 현재 컨텍스트 조직에 속하게 됩니다. admin 관련 요청을 제외한 모든 요청에서 이 헤더를 사용하세요.

예시 요청:

GET /api/org/ HTTP/1.1
Accept: application/json
Content-Type: application/json
X-Grafana-Org-Id: 2
Authorization: Bearer <SERVI...KEN>

더 알아보기 (Learn more)