20장. 서버 측 보안
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
이 장에서는 TLS 및 기본 인증과 같은 Prometheus에서 제공하는 보안 기능에 대해 알아봅니다.
프로메테우스가 제공하는 보안 기능
많은 운영자가 Prometheus를 운영할 때 엔드포인트 보안을 위해 역방향 프록시를 사용합니다.실제로 Prometheus 서버 API는 HTTP를 통해 노출되므로 HTTP를 지원하는 모든 역방향 프록시에 쉽게 통합할 수 있습니다.
Prometheus 자체는 서버 측 보안을 지원하므로 보안 버전의 Prometheus를 사용자에게 직접 노출하거나 Prometheus와 이러한 역방향 프록시 간의 트래픽을 보호할 수 있습니다.
이 장에서 설명하는 서버 측 보안은 Prometheus 서버와 대부분의 공식 내보내기에 적용됩니다. 동일한 명령줄 플래그와 옵션을 이들 간에 공유할 수 있으므로 다음에 설명하는 내용은 Prometheus뿐만 아니라 그 이상에 적용됩니다.
이 장에서 설명하는 옵션에는 전용 파일이 필요하며, 그 경로는 --web.config.file 로 전달할 수 있습니다. 요청할 때마다 파일이 읽히므로 변경 사항을 적용하기 위해 Prometheus나 내보내기를 다시 로드할 필요가 없습니다.
TLS 사용
TLS는 네트워크 영역에서 클라이언트와 서버 간의 통신을 보호하기 위해 널리 사용됩니다. 너무 자세히 설명하지 않더라도 TLS를 사용하면 클라이언트는 자신이 연결하는 서버가 알려진 CA(인증 기관)에서 인식되는지 확인한 다음 후속 트래픽을 암호화할 수 있습니다. 또한 서버에 연결할 때 유효한 TLS 인증서를 제시하도록 하여 클라이언트를 인증하는 데 TLS를 사용할 수도 있습니다.
Prometheus 인스턴스에서 TLS를 사용하려면 먼저 몇 가지 인증서를 가져와야 합니다. 이 예에서는 자체 서명된 인증서를 사용하고 있습니다. 그러나 실제 배포에서는 사용자가 직접 인식할 수 있는 회사의 내부 CA 또는 Let's Encrypt와 같은 공개 CA를 사용해야 합니다.
먼저, OpenSSL로 자체 서명 CA를 생성합니다:
$ openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 \
-keyout prometheus.key -out prometheus.crt \
-subj "/CN=localhost" -addext "subjectAltName = DNS:localhost"
이 명령은 prometheus.key와 prometheus.crt라는 두 개의 파일을 생성합니다.
방금 생성한 인증서 및 개인 키로 TLS를 사용하려면 예제 20-1에 표시된 내용( )을 사용하여 web.yml 파일을 만듭니다.
예제 20-1. web.yml
tls_server_config:cert_file:prometheus.crtkey_file:prometheus.key
참고
promtool 에서 웹 구성 파일의 유효성을 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access