憑證管理服務最佳做法

本頁說明在 Google Cloud 上設定及管理憑證的各種最佳做法,包括使用 Certificate Manager 和 Certificate Authority Service (CA Service)。本頁說明如何設計憑證管理架構。

閱讀本頁面之前,請務必先熟悉憑證管理工具總覽憑證授權單位服務總覽頁面。

設計憑證管理架構

設計企業憑證管理策略時,您必須考量貴機構的主要用途,以及憑證的整個生命週期。這些決策會影響費用、營運負擔,以及實作憑證管理功能 (例如核發、撤銷和輪替) 的便利性。

以下各節將說明每種設計選擇的建議做法。

選擇憑證類型

建立憑證時,請務必根據應用程式需求和貴機構的安全政策,選取適合您用途的憑證類型。

如要分析最適合您的憑證類型,請參閱下列流程圖:

評估要選擇的憑證類型。
評估要選擇哪種憑證類型 (按一下即可放大)。

以下提供幾個實用的說明文件連結,說明流程圖中提及的主題:

簡化私人 CA 服務階層

建議您盡可能簡化 CA 服務的階層,確保作業和疑難排解程序順利進行。您必須將根憑證授權單位 (CA) 儲存在自己的 Google 專案中。根 CA 會簽署幾個中繼 CA,而這些 CA 接著會核發最終憑證。

這種扁平式階層結構可提高透明度、簡化憑證撤銷程序,並降低設定錯誤的可能性。雖然 CA 服務是區域性服務,但一個區域的根 CA 可以簽署其他區域的下層 CA。

如圖所示,請在 CA 服務階層中遵循下列最佳做法:

  • 將根 CA 隔離在自己的 Google Cloud 專案中,以便簽署核發 CA。
  • 在不同專案中代管的 CA 集區中,建立核發 CA。請在不同專案中代管這些集區,並依地理位置 (區域)、軟體開發生命週期 (開發、生產、測試) 或特定用途進行區隔。

  • 設定 Certificate Manager,使用可為支援資源核發私下信任憑證的核發 CA 集區。

建議的 CA 階層設計。
建議的 CA 階層設計 (按一下可放大)。

全面涵蓋主機名稱

建議您確認憑證為服務需要保護的所有網域和子網域提供足夠的主機名稱涵蓋範圍。如果主機名稱涵蓋範圍不足,使用者可能會看到安全性警告、服務中斷,以及不良的使用者體驗。

避免多個網域共用單一憑證。如果單一憑證無法續訂或遭到誤刪,憑證涵蓋的所有網域都會變得不安全。建議您為不同網域建立不同的憑證。

如果您打算日後新增子網域或服務,請一開始就使用萬用字元,將子網域或服務納入憑證。舉例來說,*.myorg.example.com 的萬用字元憑證只會保護第一個子網域層級,不會保護更深層的子網域層級,例如 sub.subdomain.myorg.example.com

使用 Google 代管憑證

為有效管理公開憑證並簡化操作,建議使用 Google 管理的憑證。這種做法可大幅減少作業負擔,自動執行憑證輪替等工作,並消除手動續約相關風險。

此外,Google 管理的憑證可與其他Google Cloud 服務完美整合。Google 代管的憑證效期為 90 天,系統會在憑證到期前一個月左右開始續約程序。

擴大規模並提升認證成效

以下各節說明如何擴充憑證,以及提升憑證相關動作的效能,例如佈建和續約。

為 Certificate Manager 採用去中心化部署

以專案和位置為單位使用 Certificate Manager,也就是說,憑證會儲存在與相關聯資源相同的專案和區域。這項策略可防止不同區域重複使用憑證,進而提升可靠性,並在極不可能發生的區域性服務中斷事件中,有效降低影響。

此外,由於配額和限制是套用至 Google Cloud 專案層級,因此在多個專案中部署 Certificate Manager 會增加整體配額。這是因為在一個專案中使用資源,不會影響另一個專案的可用配額。

使用含 ECDSA 金鑰的憑證

本節將探討為何我們建議使用 ECDSA 而非 RSA,做為憑證簽署金鑰的最佳做法。

要使用的金鑰類型

對於大多數 TLS 憑證,建議選擇 ECDSA P-256 金鑰類型,因為 ECDSA P-256 提供強大的密碼安全防護、簽署作業的卓越效能,以及有效率的網路頻寬使用方式。

使用其他憑證金鑰類型的原因可能如下:

  • 如需支援不支援 ECDSA 憑證的舊版用戶端,除了 ECDSA P-256 憑證,您也可以提供 RSA-2048 憑證。
  • 如有特定法規遵循規定,要求您使用較大的金鑰大小或特定金鑰類型,則可使用 ECDSA P-384、RSA-2048、RSA-3072 和 RSA-4096 金鑰。

為什麼要選擇 ECDSA 而非 RSA

ECDSA 的主要優勢在於,與 RSA 相比,ECDSA 能以小得多的金鑰提供同等的加密安全等級。這項效率可轉換為實質的效能和資源效益。較小的金鑰並不代表安全性較弱,因為 ECDSA 是以橢圓曲線離散對數問題為基礎,可為每個金鑰單元提供更強大的安全性,且在某些情況下,運算效率也比 RSA 更高。

例如:

  • 256 位元 ECDSA 金鑰提供的安全等級與 RSA-3072 金鑰類似。
  • 384 位元的 ECDSA 金鑰提供的安全等級,高於任何廣泛支援的 RSA 金鑰大小。

ECDSA 的主要優點:

  • 效能:與提供同等安全等級的 RSA 作業相比,ECDSA 簽署作業的運算密集程度明顯較低。這可減少 CPU 負載和延遲時間,對於高輸送量或對延遲時間敏感的系統而言至關重要。

  • 效率:較小的金鑰和簽章需要的頻寬和儲存空間較少,這對資源受限的環境 (例如行動裝置和物聯網裝置) 特別有利。

您可以建立下列自訂機構政策,強制規定憑證使用特定金鑰類型。這項功能僅適用於 CA 服務的 Google 代管憑證 (私人信任代管憑證),不適用於自行管理的憑證和公開信任的 Google 代管憑證。

    name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictAlgorithm \
    resourceTypes: \
    - certificatemanager.googleapis.com/CertificateIssuanceConfig \
    methodTypes: \
    - CREATE \
    - UPDATE \
    condition: "resource.keyAlgorithm == 'ECDSA_P256'" \
    actionType: ALLOW \
    displayName: Allow only ECDSA_P256 in Certificate Issuance configs \
    description: Only ECDSA_P256 certificates are allowed from CA Service.

使用 CA 集區從私人 CA 核發憑證

建議您為簽發 CA 使用 CA 集區。CA 集區內含多個 CA,這些 CA 採用相同的憑證核發政策和 Identity and Access Management (IAM) 政策。使用 CA 集區可透過負載平衡,將傳入的憑證要求分配給集區內所有已啟用的 CA,進而提高每秒有效查詢總數 (QPS)。這樣一來,既能提升效能,也不會影響工作負載或用戶端變更。

憑證授權單位集區提供單一端點,用於核發及擷取憑證。您可以使用 CA 集區安全地輪替 CA,避免因憑證過期或遭盜用而導致服務中斷。

使用憑證對應

為確保最佳延展性,建議您搭配使用憑證對應和支援的資源。憑證對應關係的設計可擴充,預設支援數千個憑證項目,並可處理數百萬個憑證。負載平衡器使用憑證對應項目時,這些項目會優先於其他憑證,例如 Compute Engine SSL 憑證。

您也可以透過憑證對應設定憑證選擇邏輯。舉例來說,在握手期間,如果用戶端的主機名稱與已佈建憑證對應中的任何項目都不相符,負載平衡器就會傳回主要憑證。

選擇正確的網域授權類型

如要核發 Google 代管憑證,您可以使用負載平衡器授權DNS 授權,證明自己擁有網域。

下表說明每種方法的注意事項:

功能 負載平衡器授權 DNS 授權
設定複雜度 不需要採取任何額外的設定步驟,也不必變更 DNS 設定。 您必須建立 DNS 授權,並將對應的 CNAME 記錄新增至 DNS 設定。
網路安全 負載平衡器必須可透過網際網路在連接埠 443 上完整存取,包括憑證服務的所有網域的 DNS 設定。負載平衡器授權不適用於其他設定。 DNS 授權適用於高度複雜的設定,例如通訊埠 (443 以外) 和目標 Proxy 前方的 CDN 層。
佈建速度 佈建速度更快。負載平衡器完全設定完畢並開始處理網路流量後,您才能佈建憑證。 您可以預先佈建憑證,目標 Proxy 準備好服務網路流量前即可完成。
萬用字元憑證 不支援。 支援。

自動輪替自行管理的憑證

與 Google 代管憑證不同,自行管理憑證必須在到期前手動更換。建議您使用所選的憑證生命週期管理 (CLM) 產品,自動執行這項程序。這有助於減少錯誤、停機時間,並確保營運效率。

您也可以使用憑證對應來協調無縫憑證輪替。這項程序包括下列步驟:

  1. 使用 Cloud Monitoring 和快訊監控憑證到期時間。建議您為接下來 15 到 30 天內到期的憑證建立快訊。
  2. 產生憑證簽署要求 (CSR) 和私密金鑰,然後提交給 CA。
  3. 將 CSR 和私密金鑰提交給 CA,然後擷取新憑證。
  4. 將新憑證上傳至 Certificate Manager 的適當憑證對應。

    重要事項:您必須透過一次 API 呼叫完成這項程序,且不得造成任何停機時間。

套用適當的存取權控管機制

設定存取權控管時,建議您考量最低權限原則和職責分離原則。以下各節會進一步說明這些建議。

秉持最低權限原則

指派管理憑證的權限時,請採用最低權限原則,並授予執行工作所需的最低權限。強烈建議您避免使用基本 IAM 角色。請改為授予預先定義或自訂的 Certificate Manager 和 CA Service 角色,以降低因權限過高而發生安全事件的風險。

規劃權責劃分

建議您為憑證管理員,以及具有憑證核發者或憑證要求者角色的使用者,分別設定不同的身分和權限。如要這麼做,請在使用者資源階層的頂端,分別建立管理員和要求者群組。

請確認管理員群組負責執行下列動作:

  • 管理及維護憑證基礎架構,例如 CA 佈建。
  • 設定憑證範本。
  • 管理憑證撤銷清單 (CRL) 和線上憑證狀態通訊協定 (OCSP) 回應程式。
  • 為 CA 實作安全性政策。

對於代管根 CA 的專案,請避免將「擁有者」(roles/owner)、「編輯者」(roles/editor) 和「CA 服務管理員」(roles/privateca.admin) 等基本角色指派給任何使用者或群組。這種做法可防止意外刪除、錯誤設定和過度曝光。請改用權限存取管理員 (PAM),在安裝及設定根憑證授權單位後,視需要提供理由並取得核准,即可取得即時 (JIT) 存取權。

確認要求者群組負責處理憑證要求,並根據預先定義的範本核發憑證,以利日常作業。

下表列出通常與各種職務相關聯的 IAM 角色:

角色 說明 IAM 角色
憑證管理員 設定及管理 CA 和憑證基礎架構。 憑證管理員擁有者 (roles/certificatemanager.owner)、
CA 服務管理員 (roles/privateca.admin)
憑證要求者 為工作負載要求憑證。 憑證授權單位服務憑證要求者 (roles/privateca.certificateRequester)
工作負載 (自動化服務帳戶) 工作負載或管道會使用這項服務要求憑證。 憑證授權單位服務工作負載憑證要求者 (roles/privateca.workloadCertificateRequester)
安全防護工程師或 PKI 擁有者 管理憑證政策、撤銷和生命週期。 CA 服務作業管理員 (roles/privateca.caManager)、 憑證授權單位服務憑證管理員 (roles/privateca.certificateManager)
開發運作或平台工程師 管理負載平衡器上的憑證部署作業等。 Certificate Manager 編輯者 (roles/certificatemanager.editor)
稽核人員或法規遵循人員 監控憑證及其使用情形。 Certificate Manager 檢視者 (roles/certificatemanager.viewer)、 憑證授權單位服務稽核員 (roles/privateca.auditor)

針對多區域和多雲端部署作業使用專案專屬的 DNS 授權

建議您使用專案專屬的 DNS 授權方法,獨立管理多個區域、多個雲端和軟體開發生命週期 (SDLC) 中專案的多項授權。

將 DNS 授權分門別類,可確保每個專案都保有自己的一組 DNS 記錄和權限。有了這個層級的控制權,每個專案都能自主管理 DNS 設定,不會干擾其他專案的作業,也不會受到其他專案的作業影響。舉例來說,開發團隊可以為特定應用程式實驗新的 DNS 設定,不必擔心對生產系統或其他進行中的專案造成任何負面影響。

使用 CAA 記錄保護網域

憑證授權單位授權 (CAA) 記錄是網域名稱系統 (DNS) 中的安全機制。網域擁有者可透過 CAA 記錄,完全控管哪些公開憑證授權單位 (CA) 可以為自己的網域核發憑證。這項控制措施對於防止未經授權核發憑證至關重要。有了 CAA,詐欺憑證的攻擊面就會縮小,有效提升網站安全性。

如果是 Google 代管的憑證,建議您手動授權下列項目,確保憑證核發和續約要求能順利完成:

Cloud Logging、Cloud Monitoring 和能見度

以下各節說明稽核記錄的最佳做法,以及如何監控憑證使用情況和到期日。

啟用並彙整稽核記錄

如要監控機構的所有資源,請將所有服務 (包括 Certificate Manager) 的管理員活動稽核記錄匯總到集中位置。

這項功能可讓安全團隊或稽核人員集中查看所有與建立或修改 Certificate Manager 和 CA Service 資源相關的活動。如要進一步瞭解如何設定匯總記錄,請參閱「匯總及儲存貴機構的記錄」。

監控憑證使用情形和到期日

建議您為重要的 Certificate Manager 事件設定記錄型快訊,例如根層級 CA 使用情形、憑證到期和憑證刪除。這些快訊可協助您分類作業,例如憑證建立失敗率過高,並觸發下游程序,要求新憑證或提高配額。

針對與權限相關的作業,設定下列記錄快訊和政策:

法規遵循規定

一般而言,法規遵循架構會針對憑證管理指定高層級的期望和目標,而非特定產品或設定。

舉例來說,支付卡產業資料安全標準 (PCI DSS) 和美國國家標準與技術研究院 (NIST) 都要求機構記錄並實作簽署金鑰的輪替週期。此外,他們也規定必須持續監控清單,以及所有用來保護持卡人資料的受信任簽署金鑰和憑證。

如要進一步瞭解 Google Cloud 服務如何協助您滿足各種法規遵循架構的要求,請參閱下列資源:

後續步驟