Azure Key Vaultとは?シークレット・キー・証明書を安全に管理する仕組みを実務目線で解説

Azure

Azureでアプリを動かしはじめると、必ずぶつかるのが機密情報をどこに置くかという問題です。データベースの接続文字列、外部APIのキー、SSL証明書——こういった「漏れたら一発でアウト」な情報を、コードや設定ファイルに直書きするわけにはいきません。そこで登場するのがAzure Key Vaultです。

ただ、いざMicrosoft Learnを開くと、シークレット・キー・証明書・HSM・Managed HSM・論理削除・パージ保護……と用語が一気に押し寄せてきて、「で、結局これは何を保管するサービスで、自分はどれを使えばいいの?」と手が止まってしまう。私自身、キーレス構成や閉域ネットワークの設計で日常的にKey Vaultを触っていますが、最初に全体像を整理しておかないと、細かい機能から入って迷子になりがちな領域です。

「Key Vaultって結局なにを入れる箱なの?シークレットとキーと証明書って何が違うの?StandardとPremiumとManaged HSM、どれを選べばいいの?」

この記事は、そんなKey Vaultの全体像をつかむための地図(ハブ記事)です。Key Vaultとは何か、なぜ使うのか、保管できる3つのオブジェクト(シークレット・キー・証明書)の違い、価格レベルとHSM/Managed HSMの選び方、作成の流れ、そして地味に大事な削除保護(論理削除・パージ保護)まで、公式の正確さは押さえつつ、実務目線で噛み砕いて整理します。読み終わるころには、Key Vault全体の見取り図が頭に入り、「自分の案件ではどう使えばいいか」を判断できるようになります。

なお、アクセス制御の詳細、各オブジェクトの具体的な作成手順、マネージドIDでのキーレス連携、ネットワーク閉域化と運用——このあたりの「実際に手を動かす」部分は、末尾の実務シリーズ(子記事)に譲ります。まずはこのハブで全体を俯瞰してください。

Azure Key Vaultとは:機密情報専用の「クラウド金庫」

Azure Key Vaultをひとことで言うと、機密情報を安全に保管し、必要なときだけ取り出せるようにするマネージドサービスです。名前のとおり「金庫(Vault)」だと思えば、イメージがぐっとつかみやすくなります。

会社で言えば、現金や重要書類を机の引き出しに放り込んでおく人はいませんよね。ふつうは金庫にしまい、鍵を持った限られた人だけが開けられるようにします。Key Vaultはまさにこの「クラウド上の金庫」です。パスワードや接続文字列をアプリのコードに直書きするのは、大事な書類を机に置きっぱなしにするのと同じ。Key Vaultに移すことで、機密情報を一箇所に集約して守り、誰がいつ開けたかを記録できるようになります。

「マネージド」というのも重要なポイントです。金庫そのものの頑丈さ——暗号化のアルゴリズム、鍵を守るハードウェア、可用性——はAzure側が面倒を見てくれます。私たち利用者は「何を入れて、誰に開けさせるか」だけを考えればよく、暗号技術を自前で実装する必要はありません。ここがKey Vaultを使う最大のうまみの一つです。

なぜKey Vaultを使うのか:直書きの3つのリスクをまとめて潰せる

「設定ファイルに書いておけばいいのでは?」と思うかもしれません。実際、学習用のプロトタイプならそれでも動きます。ですが、少しでも本番を意識した瞬間、直書きには無視できないリスクが出てきます。Key Vaultを使う理由は、突き詰めると次の3つに集約されます。

1つ目は、コードやリポジトリからの漏洩を防げること。接続文字列やAPIキーをコードに直書きすると、それをGitにコミットした瞬間、機密情報がリポジトリの履歴に永久に残ります。うっかりパブリックリポジトリに上げてしまい、キーが流出——というのはクラウド事故の定番です。Key Vaultに置いておけば、コード側には「Key Vaultのこの名前の値を取りに行く」という参照だけが残り、実体はコードに一切現れません。

2つ目は、機密情報を一元管理できること。接続文字列が10個のアプリにバラバラに埋め込まれていると、パスワードを1回変えるだけで10箇所を直して回ることになります。Key Vaultに集約しておけば、金庫の中身を1回更新するだけで全アプリが新しい値を参照できる。ローテーション(定期的な入れ替え)が現実的に回せるようになるわけです。

3つ目は、アクセスを制御し、監査できること。「誰がこのシークレットを読めるか」を細かく設定でき、なおかついつ・誰が・何にアクセスしたかがログに残ります。金融・医療・公共といった規制の厳しい業種では、この監査証跡が実質的に必須です。私が関わる案件でも、まず「機密情報はKey Vaultに集約し、アクセスは最小権限+ログ取得」から設計を始めることが多いです。

「漏洩を防ぐ」「一元管理する」「監査する」。この3点を、自前で作らずマネージドで手に入れられるのがKey Vaultです。

保管できる3つのオブジェクト:シークレット・キー・証明書の違い

Key Vaultに入れられるものは、大きくシークレット(Secrets)・キー(Keys)・証明書(Certificates)の3種類です。ここが最初の分かれ道で、名前が似ているせいで混乱しやすいのですが、役割はきれいに分かれています。「金庫の中に、性質の違う3つの引き出しがある」とイメージしてください。

シークレット:ただの「文字列」を安全にしまう引き出し

シークレットは、パスワード・データベース接続文字列・APIキーといった任意の文字列を保管するための引き出しです。3種類のなかで最も出番が多く、まず触るのはこれになります。ポイントは、Key Vault側は中身を「ただの秘密の文字列」として預かるだけで、その文字列が何を意味するかは関知しないこと。金庫は「封筒の中身」までは見ず、封筒ごと安全に預かってくれる、という感覚です。

キー:中身を取り出させず「暗号の操作だけ」させる引き出し

キーは、暗号化・復号・デジタル署名に使う暗号鍵そのものを管理する引き出しです。RSAや楕円曲線(EC)などの鍵を扱えます。シークレットとの決定的な違いは、キーは原則として外に取り出さず、「暗号操作をKey Vaultの中でやってもらう」という使い方をする点です。

金庫の例えで言うなら、シークレットは「封筒を取り出して中を読む」もの、キーは「金庫の中に判子があって、書類を差し込むと中で押印して返してくれる」もの、という違いです。判子(鍵)そのものは金庫の外に出ないので、鍵の実体が盗まれるリスクを大きく下げられます。ストレージの暗号化やデータベースの透過的暗号化(TDE)で「自分の鍵で守りたい(顧客管理キー)」といった要件で登場します。

証明書:鍵+メタデータをまとめて「ライフサイクル管理」する引き出し

証明書は、SSL/TLS証明書などのX.509証明書を管理する引き出しです。証明書は中身としては「鍵」と「有効期限などのメタデータ」がセットになったものなので、Key Vaultは内部的にキーとシークレットを組み合わせて証明書を表現しています。証明書だけの特別な価値は、有効期限の管理と自動更新にあります。期限切れでサービスが止まる——というありがちな事故を、更新を任せることで防げるわけです。

ざっくり選び分けの目安はこうです。ただの秘密の文字列ならシークレット、暗号操作に使う鍵ならキー、Webサイトなどの証明書なら証明書。この3択さえ頭に入れておけば、Learnのドキュメントで迷子になりません。それぞれの具体的な作成・取り出し手順は、実務シリーズの「シークレット・キー・証明書の実践」で扱います。

価格レベルとHSM:StandardとPremium、そしてManaged HSM

Key Vaultを作るとき、必ず価格レベル(SKU)を選びます。ここで理解しておきたいのが「鍵を何で守るか」という観点です。守り方には大きくソフトウェア保護HSM保護の2つがあります。

HSM(Hardware Security Module)とは、暗号鍵を守るための専用の耐タンパー(不正開封防止)ハードウェアです。ソフトウェアの中に鍵を持つより一段強く、鍵がハードの外に出ない構造になっています。金庫の例えなら、ソフトウェア保護が「頑丈な金庫」、HSM保護が「銀行の地下にある、専用装置で守られた金庫室」というイメージです。

Standard と Premium の違い

通常のKey VaultにはStandardPremiumの2つのレベルがあります。基本的な操作の考え方は同じで、違いはHSM保護キーを使えるかどうかです。Standardはソフトウェア保護キーのみ、Premiumはそれに加えてHSM保護キーも使えます。「共有のHSMで守られた鍵が欲しい」という程度の要件なら、Premiumで十分カバーできます。多くの案件では、まずStandardで始め、規制要件でHSMが必要になった段階でPremiumを検討する、という順番になります。

料金は「保管しておくだけ」より「操作した回数」で積み上がる従量課金が中心です。小規模なWebアプリでシークレットを数個置く程度なら月額は数十円レベルに収まりますが、HSM保護キーを多数使うと桁が変わってきます。正確な単価はリージョンや時期で変わるため、金額はかならずAzure Key Vaultの公式価格ページで最新を確認してください。ここでは「保管より操作回数で課金される」という構造だけ押さえておけば十分です。

Managed HSM は「専有の金庫室」

Premiumより上、規制のさらに厳しい世界で登場するのがAzure Key Vault Managed HSMです。通常のKey Vault(StandardもPremiumも)は、裏側のインフラを他テナントと共有するマルチテナント型のサービスです。一方Managed HSMは、自分のテナント専用に確保された、単一テナント専有のHSMプールを提供します。

金庫の例えで言えば、Standard/Premiumが「銀行が用意した共用の貸金庫コーナー(頑丈だが建物は他の人と共有)」、Managed HSMが「自社ビルの地下に丸ごと確保した専用金庫室」です。当然コストも運用の重さも段違いで、FIPS 140-2 Level 3相当という高い認証水準や、鍵の完全な統制が求められる金融・医療・政府系などの規制業種で採用されます。

使い分けの結論はシンプルです。まずは通常のKey Vault(Standard)で始める。HSM保護キーが要ればPremium。テナント専有・最高水準の統制という規制要件が明確にあるときだけManaged HSM。逆に言えば、要件もないのにいきなりManaged HSMを選ぶ必要はまずありません。

Key Vaultを作成する流れ

全体像がつかめたところで、実際の作り方をざっと見ておきましょう。Key Vaultの作成そのものは驚くほど簡単で、迷うのはむしろ「作成時に決める項目の意味」の部分です。ここでは概要にとどめ、細かい設定は各子記事で深掘りします。

ポータルで作成する

Azureポータル(portal.azure.com)で「Key Vault」を検索し、「作成」に進みます。

Azureポータルで Key Vault を検索する画面

作成ウィザードで最低限決めるのは、次の項目です。

  • リソースグループ:新規作成、または既存のものを選択。
  • Key Vault名グローバルで一意な名前。{名前}.vault.azure.net というURLになるため、他テナントと被らない値にする必要があります。
  • リージョン:利用するアプリと同じリージョンにするのが基本。
  • 価格レベル:前章で見たStandardかPremium。

機密情報を扱うサービスなので、ネットワークの項目ではパブリックアクセスを絞る(選択したネットワークやプライベートエンドポイントのみ許可する)のが推奨です。ここは重要なので、実務シリーズの「ネットワーク閉域と運用」で詳しく扱います。学習で最初に触るだけなら、まずはデフォルトのまま作成しても構いません。

Key Vault のネットワーク設定画面

Azure CLIで作成する

手順を自動化・再現したいなら、CLIのほうが速いです。リソースグループを作り、その中にKey Vaultを1コマンドで作成できます。

# リソースグループの作成
az group create --name myResourceGroup --location japaneast

# Key Vault の作成(Standard)
az keyvault create \
  --name ait0303-kv \
  --resource-group myResourceGroup \
  --location japaneast \
  --sku standard

各オプションの意味は次のとおりです。

  • --name:Key Vault名。前述のとおりグローバルで一意にする。
  • --resource-group:配置先のリソースグループ。
  • --location:リージョン(例では東日本 japaneast)。
  • --sku:価格レベル。standard または premium

作成できたら、次は「中身(シークレットなど)を入れる」「誰がアクセスできるかを決める」というステップに進みます。この2つはKey Vault運用の本丸なので、それぞれ実務シリーズで独立した記事として掘り下げます。

削除保護:論理削除(Soft Delete)とパージ保護(Purge Protection)

最後に、地味ですが実務で必ず効いてくる削除保護を押さえておきます。金庫に大事なものを入れておいたのに、うっかり金庫ごと捨ててしまった——これを救うのが論理削除、そもそも捨てさせないのがパージ保護です。

論理削除(Soft Delete):削除しても一定期間は復元できる

論理削除は、Key Vault本体やその中身(シークレット・キー・証明書)を削除しても、すぐには完全消去せず、一定期間「削除済み」状態で保持し、復元できるようにする仕組みです。PCのゴミ箱をイメージすると分かりやすいです。捨ててもいったんゴミ箱に入るので、間違えて消しても戻せる、というわけです。

保持期間は7日〜90日で設定でき、デフォルトは90日です。注意点として、この保持期間は作成時にしか決められず、あとから変更できません。そして重要なのが、現在の仕様では新規にKey Vaultを作ると論理削除は常に有効になり、一度有効になると無効化できないという点です。以前は任意設定でしたが、今は事実上「必ずオン」と考えておけば大丈夫です。

ひとつ実務的な落とし穴があります。論理削除された名前は、保持期間が切れるまで同じ名前で作り直せません。テスト用のKey Vaultを消してすぐ同名で作ろうとしてエラーになる、というのはよくある詰まりどころ。この場合は、削除済みリソースを明示的にパージ(完全削除)するか、別名で作るか、を選ぶことになります。

パージ保護(Purge Protection):保持期間中は完全削除させない

論理削除には「削除済み状態のものを、管理者が手動で完全削除(パージ)できてしまう」という穴があります。悪意のある内部関係者が「削除→即パージ」で証拠ごと消す、という攻撃も理屈上は可能です。それを塞ぐのがパージ保護です。

パージ保護を有効にすると、保持期間が満了するまで、誰であっても完全削除(パージ)ができなくなります。削除しても保持期間中は必ずゴミ箱に残り続け、期間が過ぎるまで物理的に消せない。ゴミ箱に「期間が来るまで開かないロック」がかかるイメージです。

ここで肝心なのは、パージ保護は任意(デフォルトでは無効)で、一度有効にすると無効化できないという性質です。強力な保護ですが、後戻りできない設定なので、本番の重要な金庫にはオンにする、検証用には慎重に、という判断が要ります。ちなみに、StorageなどKey Vaultの鍵に依存するAzureサービスの多くは、データ消失を防ぐためにパージ保護を要求します。「鍵で暗号化するなら、パージ保護もセット」と覚えておくと事故を防げます。

まとめ

この記事では、Azure Key Vaultの全体像を「クラウド金庫」というたとえで整理してきました。要点を振り返ります。

  • Key Vaultとは:機密情報を安全に保管するマネージドな「クラウド金庫」。暗号技術は自前で作らずAzureに任せられる。
  • なぜ使うか:コード直書きの漏洩を防ぎ、機密情報を一元管理し、アクセスを制御・監査できる。
  • 3つのオブジェクト:秘密の文字列はシークレット、暗号操作に使う鍵はキー、Webサイト等の証明書は証明書
  • 価格とHSM:ソフトウェア保護のみならStandard、HSM保護キーが要ればPremium、テナント専有の最高水準が要る規制業種はManaged HSM
  • 削除保護論理削除は今は常時オンで削除しても7〜90日は復元可。パージ保護は任意だが一度オンにすると無効化不可。

ここまでで、Key Vault全体の見取り図は頭に入ったはずです。あとは「実際に中身を入れ、誰にどう開けさせ、どうネットワークで守り、どう運用するか」という各論に進むだけ。それらは下の実務シリーズで、1テーマずつ手を動かしながら掘り下げていきます。

さらに深く学ぶ:Azure Key Vault 実務シリーズ

このハブ記事で全体像をつかんだら、次は目的に合わせて実務編へ。それぞれ手を動かす手順つきで解説します(順次公開予定)。

Azureのスキルを「年収」に変えるなら

ここまで手を動かせるようになったなら、そのスキルは市場価値のある武器です。私自身、クラウドの実務経験を軸に単価を上げてきました。クラウドエンジニアとして転職・フリーランスで年収を上げたいなら、まずは自分の市場価値を知るところからです。

未経験・学生・ハイクラスなど、状況別におすすめのエージェントを比較した記事を用意しています。あわせてどうぞ。

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