2.3.2. 証明書ポリシーコントローラー
証明書ポリシーコントローラーは、有効期限が近い証明書、期間 (時間) が長すぎる証明書や、指定のパターンに一致しない DNS 名が含まれている証明書の検出に使用できます。
証明書ポリシーコントローラーを設定してカスタマイズするには、コントローラーポリシーの以下のパラメーターを更新します。
-
minimumDuration
-
minimumCADuration
-
maximumDuration
-
maximumCADuration
-
allowedSANPattern
-
disallowedSANPattern
以下のシナリオのいずれかの場合には、ポリシーがコンプライアンス違反になる可能性があります。
- 証明書が、最小期間で指定されている期間以内または、最大期間で指定されている期間を超えて失効する場合
- DNS 名が指定のパターンと一致しない場合
証明書ポリシーコントローラーは、マネージドクラスターに作成されます。このコントローラーは、ローカルの Kubernetes API サーバーと通信して、証明書が含まれるシークレット一覧を取得して、コンプライアンス違反の証明書をすべて判別します。CRD の詳細は、「Extend the Kubernetes API with CustomResourceDefinitions」を参照してください。
証明書ポリシーコントローラーには、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 | 必須。ポリシーを識別するための名前。 |
netadata.namespace | 必須。ポリシーが作成されるマネージドクラスター内の namespace。 |
metadata.labels |
任意。証明書ポリシーでは、 |
spec | 必須。監視および更新する証明書の仕様。 |
spec.namespaceSelector |
必須。ポリシーを適用するマネージドクラスターの namespace。
複数の証明書ポリシーを作成してそのポリシーを同じマネージドクラスターに適用する場合には、各ポリシーの
• 証明書ポリシーコントローラーの |
spec.remediationAction |
必須。ポリシーの修正を指定します。このパラメーター値には |
spec.severity |
任意。ポリシーがコンプライアンス違反の場合に重大度をユーザーに通知します。パラメーター値 |
spec.minimumDuration |
必須。値の指定がない場合は、デフォルト値は |
spec.minimumCADuration |
任意。値を設定して、他の証明書とは異なる値でまもなく有効期限が切れる可能性がある署名証明書を特定します。パラメーターの値が指定されていない場合には、CA 証明書の有効期限は |
spec.maximumDuration | 任意。値を設定して、任意の制限期間を超えて作成された証明書を特定します。パラメーターは Golang の期間形式を使用します。詳細は Golang Parse Duration を参照してください。 |
spec.maximumCADuration | 任意。値を設定して、定義した制限期間を超えて作成された署名証明書を特定します。パラメーターは Golang の期間形式を使用します。詳細は Golang Parse Duration を参照してください。 |
spec.allowedSANPattern | 任意。証明書に定義した全 SAN エントリーと一致する必要がある正規表現。このパラメーターを使用して、パターンと DNS 名を照合します。詳細は Golang Regular Expression syntax を参照してください。 |
spec.disallowedSANPattern | 任意。証明書で定義した SAN エントリーと一致してはいけない正規表現。このパラメーターを使用して、パターンと DNS 名を照合します。詳細は Golang Regular Expression syntax を参照してください。 |