使用通用表达式语言

本页面介绍如何在 CA 池中使用通用表达式语言 (CEL) 以及证书颁发政策、证书模板和 Identity and Access Management (IAM) 条件。

概览

通用表达式语言 (CEL) 是一种开源的非图灵完备语言,可实现用于表达式求值的通用语义。Certificate Authority Service 支持 CEL,以针对证书颁发实施各种政策控制。

CA 服务支持两种 CEL 方言:

  • 一种灵活的方言,可在 CA 池的证书颁发政策和证书模板中使用。
  • 一种更受限的方言,可在 IAM 条件中使用。

用于证书颁发政策和证书模板的 CEL 方言

创建 CA 池或证书模板时,您可以指定 CEL 表达式作为证书身份限制条件的一部分。借助 CEL 表达式,您可以验证主题和主题备用名称 (SAN) 字段。

如需详细了解颁发政策,请参阅添加证书颁发政策

如需详细了解证书模板,请参阅 政策控制概览

用于 CA 池和证书模板的身份限制条件的 CEL 方言公开了以下变量,用于访问和验证主题和 SAN 字段:

  • 主题:subject
  • SAN:subject_alt_names

主题

您可以使用类型为 Subject 且名称为 subject 的变量,验证证书请求中指定的所有证书主题域名(包括通用名称)中的字段。

Subject 是一个包含以下字段的结构:

类型 名称
String common_name
String country_code
String 组织
String organizational_unit
String locality
String province
String street_address
String postal_code

主题备用名称 (SAN)

您可以使用 subject_alt_names 变量验证证书请求中指定的所有 SAN。subject_alt_names 变量包含 SAN 结构列表,其中每个 SAN 的类型均为 SubjectAltName

SubjectAltName 是一个包含以下字段的结构:

类型 名称
String