キーコンテナー(Azure Key Vault)を使った証明書管理

2020-06-10Azure,Key Vault

キーコンテナー(Azure Key Vault)は、アプリケーションの秘密情報や証明書、暗号化キーなどの機密情報を安全に格納するためのソリューションです。
証明書の管理では証明書の保管だけではなく自動更新や期限切れの通知が出来ます。

本記事ではキーコンテナー(Azure Key Vault)の証明書関連の手順を整理しています。
リソース作成から自己証明書の生成、削除、復元、インポート、期限切れ通知設定までの操作を纏めました。

スポンサーリンク

キーコンテナー(Azure Key Vault)のリソース作成

Azure Key Vaultとは

キーコンテナー(Azure Key Vault)は、クラウドネイティブのセキュリティサービスです。
機密情報の安全な管理を実現します。

Azure Key Vault について

キー、シークレット、証明書などの機密情報を安全に格納する事が出来ます。
Application Gateway等の証明書の管理、ディスク暗号化のカスタムマネージドキー(CMK)の保管、Azure Kubernetes Service (AKS)のシークレット保管等にも利用されます。

今回は証明書周りの操作を中心に纏めています。

設定内容

キーコンテナー(Azure Key Vault)の設定内容です。
検証目的なのでコンテナーの保持期間は7日間、ネットワークアクセスはすべてのネットワークを許可にしています。
実環境での利用時には環境に合せてアクセス元の制限を行うようにします。

区分 項目 設定値
基本 Key Vault名 test-postgresql-flexible-server
場所 East US 2
価格レベル 標準
削除されたコンテナーを保持する期間 7日間
消去保護 消去保護を無効にする
アクセスポリシー アクセス制御 Azure ロールベースのアクセス制御
ネットワーク パブリックアクセスを有効にする チェック有
許可するアクセス元 すべてのネットワーク

価格レベルについて

価格レベルはStandard(標準)とPremium(プレミアム)があります。
Standard(標準)はソフトウェア キーを使用して暗号化するのに対して、Premium(プレミアム)はハードウェア セキュリティ モジュール (HSM) で保護されたキーを含みます。

Key Vault の価格
Azure Key Vault について

作成手順

公式サイトを参考にキーコンテナー(Azure Key Vault)のリソースを作成します。

クイック スタート:Azure portal を使用してキー コンテナーを作成する

キーコンテナー(Azure Key Vault)作成手順
キーコンテナーで作成を選択します。

インスタンスの詳細を設定します。
Key Vault名、価格レベル、回復オプション等を設定します。

アクセスポリシーでコンテナーへのアクセス制御を設定します。
アクセスポリシーではコンテナーに対して許可する操作を規定します。

今回は、アクセス許可モデルはAzure ロールベースのアクセス制御を指定します。
ユーザーの割り当てはリソース作成後、個別に行う必要があります。

ネットワーク設定ではキーコンテナー(Azure Key Vault)へのアクセス可能なネットワークを設定します。
選択されたネットワークを指定すると、サービスエンドポイント設定が表示されます。
すべてのネットワークを許可します。

※実際に利用する場合アクセス元ネットワークは制限します。

【サービスエンドポイントの場合】

確認画面が表示されます。
内容確認して問題が無ければ作成を選択します。

アクセス制御設定

キーコンテナー(Azure Key Vault)で証明書操作を行う為の権限を付与します。
キー コンテナー証明書責任者の権限を付与します。

Key Vault データ プレーン操作のための Azure の組み込みロール

※後ほど実施する証明書の連絡先設定にはキーコンテナー管理者の権限が必要になります。

アクセス制御設定
キーコンテナーのアクセス制御(IAM)でロールの割り当ての追加を選択します。
割り当ての種類で職務ロールを選択します。
ロールはキー コンテナー証明書責任者を選択します。
ロールを割り当てるメンバーを選択します。
アクセスの割り当て先でユーザー、グループ、またはサービスプリンシパルを選択します。
権限を付与するメンバーを選択すします。
確認画面が表示されます。
レビューと割り当てを選択します。
権限付与が完了するとアクセス制御(IAM)に追加したユーザーが表示されます。

キーコンテナー(Azure Key Vault)で証明書を生成、バックアップ、削除、復元

証明書を生成

公式サイトを参考に証明書を生成します。

クイック スタート:Azure portal を使用して Azure Key Vault から証明書の設定と取得を行う

証明書を生成
証明書のメニューで生成/インポートを選択します。

作成方法で生成を選択します。
証明書の名前、件名を指定します。

※証明書名に使用できるのは、英数字とダッシュのみです。証明書作成時にエラーになります。
※確認メッセージは表示されず作成が開始します。

有効期間のアクションタイプを4つから選択します。
自動更新かメール送信が選べます。

証明期間(CA)は種類から選択します。
自己署名証明書を選択します。

提携 CA プロバイダー

ポリシーの詳細構成ではキーの種類等の設定が出来ます。

完了すると生成された証明書が表示されます。

証明書を確認

生成した証明書を確認します。

 
作成した証明書を表示します。
発行ポリシーを表示します。
証明書の作成で設定した内容が表示されます。
証明書自体を選択するプロパティが表示されます。
証明書のダウンロードも出来ます。

バックアップのダウンロード

証明書のバックアップは個別に出来ます。

バックアップのダウンロード
証明書の画面でバックアップのダウンロードを選択します。
バックアップ作成確認画面が表示されます。
ダウンロードを選択します。

証明書の削除、回復

証明書の削除は2段階あります。論理削除と完全削除になります。

証明書の削除

証明書の画面で削除が出来ます。

※この段階では論理削除である為復元可能です。

完全に削除する場合や回復する場合は、削除された証明書の管理を利用します。
対象の証明書を選択します。
消去を選択すると完全に削除出来ます。

※回復を選択すると削除した証明書を元に戻す事が出来ます。

消去の確認メッセージが表示されます。
削除を選択します。

復元(リストア)

証明書をバックアップから復元します。

バックアップからの復元
バックアップからの復元を選択します。
事前にダウンロードしておいた証明書のバックアップファイルを選択して開きます。
ファイルが読みこまれ証明書がリストアされます。

※復元は同じサブスクリプションのキーコンテナー(Azure Key Vault)にしか出来ないので注意が必要です。(バックアップ時のメッセージにも表示されています。)

証明書のインポート

キーコンテナー(Azure Key Vault)では自身が作成した公的証明書や自己証明書をインポートして管理出来ます。

チュートリアル:Azure Key Vault に証明書をインポートする

証明書のインポート
証明書のリソースメニューで生成/インポートを選択します。

インポートする証明書のファイルを選択ししてアップロードします。
証明書の名前には識別しやすい名前を付与します。

※PFX形式のみ対応になります。

完了欄にインポートされた証明書が表示されます。

Let’s Encryptの証明書発行からOpenSSlを使った証明書をpem形式からpfx形式への変換についてはこちらに纏めています。

DNS-01 challenge(DNS認証)を利用したLet’s Encryptの証明書発行手順についてはこちらに纏めています。

キーコンテナー(Azure Key Vault)で証明書の期限切れ通知

キーコンテナー(Azure Key Vault)で証明書を管理すると期限切れ前にメール通知出来ます。
証明書有効期間で何パーセント超えた場合や期限切れ何日前にメール通知の指定が出来ます。

証明書の連絡先設定

期限切れを通知するメールアドレスを登録します。

※キー コンテナー証明書責任者のロール(権限)では出来ません。キーコンテナー管理者等の証明書連絡先を追加するロール(権限)が必要です。

メールアドレス登録

証明書のリソースメニューを選択します。
証明書の連絡先で電子メールアドレスを登録します。

※電子メールアドレスは複数設定出来ます。

証明書の期限切れ通知設定

証明書の期限切れ通知は発行ポリシーで設定します。
証明書の発行ポリシーは該当の証明書のみに適用されます。

証明書期限切れ通知設定
対象の証明書で発行ポリシーを選択します。  

期限切れ通知の設定は有効期間のアクションタイプと有効期間の2つ設定から構成されます。

  • 有効期間のアクションタイプ
    • 有効期間が指定された割合になったら通知
    • 有効期間の残り日数が指定された日数になったら通知

設定が終わったら保存します。
これで期限前にメール通知がされます。

最後に

今回はキーコンテナー(Azure Key Vault)の証明書関連の操作手順を纏めました。
キーコンテナー(Azure Key Vault)を使う事で証明書期限切れ通知やも出来て便利かと思います。

    • 期限切れ通知メール例
      • Subject:Your Azure Key Vault certificate will expire on 期限切れ日時(例;March 25, 2023 3:07 UTC)
      • 本文:Your certificate “証明書の名前" in Azure Key Vault “キーコンテナー(Azure Key Vault)名" must be renewed by before 期限切れ日時(例;March 25, 2023 3:07 UTC)

Azure Application GatewayやAzure Front Doorとの連携も出来る為、Azureでの証明書管理にキーコンテナー(Azure Key Vault)を使うのは非常に良いと思いました。

キーコンテナー(Azure Key Vault)のシークレットについてはこちらに纏めています。
シークレット作成手順やマネージドIDを使ったシークレットの参照方法も記載しています。

スポンサーリンク