2.3.2. 证书策略控制器
证书策略控制器可以用来检测快要到期的证书,并检测时间太长(小时)或包含无法与指定模式匹配的 DNS 名称。
通过更新控制器策略中的以下参数来配置和自定义证书策略控制器:
-
minimumDuration
-
minimumCADuration
-
maximumDuration
-
maximumCADuration
-
allowedSANPattern
-
disallowedSANPattern
由于以下情况之一,您的策略可能会变得不合规:
- 当证书过期的时间少于最短持续时间,或超过最长时间时。
- 当 DNS 名称与指定模式匹配时。
证书策略控制器是在受管集群上创建的。控制器与本地 Kubernetes API 服务器通信,以获取包含证书的 secret 列表,并确定所有不合规的证书。有关 CRD 的更多信息,请参阅使用 CustomResourceDefinitions 扩展 Kubernetes API。
证书策略控制器不支持 enforce
功能。
2.3.2.1. 证书策略控制器 YAML 结构
查看证书策略的以下示例,并查看 YAML 表中的元素:
apiVersion: policy.open-cluster-management.io/v1 kind: CertificatePolicy metadata: name: certificate-policy-example namespace: labels: category=system-and-information-integrity spec: namespaceSelector: include: ["default"] exclude: ["kube-*"] remediationAction: severity: minimumDuration: minimumCADuration: maximumDuration: maximumCADuration: allowedSANPattern: disallowedSANPattern:
2.3.2.1.1. 证书策略控制器 YAML 表
字段 | 描述 |
---|---|
apiVersion |
必需。将值设置为 |
kind |
必需。将值设为 |
metadata.name | 必需。用于标识策略的名称。 |
metadata.namespace | 必需。创建了策略的受管集群内命名空间。 |
metadata.labels |
可选。在证书策略中, |
spec | 必需。有关要监控和刷新哪些证书的规格。 |
spec.namespaceSelector |
必需。要将策略应用到的受管集群命名空间。输入
• 当您创建多个证书策略并将其应用到同一受管集群时,必须为每个策略
• 如果证书策略控制器的 |
spec.remediationAction |
必需。指定您的策略的修复。将参数值设置为 |
spec.severity |
可选。当策略不合规时,会告知用户的严重性。使用以下参数值: |
spec.minimumDuration |
必需。如果没有指定值,则默认为 |
spec.minimumCADuration |
可选。设定一个与其他证书不同的值来标识可能很快过期的签名证书。如果没有指定参数值,则 CA 证书过期时间作为 |
spec.maximumDuration | 可选。指定一个值来标识创建的时间超过您所期望的限制值的证书。参数使用 Golang 的持续时间格式。如需更多信息,请参阅 Golang 解析持续时间。 |
spec.maximumCADuration | 可选。创建一个值来标识创建的时间超过您定义的限制值的签名的证书。参数使用 Golang 的持续时间格式。如需更多信息,请参阅 Golang 解析持续时间。 |
spec.allowedSANPattern | 可选。正则表达式,必须与您证书中定义的每个 SAN 条目匹配。这个参数会根据特征检查 DNS 名称。如需更多信息,请参阅 Golang 郑则表达式语法。 |
spec.disallowedSANPattern |
可选。正则表达式,不能与证书中定义的任何 SAN 条目匹配。这个参数根据模式检查 DNS 名称。 如需更多信息,请参阅 Golang 郑则表达式语法。 |