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は、クラウドネイティブなセキュリティサービスです。
機密情報の安全な管理を実現します。

Azure Key Vault について

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

今回は証明書関連の操作を中心に手順を確認しています。

価格レベルについて

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

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

作成したリソースの設定値

今回作成したAzure Key Vaultのリソースの設定内容です。
検証目的のため、削除されたコンテナーを保持する日数は7日間、ネットワークアクセスはすべてのネットワークを許可しています。

※実環境で利用する際にはセキュリティを考慮して、アクセス元の制限を行うようにします。

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

リソースの作成手順

公式サイトを参考にして、Azure Key Vaultのリソースを作成します。

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

Azure Key Vaultのリソース作成手順
キーコンテナーで作成を選択します。 Azure Key Vaultのリソースを作成(Azure Key Vaultでの証明書管理方法)

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

今回は検証目的であるため、削除されたコンテナーを保持する日数を7日としています。

Azure Key Vaultのリソース基本設定画面(Azure Key Vaultでの証明書管理方法)

アクセスポリシーのタブです。
アクセスポリシーではKey Vaultに対して許可する操作を規定します。
アクセス許可モデルとしては、Azureロールベースのアクセス制御(RBAC)が推奨されています。
アクセス許可設定はリソース作成後に、個別で行う必要があります。

Azure Key Vaultのリソース作成時のアクセス構成設定画面(Azure Key Vaultでの証明書管理方法)

ネットワーク設定では、Azure Key Vaultへのアクセスを許可するネットワークを指定します。
特定のネットワークを選択すると、サービスエンドポイントの設定が表示されます。
プライベートエンドポイントも設定できます。

今回は手順確認を目的としているため、すべてのネットワークを許可しています。実際に利用する場合は、セキュリティを考慮してアクセス元ネットワークを制限します。

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

アクセス制御(IAM)で証明書を操作するためのロール割り当てを追加

ユーザーにAzure Key Vaultで証明書操作を行うための権限を付与します。
キー コンテナー証明書責任者のロールを割り当てます。

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

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

ロールの割り当てを追加
リソース作成直後など、証明書を操作する権限がない場合は、RBACで許可されていませんというメッセージが表示されます。 Azure Key Vaultの証明書へのアクセス権限がない場合(Azure Key Vaultでの証明書管理方法)
キー コンテナーのアクセス制御(IAM)で、ロールの割り当ての追加を選択します。 Azure Key Vaultでロールの割り当てを追加(Azure Key Vaultでの証明書管理方法)
ロールにはキー コンテナー証明書責任者を選択します。 キーコンテナー証明書責任者のロールを選択(Azure Key Vaultでの証明書管理方法)
ロールを割り当てるメンバーを選択します。
アクセスの割り当て先でユーザー、グループ、またはサービス プリンシパルを選択します。
権限を付与するメンバーを選択します。
キーコンテナー証明書責任者を割り当てるユーザーを選択(Azure Key Vaultでの証明書管理方法)
確認画面が表示されます。
レビューと割り当てを選択します。
Azure Key Vaultでキーコンテナー証明書責任者のロールを割り当て(Azure Key Vaultでの証明書管理方法)
ロールの割り当てが完了すると、アクセス制御(IAM)に追加したユーザーが表示されます。 キーコンテナー証明書責任者を割り当てたユーザーを確認(Azure Key Vaultでの証明書管理方法)

—広告—

Azure Key Vault使った自己署名証明書の生成、バックアップ、削除、復元の手順

自己署名証明書を生成

公式サイトを参考に、自己署名証明書を生成します。

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

自己署名証明書を生成
証明書のメニューで生成/インポートを選択します。 Azure Key Vaultで証明書を生成(Azure Key Vaultでの証明書管理方法)

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

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

Azure Key Vaultで自己署名証明書を生成(Azure Key Vaultでの証明書管理方法)
有効期間のアクションタイプを4つの中から選択します。
自動更新またはメール送信を選択できます。
Azure Key Vaultで証明書を生成する際の有効期限のアクションタイプ選択肢(Azure Key Vaultでの証明書管理方法)

証明機関(CA)は種類から選択します。
今回は、自己署名証明書を選択します。

提携 CA プロバイダー

Azure Key Vaultで証明書を生成する際の証明機関(CA)の種類(Azure Key Vaultでの証明書管理方法)

ポリシーの詳細構成では、キーの種類などの設定ができます。

Azure Key Vaultで証明書を生成する際のポリシーの詳細構成(Azure Key Vaultでの証明書管理方法)
処理が完了すると、生成された証明書が表示されます。 Azure Key Vaultで管理されている証明書(Azure Key Vaultでの証明書管理方法)

生成した自己署名証明書を確認

生成した自己署名証明書を確認します。

生成した自己署名証明書を確認
生成した証明書を表示します。 Azure Key Vaultで生成した自己署名証明書(Azure Key Vaultでの証明書管理方法)
発行ポリシーを表示します。
証明書の作成時に設定した内容が表示されます。
Azure Key Vaultで生成した自己署名証明書の発行ポリシー(Azure Key Vaultでの証明書管理方法)
証明書自体を選択するプロパティが表示されます。
証明書のダウンロードもできます。
Azure Key Vaultで生成した自己署名証明書のプロパティ(Azure Key Vaultでの証明書管理方法)

生成した証明書をバックアップしてダウンロード

証明書をバックアップすることができます。
バックアップをファイルとしてダウンロードできます。

バックアップのダウンロード
証明書の画面でバックアップのダウンロードを選択します。
バックアップ作成の確認画面が表示されます。
ダウンロードを選択します。
Azure Key Vaultから証明書のバックアップをダウンロード(Azure Key Vaultでの証明書管理方法)

証明書削除および回復の手順

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

証明書の削除

証明書の画面で削除ができます。
この段階では論理削除のため、復元が可能です。

Azure Key Vaultで管理している証明書の論理削除(Azure Key Vaultでの証明書管理方法)

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

※回復を選択すると、削除した証明書を元に戻すことができます。

Azure Key Vaultで管理している証明書の完全削除(Azure Key Vaultでの証明書管理方法)

バックアップから証明書を復元(リストア)

バックアップから証明書を復元します。
なお、復元は同じサブスクリプションのAzure Key Vaultにしか実施できないため、注意が必要です。
また、かつ同じジオグラフィー(地理的領域)内である必要があります。
例えば、Japan EastとJapan Westは異なるリージョンですが、同一ジオグラフィーのため復元可能です。

バックアップから証明書を復元
証明書でバックアップの復元を選択します。 Azure Key Vaultで取得した証明書のバックアップからリストア(Azure Key Vaultでの証明書管理方法)
事前にダウンロードしておいた証明書のバックアップファイルを選択して開きます。 証明書のバックアップファイルを選択(Azure Key Vaultでの証明書管理方法)
ファイルが読み込まれ、証明書がリストアされます。 Azure Key Vaultにリストアされた証明書(Azure Key Vaultでの証明書管理方法)

—広告—

Azure Key Vaultへの証明書インポート手順

Azure Key Vaultを利用して、自身が作成した公開証明書や自己署名証明書をインポートして管理できます。

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

証明書のインポート
証明書のリソースメニューで生成/インポートを選択します。 証明書をインポート(Azure Key Vaultでの証明書管理方法)

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

※PFX形式およびPEM形式に対応しています。

Azure Key Vaultでの証明書インポート画面(Azure Key Vaultでの証明書管理方法)
完了欄に、インポートされた証明書が表示されます。 Azure Key Vaultにインポートした証明書(Azure Key Vaultでの証明書管理方法)
発行プロパティで、インポートした証明書CNなども確認できます。 Azure Key Vaultにインポートした証明書の発行ポリシー(Azure Key Vaultでの証明書管理方法)

Let’s Encryptの証明書発行、OpenSSLを使って証明書をpem形式からpfx形式へ変換する手順については、こちらで紹介しています。

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

Azure Key Vaultで管理する証明書の期限切れ通知設定方法

Azure Key Vaultで証明書を管理している場合、期限切れ前にメール通知を行うことができます。
有効期間の何パーセントを超えた場合や、期限切れの何日前にメール通知するかを指定できます。

証明書の連絡先となるメールアドレスを設定

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

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

証明書の連絡先にメールアドレスを登録

証明書の連絡先でメールアドレスを登録します。
通知先のメールアドレスは複数設定できます。

Azure Key Vaultの証明書連絡先設定画面(Azure Key Vaultでの証明書管理方法)

発行ポリシーで証明書の期限切れを通知設定

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

証明書の期限切れ通知設定
通知対象の証明書で発行ポリシーを選択します。 Azure Key Vaultの証明書発行ポリシーを表示(Azure Key Vaultでの証明書管理方法)

期限切れ通知の設定は、有効期間のアクションタイプと有効期間の2つの設定から構成されます。
なお、Azure Key Vaultで証明書を生成した場合は、自動更新も設定できます。

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

設定が終わったら保存します。
有効期限切れ前にメール通知が送信されます。

【インポートした証明書の場合】証明書の有効期間のアクションタイプ選択肢(Azure Key Vaultでの証明書管理方法)
【Azure Key Vaultで証明書を生成した場合】証明書の有効期間のアクションタイプ選択肢(Azure Key Vaultでの証明書管理方法)
有効期間のアクションタイプで有効期間の割合を選択した場合(Azure Key Vaultでの証明書管理方法)
有効期間のアクションタイプで有効期限までの日数を選択した場合(Azure Key Vaultでの証明書管理方法)

証明書の期限切れ通知メールの例

証明書の期限切れ通知のメール例です。

証明書の期限切れ通知メール
証明書の名前、Azure Key Vaultリソース名、有効期限などが確認できます。 Azure Key Vaultの証明書有効期限切れ通知メール(Azure Key Vaultでの証明書管理方法)

※メールを確認するために、意図的に有効期間の割合を小さく設定しています。

—広告—

最後に

今回は、Azure Key Vaultで証明書を管理するための手順について確認しました。
Azure Key Vaultを利用することで、証明書の期限切れ通知などが行えるため、非常に便利です。

また、Azure Application GatewayやAzure Front Doorとの連携も可能なため、Azureでの証明書管理にAzure Key Vaultを利用するのは非常に良い選択だと思いました。

引き続き、いろいろ試してみたいと思います。

Azure Key Vaultのシークレットを利用する手順については、こちらで紹介しています。
シークレットの作成手順や、マネージドIDを利用したシークレットの参照方法も紹介しています。

スポンサーリンク