PeerAuthentication

PeerAuthentication

PeerAuthentication 定義了傳入連線的相互 TLS (mTLS) 要求。

在邊車模式中,PeerAuthentication 決定是否允許或需要使用 mTLS 連線至 Envoy 代理邊車。

在環境模式中,ztunnel 節點代理會透明地為 Pod 啟用安全性。(代理之間的流量使用 HBONE 協定,其中包括使用 mTLS 加密。) 因此,不支援 DISABLE 模式。STRICT 模式有助於確保無法建立繞過網格的連線。

範例

在命名空間 foo 下要求所有工作負載使用 mTLS 流量的原則

apiVersion: security.istio.io/v1
kind: PeerAuthentication
metadata:
  name: default
  namespace: foo
spec:
  mtls:
    mode: STRICT

對於網格層級,請根據您的 Istio 安裝將原則放置在根命名空間中。

允許命名空間 foo 下的所有工作負載同時使用 mTLS 和純文字流量,但要求工作負載 finance 使用 mTLS 的原則。

apiVersion: security.istio.io/v1
kind: PeerAuthentication
metadata:
  name: default
  namespace: foo
spec:
  mtls:
    mode: PERMISSIVE
---
apiVersion: security.istio.io/v1
kind: PeerAuthentication
metadata:
  name: finance
  namespace: foo
spec:
  selector:
    matchLabels:
      app: finance
  mtls:
    mode: STRICT

對所有 finance 工作負載啟用嚴格 mTLS,但保留連接埠 8080 為純文字的原則。請注意,portLevelMtls 欄位中的連接埠值是指工作負載的連接埠,而非 Kubernetes 服務的連接埠。

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

從命名空間 (或網格) 設定繼承 mTLS 模式,並停用工作負載連接埠 8080 的 mTLS 的原則。

apiVersion: security.istio.io/v1
kind: PeerAuthentication
metadata:
  name: default
  namespace: foo
spec:
  selector:
    matchLabels:
      app: finance
  mtls:
    mode: UNSET
  portLevelMtls:
    8080:
      mode: DISABLE
欄位類型描述必要
selectorWorkloadSelector

選取器決定要將 PeerAuthentication 套用至哪些工作負載。選取器將與原則的相同命名空間中的工作負載比對。如果原則位於根命名空間中,則選取器也會與所有命名空間中的工作負載比對。

如果未設定,則原則會套用至與原則相同的命名空間中的所有工作負載。如果原則位於根命名空間中,則會套用至網格中的所有工作負載。

mtlsMutualTLS

工作負載的相互 TLS 設定。如果未定義,則從父項繼承。

portLevelMtlsmap<uint32, MutualTLS>

連接埠特定的相互 TLS 設定。這些設定僅在指定工作負載選取器時套用。連接埠是指工作負載的連接埠,而非 Kubernetes 服務的連接埠。

PeerAuthentication.MutualTLS

相互 TLS 設定。

欄位類型描述必要
模式模式

定義用於對等身份驗證的 mTLS 模式。

PeerAuthentication.MutualTLS.Mode

名稱描述
未設定

若有父級設定,則繼承父級設定。否則視為 PERMISSIVE

停用

連線不使用通道傳輸。

寬鬆

連線可以是純文字或 mTLS 通道。

嚴格

連線是 mTLS 通道(必須提供帶有用戶端憑證的 TLS)。

這項資訊對您有幫助嗎?
您有任何改進建議嗎?

感謝您的回饋!