前回は Azure PowerShell を用いた場合での証明書ポリシーのオプション パラメーターについて、ブログ エントリを公開しましたが、今回は Azure CLI を用いた場合での証明書ポリシーについて、まとめてみます。
Azure CLI で Key Vault 証明書を作成する際には az keyvault certificate create コマンドを用いますが、証明書ポリシー (サブジェクトや証明書の有効期限などの設定情報をまとめたもの) をオプション パラメーター --policy で指定することが可能です。
ただ Azure PowerShell とは異なり、証明書ポリシーをコマンドでは設定することはできないようで JSON ファイルとしてまとめるしかないようです。

指定可能なパラメーター値についてもドキュメントにあまり記載がなくてつらい (
Azure CLI で使用する証明書ポリシーの内容について
※Azure CLI v2.24.0 にて確認しています。
既定の証明書ポリシー
既定の証明書ポリシーは、az keyvault certificate get-default-policy コマンドから取得することが可能です。
内容は以下となり、ここから修正して、ファイルとして保存する形となります。Azure PowerShell のオプション パラメーターよりも Azure ポータルの設定項目の照らし合わせイメージが付きにくいですね (
{
"issuerParameters": {
"certificateTransparency": null,
"name": "Self"
},
"keyProperties": {
"curve": null,
"exportable": true,
"keySize": 2048,
"keyType": "RSA",
"reuseKey": true
},
"lifetimeActions": [
{
"action": {
"actionType": "AutoRenew"
},
"trigger": {
"daysBeforeExpiry": 90
}
}
],
"secretProperties": {
"contentType": "application/x-pkcs12"
},
"x509CertificateProperties": {
"keyUsage": [
"cRLSign",
"dataEncipherment",
"digitalSignature",
"keyEncipherment",
"keyAgreement",
"keyCertSign"
],
"subject": "CN=CLIGetDefaultPolicy",
"validityInMonths": 12
}
}
"issuerParameters"
"certificateTransparency"
Azure ポータルで Key Vault 証明書を作成する際の、[ポリシーの詳細構成] - [証明書の透過性を有効にしますか?] に当たります。
"certificateType"
Azure ポータルで Key Vault 証明書を作成する際の、[ポリシーの詳細構成] - [証明書の種類?] に当たります。
"name"
Azure ポータルで Key Vault 証明書を作成する際の、[証明機関 (CA) の種類] に当たります。
例えば "name": "Self" とすると、自己署名証明書となります。
"keyProperties"
"exportable"
Azure ポータルで Key Vault 証明書を作成する際の、[ポリシーの詳細構成] - [エクスポート可能な秘密キーですか?] に当たります。
"keySize"
Azure ポータルで Key Vault 証明書を作成する際の、[ポリシーの詳細構成] - [キー サイズ] に当たります。
"keyType"
Azure ポータルで Key Vault 証明書を作成する際の、[ポリシーの詳細構成] - [キーの種類] に当たります。
"reuseKey"
Azure ポータルで Key Vault 証明書を作成する際の、[ポリシーの詳細構成] - [キーを再利用して更新しますか?] に当たります。
"lifetimeActions"
Azure ポータルで Key Vault 証明書を作成する際の、[有効期間のアクション タイプ] に当たります。
"action"
"actionType"
以下のどちらかの値を指定することが可能です。
- AutoRenew
「自動的に更新する」場合に指定します。 - EmailContacts
「すべての連絡先にメールを送信する」場合に指定します。
"trigger"
以下のプロパティ、値を指定することが可能です。
- "DaysBeforeExpiry" : <日数>
「有効期限が切れる日数 (数値) でトリガーする」場合に指定します。 - "LifetimePercentage" : <割合>
「有効期限が切れる割合 (パーセンテージ、数値) でトリガーする」場合に指定します。
"secretProperties"
"contentType"
Azure ポータルで Key Vault 証明書を作成する際の、[コンテンツの種類] に当たります。
"x509CertificateProperties"
"ekus"
Azure ポータルで Key Vault 証明書を作成する際の、[ポリシーの詳細構成] - [拡張キー使用法 (EKU)] に当たります。
"keyUsage"
Azure ポータルで Key Vault 証明書を作成する際の、[ポリシーの詳細構成] - [X.509 キーの使用フラグ] に当たります。
"subject"
Azure ポータルで Key Vault 証明書を作成する際の、[件名] に当たります。
例えば "subject": "CN=rootca" とするとルート CA 証明書となります。
"subjectAlternativeNames"
"dnsNames"
Azure ポータルで Key Vault 証明書を作成する際の、[DNS 名] に当たります。
"validityInMonths"
Azure ポータルで Key Vault 証明書を作成する際の、[有効期間 (月単位)] に当たります。
補足 : Key Vault 証明書の作成コマンド例
--vault-name パラメーターで Key Vault コンテナー名、--name パラメーターで作成する Key Vault 証明書名、および --policy パラメーターで証明書ポリシー ファイル名を指定します。
az keyvault certificate create --vault-name '<Key Vault コンテナー名>' --name '<Key Vault 証明書名>' --policy '@<証明書ポリシー ファイル名>'
参考サイト





