使用通用表达式语言
本页面介绍如何在 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 |
值 |