前回は 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 '@<証明書ポリシー ファイル名>'