在TLS通訊中,用戶端會校正服務端提供的認證是否合法,而用戶端自身並不需要提供認證,這就意味著服務端無法校正用戶端的身份。在一些需要更進階別安全配置的情境中,服務端同樣需要校正用戶端的身份,此時就需要使用mTLS通訊。mTLS通訊要求用戶端和服務端都提供認證,互相校正通過後才可以進行加密通訊。本文介紹如何使用ASM在您的環境中實現全鏈路的mTLS通訊。
背景資訊
通過ASM,您可以在完全不修改應用的情況下使用mTLS對全鏈路流量進行加密,並且可以在各個環節使用mTLS提供的認證來進行存取控制,以提升業務整體的安全水位。
在Kubernetes環境下,我們通常說的全鏈路包含三個階段:
入口流量:叢集外用戶端訪問叢集內服務。
東西向流量:叢集內工作負載之間相互訪問的東西向流量。
出口流量:叢集內工作負載訪問叢集外服務。
使用ASM實現全鏈路mTLS有以下好處:
應用只需要關注商務邏輯,將安全能力下沉至網格基礎設施,加速業務迭代。
ASM管理了叢集內通訊的憑證發行以及輪轉,大大降低了您的維護負擔。
遷移過程中無需修改業務應用,遷移更加順暢。
使用mTLS加密入口流量
叢集外用戶端訪問叢集內服務時,需要通過ASM入口網關。具體操作,請參見在ASM入口網關上配置mTLS服務並限制特定用戶端訪問。
使用mTLS加密東西向流量
東西向流量的mTLS通訊是ASM提供的基礎功能之一,您無需額外配置,只要將叢集內通訊雙方分別注入Sidecar代理即可。具體操作,請參見安裝Sidecar代理。
兩個注入了Sidecar代理的Pod之間的通訊會被自動升級為mTLS,應用無需做任何修改。此外,由雩都對接了ASM控制面,ASM出/入口網關和Sidecar代理之間的通訊也會自動使用mTLS加密。
mTLS通訊中用到的認證基於工作負載使用的ServiceAccount頒發,並且由ASM控制面定期進行輪轉,完全無需手動幹預。
為了方便您逐步將業務遷移至ASM中,ASM提供了對等身份認證配置。在遷移過程中,您可以將對等身份認證層級調整為PERMISSIVE
(同時接收明文和mTLS流量),遷移結束後您可以將對等身份認證層級修改為STRICT
(只接收mTLS流量),以確保叢集內的流量全部使用mTLS進行了加密。
使用mTLS加密出口流量
如果您有一個叢集外服務,只能使用mTLS進行訪問。此時您的應用依舊發起明文請求,ASM出口網關可以將您的明文流量升級為mTLS並且發送給外部服務。具體操作,請參見使用ASM出口網關訪問外部mTLS服務。