在受管理的控制層中啟用選用功能

本頁面說明如何在受管理的 Cloud Service Mesh 中啟用選用功能。如要瞭解叢集內控制層,請參閱「在叢集內控制層啟用選用功能」。

在您佈建代管 Cloud Service Mesh 時,支援的功能會因控制層實作方式而異,且某些功能僅可透過許可清單使用。詳情請參閱「支援的功能」。如果您目前使用的是 IstioOperator 型設定,從 IstioOperator 遷移工具可協助您轉換為受控管控制平面支援的設定。

無分發版的 Proxy 圖片

  • 如果您直接透過代管的 TRAFFIC_DIRECTOR 控制層導入,則只支援不含發布端的圖片類型。而且無法變更。

  • 如果您的機隊原本使用 ISTIOD 控制層導入方式,且已遷移至 TRAFFIC_DIRECTOR 導入方式,則在遷移期間,您的映像檔類型不會有所變更,您可以自行將映像檔類型變更為 distroless。

最佳做法是將容器執行階段的內容限制為必要的套件。這種方法可提升安全性,並提高常見安全漏洞與揭露 (CVE) 掃描器的信號雜訊比。Istio 提供以 distroless 基本映像檔為基礎的 Proxy 映像檔。

無發行版的 Proxy 映像檔不含 Proxy 以外的任何二進位檔。因此,您無法在容器中exec殼層,或使用 curlping 或其他偵錯公用程式。不過,您可以使用暫時性容器附加至執行中的負載 Pod,以便檢查並執行自訂指令。例如,請參閱「收集 Cloud Service Mesh 記錄」。

以下設定會為整個 Cloud Service Mesh 啟用無發行映像檔。圖片類型變更需要重新啟動每個 Pod,並重新注入才能生效。

     apiVersion: v1
     kind: ConfigMap
     metadata:
       name: istio-release-channel
       namespace: istio-system
     data:
       mesh: |-
         defaultConfig:
           image:
             imageType: distroless

您可以使用下列 Pod 註解覆寫 imageType

sidecar.istio.io/proxyImageType: debug

使用註解變更部署作業的圖片類型後,應重新啟動部署作業。

kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME

由於不需要偵錯基準映像檔,因此大多數類型的 Proxy 偵錯功能都應使用 gcloud beta container fleet mesh debug proxy-status / proxy-config (詳細資料)。

傳出流量政策

根據預設,outboundTrafficPolicy 會設為 ALLOW_ANY。在這個模式下,系統會允許所有流量連往任何外部服務。如要控管並限制流量,只允許流量傳送至已定義服務項目的外部服務,您可以將 ALLOW_ANY 的預設行為變更為 REGISTRY_ONLY

  1. 下列設定會將 outboundTrafficPolicy 設為 REGISTRY_ONLY

      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: istio-release-channel
        namespace: istio-system
      data:
        mesh: |-
          outboundTrafficPolicy:
           mode: REGISTRY_ONLY
    

    其中 release-channel發布版本 (asm-managedasm-managed-stableasm-managed-rapid)。

  2. 您可以使用下列指令,在 configmap 中進行先前必要的設定變更:

    kubectl edit configmap istio-release-channel -n istio-system -o yaml
    
  3. 執行下列指令即可查看 ConfigMap:

    kubectl get configmap istio-release-channel -n istio-system -o yaml
    
  4. 如要確認 outboundTrafficPolicy 已透過 REGISTRY_ONLY 啟用,請確認 mesh: 部分顯示下列行。

    ...
    apiVersion: v1
    data:
      mesh: |
        outboundTrafficPolicy:
         mode: REGISTRY_ONLY
    ...
    

使用者驗證

您可以設定代管 Cloud Service Mesh 使用者驗證,以便執行瀏覽器端的使用者驗證,並控管對已部署工作負載的存取權。詳情請參閱「設定 Cloud Service Mesh 使用者驗證」。

為工作負載設定最低 TLS 版本

如果您直接透過代管的 TRAFFIC_DIRECTOR 控制層導入,就無法變更這項設定。

您可以使用 minProtocolVersion 欄位,為工作負載中的 TLS 連線指定最低 TLS 版本。如要進一步瞭解如何設定最低傳輸層安全標準 (TLS) 版本,以及檢查工作負載的 TLS 設定,請參閱「Istio 工作負載最低傳輸層安全標準 (TLS) 版本設定」。

以下範例顯示 ConfigMap 將工作負載的最低 TLS 版本設為 1.3:

apiVersion: v1
kind: ConfigMap
metadata:
  name: istio-release-channel
  namespace: istio-system
data:
  mesh: |-
    meshMTLS:
      minProtocolVersion: TLSV1_3