This is not an officially supported Google product. This code creates PoC demo environment for CSA Certificate Authority Service demo. This demo code is not built for production workload.
此架構指南可實現憑證授權單位服務 (CAS) 的簡化、安全部署。它創建一個根證書頒發機構以及兩個從屬證書頒發機構和一個葉證書。這些憑證授權單位高度可用、可擴展且易於維護,使您能夠建立私有公鑰基礎設施 (PKI) 以透過憑證斷言身分並在整個工作負載中建立信任根。
雖然本架構指南重點介紹完整的CAS 部署(如下圖中的架構1 所示)(即所有憑證授權單位都託管在Google Cloud 中),但CAS 非常靈活,讓您的組織能夠以多種方式建立私有PKI如下圖所示的不同方式。
我們還將提供有關如何使用 CSR(憑證簽署請求)來實現混合架構的詳細信息,其中 CA 可以駐留在 GCP 之外(架構 #2-3)。
憑證授權單位服務 (CAS) - 憑證授權單位服務是一項高度可用、可擴充的 Google Cloud 服務,可讓您簡化、自動化和自訂私有憑證授權單位 (CA) 的部署、管理和安全性。
金鑰管理服務 (KMS) - 雲端金鑰管理服務可讓您在單一集中式雲端服務中建立、匯入和管理加密金鑰並執行加密操作。您可以直接使用 Cloud KMS、Cloud HSM 或 Cloud external Key Manager,或使用其他 Google Cloud 服務中的客戶管理的加密金鑰 (CMEK) 整合來使用這些金鑰並執行這些操作。
Google Cloud Storage (GCS) - 雲端儲存是一種用於儲存非結構化資料的託管服務。儲存任意數量的資料並根據需要隨時檢索它。
使用 GCP CAS 設計 PKI 時,應考慮以下限制以及配額和限制以及已知限制:
資源 | 單元 | 價值 |
---|---|---|
待定 CA 1 | 每個地點每個項目 | 100 |
CA | 每個地點每個項目 | 1,000 |
未過期的吊銷證書2 | 每個 CA 或憑證撤銷清單 (CRL) | 50萬 |
1待定憑證授權單位 (CA) 是已建立但尚未啟動的從屬 CA,因此處於 AWAITING_USER_ACTIVATION 狀態。
2 CRL 最多可以包含 500,000 個未過期的吊銷證書。如果您嘗試撤銷超過此限制,撤銷請求將會失敗。如果您需要撤銷超過 500,000 張證書,我們建議您等到現有已撤銷的證書過期或撤銷頒發 CA 證書。
##Terraform 說明:
登入您的組織並為自己指派要用於部署的專案的CA 服務管理員和雲端 KMS 管理員角色。
如果需要建立一個新項目並啟用計費。請按照本指南中的步驟操作。
開啟 Cloud shell 並使用以下命令克隆以下 git 儲存庫:
git clone https://github.com/GCP-Architecture-Guides/csa-certificate-authority-service.git
導航到 csa-certificate-authority-service 資料夾。
cd csa-certificate-authority-service</th>
匯出 Terraform 變數中的項目 ID
export TF_VAR_demo_project_id=[YOUR_PROJECT_ID]
在 csa-certificate-authority-service 資料夾中,依序執行下列命令。
terraform init terraform plan terraform apply
如果出現提示,請授權 API 呼叫。
部署完成後,它將發布編排的資產的輸出摘要。它會在五分鐘內部署資源。
完成演示後,導航至certificate-authority-service資料夾並執行以下命令以銷毀所有演示資源。
terraform destroy
##Terraform 總結:
水池 | CA | 有效性 | 狀態 | 主題名稱 | 地區 | 等級 |
---|---|---|---|---|---|---|
演示根池 | 根CA | 10年 | 啟用 | 組織:演示 CA CN:演示 資源 ID:[預設] | us-central1(愛荷華州) | 企業 |
演示子池 | Google Cloud 中的子 CA 與根 CA | 3年 | 啟用 | 組織:演示 CA CN:演示 資源 ID:[預設] | us-central1(愛荷華州) | 企業 |
演示-子池-2 | Google Cloud 中的子 CA 與根 CA | 3年 | 啟用 | 組織:演示 CA CN:演示 資源 ID:[預設] | 美國東部1 | 企業 |
水池 | 公認的企業社會責任方法 | 允許的密鑰和演算法 | 密鑰大小和演算法 | 發布選項 | 配置的基線值 | 配置的擴展約束 | 配置的身份約束 |
---|---|---|---|---|---|---|---|
演示根池 | 允許全部 | 無限制 | RSA_PKCS1_4096_SHA256 | 至 PEM 格式的 GCS Bucket | 沒有任何 | 複製憑證請求中的所有副檔名 | 從憑證要求中複製主題和 SAN |
演示子池 | 允許全部 | 無限制 | RSA_PKCS1_4096_SHA256 | 至 PEM 格式的 GCS Bucket | 沒有任何 | 複製憑證請求中的所有副檔名 | 從憑證要求中複製主題和 SAN |
演示-子池-2 | 允許全部 | 無限制 | RSA_PKCS1_4096_SHA256 | 至 PEM 格式的 GCS Bucket | 沒有任何 | 複製憑證請求中的所有副檔名 | 從憑證要求中複製主題和 SAN |
證書頒發機構服務的最佳實踐
Google Cloud 的憑證授權單位服務有多項日誌記錄和監控要求,以確保服務的安全性和完整性。這些要求包括以下內容:
稽核日誌記錄:對服務執行的憑證核發、續約、撤銷等操作都會記錄日誌,可供客戶稽核。
事件通知:客戶可以透過電子郵件或 Webhook 接收重要事件的通知,例如憑證過期。
證書透明度:所有頒發的證書都會記錄到透明度日誌中,以便審核證書的頒發和撤銷。
安全性和可用性監控:安全性和營運團隊不斷監控服務是否有潛在的安全威脅和可用性問題。
合規性:Google Cloud 的憑證授權單位服務符合規定憑證授權單位的安全和操作要求的各種標準。
總體而言,這些日誌記錄和監控要求旨在為客戶提供服務的透明度和可見性,同時確保服務的安全性和可用性。
Google Cloud 服務會寫入審核日誌來幫助您回答「誰在何時何地做了什麼?」等問題。在您的 Google Cloud 資源內。
以下類型的審核日誌可用於 CA 服務:
管理員活動審核日誌
包括寫入元資料或設定資訊的「管理寫入」操作。
您無法停用管理活動審核日誌。
資料存取審核日誌
包括讀取元資料或設定資訊的「管理讀取」操作。還包括讀取或寫入用戶提供的資料的「資料讀取」和「資料寫入」操作。
若要接收資料存取審核日誌,您必須明確啟用它們。
有關證書頒發機構服務建立的具體審核日誌,請參閱。
管理活動審核日誌始終啟用;你不能禁用它們。
資料存取審核日誌預設為停用狀態,除非明確啟用,否則不會寫入。
有關啟用部分或全部資料存取審核日誌的信息,請參閱啟用資料存取審核日誌。
在 Google Cloud 控制台中,您可以使用日誌瀏覽器檢索 Cloud 專案、資料夾或組織的審核日誌條目:
在 Google Cloud 控制台中,前往日誌記錄 > 日誌瀏覽器頁面。
選擇現有的雲端項目、資料夾或組織。
在查詢建構器窗格中,執行下列操作:
protoPayload.serviceName="privateca.googleapis.com"
雲端監控可用於監控對憑證授權單位服務中的資源執行的操作。
使用以下說明啟用推薦警報。
前往 Google Cloud 控制台中的 CA 服務概覽頁面。
在概述頁面的右上角,點擊+ 5 推薦警報。
啟用或停用每個警報,閱讀其說明。
某些警報支援自訂閾值。例如,您可以指定何時收到有關 CA 憑證即將到期的警報,或指定憑證建立失敗率較高時的錯誤率。
所有警報都支援通知渠道。
啟用所有所需警報後,按一下「提交」 。
記錄證書政策和模板
身分限制
擴展約束
主要使用條件
策略標識符
擴充
為了降低濫用風險,應審查證書策略以確保範本具有核准和定義的功能
制定 CA 妥協響應計劃
教育所有利害關係人
至少每年審查 CA 安全和通訊政策
建立備份 CA 計劃
庫存 CA
驗證是否僅使用經過核准的 CA
確保只有經過批准的根才是可信的
列出依賴方系統信任的根 CA
檢查並驗證現有證書範本的權限
對依賴方系統實施撤銷檢查
啟用審核日誌和警報
根據警報和報告設計確定妥協方案
對發生的事情建立清晰的了解
誰發現了這事件。
如果有的話,誰才是該事件的肇事者。
當 CA 受到威脅時。
事發地點。
受事件影響的根、子 CA 和最終使用者憑證的數量。
據信該事件的根本原因。
已採取或將採取哪些補救措施來解決事件的根本原因。
涉及違規的憑證和網域的清單。
該事件是如何被發現的?
漏洞利用的詳細描述。
有關哪些基礎設施受到損害的詳細資訊。
有關基礎設施如何受到損害的詳細資訊。
事件的詳細時間表。
正常操作是否偵測到該漏洞?如果不是,為什麼?
該漏洞是在最近的審計中發現的嗎?如果是,漏洞是否已修復?如果漏洞沒有修復,為什麼不呢?
最近的審核是否偵測到此漏洞?如果不是,請解釋原因。
需要做出哪些政策改變?
任何其他適當的資訊。
啟動事件回應團隊
遏制並隔離受影響的 CA 環境若要禁止 CA 頒發證書,請參考
制定計劃,向受影響的利害關係人(內部/外部)傳達影響和下一步緩解措施
完成調查並驗證遏制後,請執行以下操作:
撤銷並重置對應到為 CA 和關聯策略/範本提供提升權限的角色的任何受損身分的憑證。
撤銷受損的 CA 和關聯憑證並建立新的 CA 參考
新增至 OCSP 回應程式中的 CRL/更新狀態(如果不是自動)以通知主體、依賴方和供應商
撤銷現有憑證並從新 CA 參考重新頒發證書
刪除/替換根證書
驗證依賴方系統上啟用了吊銷檢查
驗證證書和根替換
追蹤並報告進度
請參閱下面運行此演示環境的每月估計成本。請注意,這是在建立模式時估算的,估算值可能會隨著時間而變化,並且可能因地區而異,請在 Google Cloud 定價計算器中查看每種資源的成本。
開發營運 SKU | 企業SKU | |
---|---|---|
每月 CA 費用 | 20 美元 | 200 美元 |
證書費用 | 0-50K @ 0.3 美元 50K -100K @ 0.03 美元 10 萬+ @ $0.0009 跨 CA 分層 | 0-50K @ 0.5 美元 50K -100K @ 0.05 美元 10 萬+ @ $0.001 跨 CA 分層 |
HSM 對 CA 金鑰的支持 | ||
自帶 CA 金鑰 | X | |
證書追蹤和撤銷 | X | |
QPS | 25 | 7 |
優化用於... | 產量大,壽命短 | 體積小,壽命長 |
CAS 概述
CAS 部落格簡介
CAS 教學視頻
CAS GitHub 儲存庫