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 和关联策略/模板提供提升权限的角色的任何受损身份的凭据。reference-1 和 reference-2
撤销受损的 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 存储库