App ServiceとAzure FunctionsでKey Vault参照がGA!

はじめに

この記事は2019/10/15に発表された"Key Vault references in App Service and Azure Functions are now available"の要約記事です。
この記事では「そもそもAzure Key Vaultとは何か」といったところから今回の発表のポイントまで紹介していきます。
始めに今回の発表のハイライトを紹介し、Azure Key Vaultの簡単な説明や発表の詳細について述べていきます。

今回の発表のハイライト

ソースコードの変更なしでシークレットの管理機能をアプリケーションへ導入することができるKey Vault参照がGAされました。
それにより、App ServiceやAzure Functionsでホストされるアプリは、アプリケーション設定の中でKey Vaultで管理されるシークレットへの参照を簡単に定義できるようになりました。

Azure Key Vaultとは何か

Azure Key Vaultとはアクセスを厳密に制御する必要があるもの(シークレット)を安全に保管し、安全にアクセスするためのツールです。
アクセスを厳密に制御する必要があるものとは具体的にはAPI キー、パスワード、証明書などのことを指します。
Azure Key Vaultを利用すると以下のことが簡単に、そして厳密に制御することができます。

  • シークレットの管理:トークン、パスワード、証明書、API キーなどを安全に保管&厳密なアクセス管理ができます
  • キー管理:データの暗号化キーの作成と制御が簡単に行うことができます
  • 証明書の管理:Azure および内部の接続されているリソース用のSSL/TLS証明書を簡単にプロビジョニング、管理、デプロイすることができます
  • ハードウェア セキュリティ モジュールに基づくシークレットの格納:以上のシークレットはソフトウェアまたはFIPS 140-2 レベル2検証済みHSMで保護することができます

詳細についてはAzure Key Vault とはAzure Key Vault の基本的な概念を参照してください。

今回発表された内容

シークレットとは有効期限とアクセス制限に基づいて一時的に保存されます。
これらの管理機能をAzureのアプリケーションに提供するのがAzure Key Vaultですが、これを用いるためにはコードを変更しなければなりません。
しかし、アプリケーションの中にはコードの変更を簡単に行うことができないものもあります。

そこで、ソースコードの変更なしでシークレットの管理機能をアプリケーションへ導入することができるKey Vault参照が公開されました。
それにより、App ServiceやAzure Functionsでホストされるアプリは、アプリケーション設定の中でKey Vaultで管理されるシークレットへの参照を簡単に定義できるようになりました。
具体的には、Key Vault参照はシステムに割り当てられたアプリのIDを利用してシークレットを安全に取得し、それを環境変数としてアプリケーション内で使用できるようにします。
つまり、アプリケーションの設定の既存のシークレットをKey Vaultの中にある同じシークレットへの参照に置き換えるだけで、アプリケーションはそのまま正常に動作します。

おわりに

この機能は以下のホスティングオプションで徐々に提供されています。

  • App Service Plan
  • App Service Environment
  • Azure Functions Consumption Plan(Windows)
  • Azure Functions Premium plan

Azure Functions Consumption plan(Linux)へのサポートは近日中に提供されます。 詳細はこちらのドキュメントを参照してください。
この記事はこちらのQiitaにも投稿されています。

%d人のブロガーが「いいね」をつけました。