Azure PowerShell を用いた Key Vault 証明書を作成する際における証明書ポリシーのオプション パラメーターについて

ブログ エントリ内にアフィリエイト広告が含まれています
スポンサーリンク

Azure Key Vault には証明書を作成する機能 (Key Vault 証明書) があり、Azure ポータル、Azure CLI、および Azure PowerShell などを用いて作成することが可能です。

Azure PowerShell で Key Vault 証明書を作成する際には Add-AzKeyVaultCertificate を用いますが、証明書ポリシー (サブジェクトや証明書の有効期限などの設定情報をまとめたもの) をオプション パラメーター -CertificatePolicy で指定することが可能です。

証明書ポリシーの作成には、New-AzKeyVaultCertificatePolicy コマンドレットを用いますが、オプション パラメーターが多いことと何を設定したらよいかどうかがイメージが付かなかったのでまとめてみました。

スポンサーリンク

証明書ポリシーを作成する New-AzKeyVaultCertificatePolicy コマンドレットのオプション パラメーターについて

※Az モジュール v6.0.0 にて確認しています。

Azure ポータルに表示されている設定と New-AzKeyVaultCertificatePolicy のオプション パラメーターの対応をまとめると、以下の図のようになります。

オプション パラメーター

証明機関 (CA) の種類

-IssuerName パラメーターを用います。

例えば -Issuer ‘Self’ とすると、自己署名証明書となります。

件名

-SubjectName パラメーターを用います。

例えば -SubjectName ‘CN=rootca’ とすると、ルート CA 証明書となります。

DNS 名

-DnsName パラメーターを用います。

パラメーター値には DNS 名を指定します。複数指定が可能であり、List 型で設定します。

有効期間 (月単位)

-ValidityInMonths パラメーターを用います。

パラメーター値には有効期間 (月単位、数値) を指定します。

コンテンツの種類

-SecretContentType パラメーターを用います。

パラメーター値には以下のどちらかの値を指定 (Key Vauly シークレットのコンテンツの種類) することが可能です。

  • application/x-pkcs12
    コンテンツの種類を pkcs12 とする場合に指定します。
  • application/x-pem-file
    コンテンツの種類を pem とする場合に指定します。

有効期間のアクション タイプ

以下のパラメーターのどれか 1 つを用います。

  • -RenewAtPercentageLifetime パラメーター
    「有効期限が指定された割合になったら、自動的に更新する」を利用する場合に指定します。
    値は有効期限の残りの割合 (パーセンテージ、数値) を指定します。
  • -RenewAtNumberOfDaysBeforeExpiry パラメーター
    「有効期限の残りが指定された日数になったら、自動的に更新する」を利用する場合に指定します。
    値は有効期限の残りの日数 (数値) を指定します。
  • -EmailAtPercentageLifetime パラメーター
    「有効期限が指定された割合になったら、すべての連絡先にメールを送信する」を利用する場合に指定します。
    値は有効期限の残りの日割合 (パーセンテージ、数値) を指定します。
  • -EmailAtNumberOfDaysBeforeExpiry パラメーター
    「有効期限の残りが指定された日数になったら、すべての連絡先にメールを送信する」を利用する場合に指定します。
    値は有効期限の残りの日数 (数値) を指定します。

ポリシーの詳細構成

拡張キー使用法 (EKU)

-Ekus パラメーターを用います。

パラメーター値には拡張キー使用法 (EKU) のオブジェクト ID (サーバー認証 (1.3.6.1.5.5.7.3.1、など) を指定します。複数指定が可能であり、List 型で設定します。

X.509 キーの使用フラグ

-KeyUsage パラメーターを用います。

パラメーター値には以下の値を複数指定が指定することが可能であり、List 型で設定します。

  • DigitalSignature
    デジタル署名 (既定のキーの使用フラグ) を用いる場合に設定する
  • KeyEncipherment
    キーの暗号化 (既定のキーの使用フラグ) を用いる場合に設定する
  • NonRepudiation
    否認防止 (他のキーの使用フラグ) を用いる場合に設定する
  • DataEncipherment
    データの暗号化 (他のキーの使用フラグ) を用いる場合に設定する
  • KeyAgreement
    キーの承諾 (他のキーの使用フラグ) を用いる場合に設定する
  • KeyCertSign
    キー証明書署名 (他のキーの使用フラグ) を用いる場合に設定する
  • CrlSign
    CRL 署名 (他のキーの使用フラグ) を用いる場合に設定する
  • EncipherOnly
    暗号化のみ (他のキーの使用フラグ) を用いる場合に設定する
  • DecipherOnly
    暗号解読のみ (他のキーの使用フラグ) を用いる場合に設定する
  • None
    X.509 キーを指定しない場合に設定する
キーを再利用して更新しますか?

-ReuseKeyOnRenewal パラメーターを用います。

キーを再利用して更新する場合にはパラメーター値を $true に設定します。

エクスポート可能な秘密キーですか?

-KeyNotExportable パラメーターを用います。

エクスポート可能な秘密キーでない場合、パラメーター値を $true に設定します。

キーの種類

-KeyType パラメーターを用います。

パラメーター値には以下のどちらかの値を指定 (Azure ポータルに表示されている以外の値) することが可能です。

  • RSA
  • RSA-HSM
  • EC
  • EC-HSM

※値として RSA-HSM および EC-HSM を指定した場合にはキーのエクスポートができないので注意。

キーサイズ

-KeySize パラメーターを用います。

パラメーター値には以下のどちらかの値を指定 (Azure ポータルに表示されている以外の値) することが可能です。

  • 2048
  • 3072
  • 4096
  • 256
  • 384
  • 521
証明書の透過性を有効にしますか?

-CertificateTransparency パラメーターを用います。

証明書の透過性を有効にする場合は値を $true に設定しますが、自己署名証明書とする場合には値を $false にします。

証明書の種類

-CertificateType パラメーターを用います。

証明書ポリシー作成コマンド例

ルート CA の自己証明書を作成する際の証明書ポリシーの例となります。

$policy = New-AzKeyVaultCertificatePolicy `
    -IssuerName 'Self' `
    -SubjectName 'CN=rootca' `
    -ValidityInMonths 24 `
    -SecretContentType 'application/x-pkcs12' `
    -RenewAtNumberOfDaysBeforeExpiry 30 `
    -Ekus ('1.3.6.1.5.5.7.3.1', '1.3.6.1.5.5.7.3.2') `
    -KeyUsage ('DigitalSignature', 'KeyAgreement', 'KeyEncipherment') `
    -KeyNotExportable $true `
    -KeyType RSA `
    -KeySize 2048 `
    -CertificateTransparency $false

補足 : Key Vault 証明書の作成コマンド例

-VaultName パラメーターで Key Vault コンテナー名、-Name パラメーターで作成する Key Vault 証明書名、および -CertificatePolicy パラメーターで証明書ポリシーを指定します。

Add-AzKeyVaultCertificate -VaultName '<Key Vault コンテナー名>' -Name '<Key Vault 証明書名>' -CertificatePolicy $policy
スポンサーリンク

参考サイト

 

タイトルとURLをコピーしました