使用 保護 Kubernetes AWS 私有 CA - AWS Private Certificate Authority

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 保護 Kubernetes AWS 私有 CA

Kubernetes 容器和應用程式使用數位憑證,透過 TLS 提供安全身分驗證和加密。Kubernetes 中廣泛採用的 TLS 憑證生命週期管理解決方案是 cert-manager,這是 Kubernetes 的附加元件,可請求憑證、將憑證分發至 Kubernetes 容器,並自動更新憑證。

AWS 私有 CA 提供開放原始碼外掛程式給 cert-manager、aws-privateca-issuer,提供給想要設定 CA 而不在叢集中存放私有金鑰的 cert-manager 使用者。具有控制存取和稽核其 CA 操作的法規要求的使用者,可以使用此解決方案來改善稽核能力並支援合規。您可以搭配 Amazon Elastic Kubernetes Service (Amazon EKS) AWS、 上自我管理的 Kubernetes 或在內部部署 Kubernetes 中使用 AWS Private CA Issuer 外掛程式。您可以搭配 x86 和 ARM 架構使用外掛程式。

下圖顯示可在 Amazon EKS 叢集中使用 TLS 的一些選項。此範例叢集包含各種資源,位於負載平衡器後方。這些數字識別 TLS 安全通訊的可能端點,包括外部負載平衡器、輸入控制器、服務中的個別 Pod,以及一對 Pod 彼此安全通訊。

簡化的 Kubernetes 拓撲
  1. 負載平衡器的終止。

    Elastic Load Balancing (ELB) 是一種 AWS Certificate Manager 整合服務,這表示您可以使用私有 CA 佈建 ACM、簽署憑證,並使用 ELB 主控台安裝憑證。此解決方案提供遠端用戶端與負載平衡器之間的加密通訊。資料會以未加密的方式傳遞至 EKS 叢集。或者,您可以提供私有憑證給非AWS 負載平衡器來終止 TLS。

  2. 在 Kubernetes 輸入控制器終止。

    輸入控制器位於 EKS 叢集內,做為原生負載平衡器和路由器。如果您同時安裝了 cert-manageraws-privateca-issuer,並使用私有 CA 佈建叢集,Kubernetes 可以在控制器上安裝已簽署的 TLS 憑證,使其可做為叢集的外部通訊端點。負載平衡器和輸入控制器之間的通訊會加密,而傳入後,資料會未加密地傳遞至叢集的資源。

  3. 在 Pod 終止。

    每個 Pod 都是一或多個容器的群組,可共用儲存體和網路資源。如果您已同時安裝 cert-manageraws-privateca-issuer,並使用私有 CA 佈建叢集,Kubernetes 可以視需要在 Pod 上安裝已簽署的 TLS 憑證。根據預設,叢集中其他 Pod 無法使用在 Pod 終止的 TLS 連線。

  4. Pod 之間的安全通訊。

    您也可以使用憑證佈建多個 Pod,以允許它們彼此通訊。可能的情況如下:

    • 使用 Kubernetes 產生的自我簽署憑證進行佈建。這可保護 Pod 之間的通訊,但自我簽署憑證不符合 HIPAA 或 FIPS 要求。

    • 使用私有 CA 簽署的憑證佈建。如同上述第 2 和 3 項,這需要同時安裝 cert-manageraws-privateca-issuer,並使用私有 CA 佈建叢集。然後,Kubernetes 可以視需要在 Pod 上安裝簽署的 TLS 憑證。

cert-manager 的跨帳戶使用

具有 CA 跨帳戶存取權的管理員可以使用 cert-manager 來佈建 Kubernetes 叢集。如需詳細資訊,請參閱跨帳戶存取私有 CAs的安全最佳實務

注意

只有特定 AWS 私有 CA 憑證範本可用於跨帳戶案例。如需可用範本的清單,支援的憑證範本 請參閱 。

支援的憑證範本

下表列出可與 cert-manager 搭配使用以佈建 Kubernetes 叢集的 AWS 私有 CA 範本。

範例解決方案

下列整合解決方案示範如何在 Amazon EKS 叢集 AWS 私有 CA 上設定對 的存取。