Istio mTLS 如何与 Prometheus 配合使用

问题描述 投票:0回答:1

我正在尝试让 prometheus 与 istio 一起使用,并启用网格范围的严格 mTLS。从 istio 文档来看,istio 证书已与 prometheus 容器共享,并更新报废作业以使用这些证书。

此处的同一 TLS 设置部分中,“控制平面、网关和 Envoy sidecar 指标都将通过明文进行抓取。但是,应用程序指标将遵循为工作负载配置的任何 Istio 身份验证策略。

当 15020 端口(指标合并端口)被排除在代理重定向(从 istio-init 容器中找到)之外时,应用程序指标将如何遵循应用的身份验证策略/mTLS。

这是否意味着,我们应该使用原始端口而不是 istio 公开的端口?

PROXY_PORT=15001
PROXY_INBOUND_CAPTURE_PORT=15006
PROXY_TUNNEL_PORT=15008
PROXY_UID=1337
PROXY_GID=1337
INBOUND_INTERCEPTION_MODE=REDIRECT
INBOUND_TPROXY_MARK=1337
INBOUND_TPROXY_ROUTE_TABLE=133
INBOUND_PORTS_INCLUDE=*
INBOUND_PORTS_EXCLUDE=15090,15021,15020
prometheus istio mtls istio-prometheus
1个回答
0
投票

根据我的理解,您应该使用应用程序公开的原始端口,而不是 sidecar 端口。

我不确定这是否适用于您,但以下是您可以在网格中抓取 mTLS 处于

STRICT
模式的位置的方法之一。

再次强调,如果您的组织安全不允许这样做,则不要实施它。

我们通过应用

PeerAuthentication
策略禁用了应用程序的 Prometheus 抓取端口的 mTLS,因为我们的指标没有返回任何敏感数据。

apiVersion: security.istio.io/v1
kind: PeerAuthentication
metadata:
  name: default
  namespace: foo
spec:
  selector:
    matchLabels:
      app: fluentd
  mtls:
    mode: STRICT
  portLevelMtls:
    24231:
      mode: DISABLE

24231
是应用程序暴露的Prometheus抓取端口。应用程序的其他端口需要 mTLS,但不需要抓取端口。

https://istio.io/latest/docs/reference/config/security/peer_authentication/

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.