政策控制功能概览
政策控制功能会强制执行证书授权机构 (CA) 的运营标准以及 CA 颁发的证书。政策控制项是您设置的规则和限制,用于定义 CA 如何颁发证书、请求中可以包含哪些参数以及接受哪些值。在证书颁发机构服务中,政策控制项分为两种:
证书颁发政策等粗粒度政策:证书颁发政策适用于整个 CA 池,并定义高级限制条件,例如允许的密钥类型、允许的证书有效期,以及正文和正文备用名称 (SAN) 限制条件。
证书模板等精细政策:借助证书模板,您可以定义可以颁发哪些类型的证书以及谁有权颁发这些证书,从而防止滥用并维护安全性。证书模板可让您针对不同的用途定义不同类型的证书,从而实现更精细的控制。例如,您可以为特定用例创建证书模板,例如为 Web 服务器创建 TLS 证书,以及为开发者创建代码签名证书。您还可以为不同的部门或团队创建模板,让每个团队都能请求具有所需具体权限的证书。
除了证书颁发政策和证书模板之外,您还可以强制执行特定的政策控制,例如名称限制条件,以防止 CA 为未经授权的网域或实体颁发证书。
证书颁发政策简介
证书颁发政策用于定义对 CA 池内所有证书颁发的控制。CA 管理器可以将证书颁发政策附加到 CA 池,以对 CA 池中的 CA 可以颁发的证书类型进行限制。证书颁发政策可帮助您执行以下操作:
- 对可请求的允许正文和 SAN 添加限制。这会验证证书中可以识别的人员或实体,例如仅允许使用贵公司网域的证书。
- 定义证书身份、证书生命周期、密钥类型和证书请求模式的限制。
- 将特定 X.509 扩展附加到所有已颁发的证书中。
如果您符合以下任一或两种情况,我们建议您使用证书颁发政策:
您的 CA 池旨在根据单个定义明确的配置文件颁发证书。例如,您有一个专用 CA 池,该池仅为贵公司的内部 Web 服务器颁发证书。这些证书都需要相同的基本参数。
- 所有已颁发的证书的正文中都包含
O=My organization
。 - 所有 DNS 名称都以
.cymbalgroup.com
结尾。 - 它们的有效期为 1 年。
证书颁发政策会强制执行这些规则,并确保从此 CA 池颁发的每份证书都符合此配置文件。
- 所有已颁发的证书的正文中都包含
您想为 X.509 扩展定义一个通用基准,并为所有证书颁发配置文件定义其他限制。例如,您有不同类型的证书,例如员工电子邮件签名证书(有效期为 2 年)和面向公众网站的 TLS 证书(有效期为 1 年)。您可以定义适用于所有证书的基准发布政策:
- 所有证书的主题中都必须包含公司名称。
- 所有证书都必须使用一组特定的 X.509 扩展程序,以符合贵组织的安全标准。
然后,您可以使用证书模板在此基准之上为每种证书类型定义具体变体。
如需了解如何添加证书颁发政策,请参阅向 CA 池添加证书颁发政策。
证书模板简介
证书模板代表组织内相对静态且定义良好的证书颁发架构。通过使用证书模板,无论颁发 CA 为何,从各种 CA 池颁发的证书都具有相同的格式和属性。CertificateTemplate
资源包括以下内容:
- 一个 Common Expression Language (CEL) 表达式,系统会根据使用该模板的所有证书请求中的请求主题和 SAN 对其进行评估。如需详细了解如何使用 CEL,请参阅使用 CEL。
- 一个许可名单,用于指定是否可以将主题或主题备用名称从最终用户请求复制到已颁发的证书。
- 一个可选许可名单,用于指定可以从最终用户请求复制到已颁发证书的 X.509 扩展(如果有)。
- 一组可选的 X.509 扩展值,会添加到使用该模板的所有已颁发证书中。
证书模板可以成为完整的行业证书颁发框架。如需了解详情,请参阅完整的 CertificateTemplate 消息定义。
如果您有明确定义的证书颁发场景,则可以使用证书模板。您可以使用证书模板来确保从不同 CA 池颁发的证书保持一致。您还可以使用证书模板来限制不同用户可以签发的证书类型。
您还可以将证书模板与 Identity and Access Management (IAM) 有条件角色绑定结合使用,以定义适用于特定服务账号发出的证书请求的约束条件。例如,您可以创建一个仅允许使用以 .altostrat.com
结尾的 DNS 名称的证书模板。然后,您可以添加条件角色绑定,向服务账号 my-service-account@my-project.iam.gserviceaccount.com
授予在从特定 CA 池请求证书时仅使用该模板的权限。这会限制服务账号仅颁发具有该特定 SAN 限制的证书。
如需了解如何创建证书模板,请参阅创建证书模板。
CA 证书名称约束
CA Service 会强制执行 RFC 5280 文档名称限制条件部分中定义的 CA 证书中的名称限制条件。借助名称限制条件,您可以控制 CA 颁发的证书中允许或排除哪些名称。
名称限制条件是使用 X.509 证书中的名称限制条件扩展实现的。借助此扩展程序,您可以为各种名称形式(例如 DNS 名称、IP 地址、电子邮件地址和网址)指定允许和排除的命名空间。
例如,您可以创建具有名称限制条件的 CA,以强制执行以下条件:
- 只有
myownpersonaldomain.com
及其子网域可以用作 DNS 名称。 examplepetstore.com
及其子网域不得用作 DNS 名称。
名称限制条件在 CA 自己的证书中定义。这意味着,该 CA 颁发的所有证书都受这些约束条件的约束。CA 在签发证书时,会将请求的主题名称和任何主题备用名称 (SAN) 与定义的名称约束条件进行检查。如果任何名称违反了这些限制,系统都会拒绝颁发证书。
您只能在创建 CA 时指定名称约束条件。
使用政策控制功能的好处
政策控制功能可帮助您实现以下目标:
- 通过限制可颁发的证书类型,并降低创建和滥用未经授权的证书的风险,从而增强安全性。
- 满足证书管理方面的监管要求和行业最佳实践。
- 减少手动工作量和潜在错误。借助证书模板,您可以更轻松地一致高效地颁发证书。
- 建立信任:明确定义的政策和强大的控制措施有助于增强对您签发的证书的信心。
强制执行政策控制措施
当用户请求证书时,CA Service 会在以下级别评估这些政策控制措施:
Identity and Access Management (IAM) 权限:首先,该服务会检查请求者是否拥有创建证书或使用指定证书模板的必要 IAM 权限。这样可以确保只有获得授权的用户才能获取证书。
证书颁发政策:然后,该服务会根据 CA 池的颁发政策验证证书请求。这可确保请求符合该 CA 颁发的证书的一般要求。
证书模板:如果使用模板,系统会根据模板的具体约束条件对请求进行进一步验证。这可确保证书适合其预期用途。
CA 池的证书颁发政策和证书模板中的 X.509 扩展程序会添加到证书中,并且系统会根据这些政策舍弃某些值。在对证书进行签名之前,系统会根据证书对 CA 证书中的名称限制条件进行验证,以确保正文符合相关要求。
政策冲突
同时使用不同的政策控制机制时,不同级别的政策可能会发生冲突。例如,证书模板可能会允许 CA 池的颁发政策禁止的密钥类型(例如 ECDSA
)。或者,证书模板和颁发政策可能会为同一 X.509 扩展指定不同的值。
如需了解如何管理 CA Service 中的政策冲突,请参阅政策冲突简介。
后续步骤
- 了解如何实现政策控制。
- 了解如何使用通用表达式语言 (CEL)。