デフォルトポリシー
証明書の発行フローには、デフォルトを適用できる場所が 2 つあります。X.509 CertificateSigningRequest が作成される前と、X.509 証明書が作成される前です。最初のケースでは、cert-manager がデフォルトを適用します。2 番目のケースでは、発行者がデフォルトを適用します。
これら 2 つのケースの重要な違いは、最初のケースでは、デフォルト設定できるプロパティが多いことです。たとえば、秘密鍵を生成する必要があるため、秘密鍵のすべてのプロパティをデフォルト設定できます。2 番目のケースでは、秘密鍵はすでに生成されています。また、発行者参照自体は最初のケースではデフォルト設定できますが、2 番目のケースではデフォルト設定できません。たとえば、特定の名前空間では、発行者を特定の発行者にデフォルト設定できます。
デフォルト設定は、証明書をリクエストする人のエクスペリエンスを簡略化するために行われます。これにより、ユーザーがデフォルトをオーバーライドできなくなるわけではありません。したがって、承認ポリシーを使用できます(詳細については承認ポリシーを参照してください)。
cert-manager によって適用されるデフォルト:X.509 証明書署名リクエスト (CSR) を作成する前
X.509 証明書署名リクエスト (CSR) が作成される前にデフォルトを適用するには、CSR の作成に使用される入力にデフォルトを適用する必要があります。CSR が作成された後、その署名を無効にすることなく変更することはできません。つまり、CertificateRequest または CertificateSigningRequest リソースに含まれる CSR のプロパティには、デフォルトを適用できません。
代わりに、CertificateSigningRequest の作成に使用される Certificate リソースにデフォルトを適用する必要があります。CSI ドライバーを使用している場合は、CSI アノテーションまたは CSI ドライバー構成にデフォルトを適用する必要があります。これらのリソースに動的にデフォルトを適用するには、kyverno
のようなツールを使用できます。Helm、kustomize などの CI/CD ツールも、これらのリソースをテンプレート化し、デフォルトを適用するために使用できます。
発行者によって適用されるデフォルト:X.509 証明書を作成する前
X.509 証明書を作成する前に、発行者は結果の証明書のプロパティにデフォルト値を使用できます。一般的に言えば、発行者は、X.509 証明書署名リクエスト (CSR) のプロパティを X.509 証明書のプロパティにマッピングするために任意のロジックを自由に使用できます(詳細については発行ポリシーを参照してください)。