Azure Key Vault の監査とログ

Takekazu Omi Takekazu Omi
Keiichi Hashimoto Keiichi Hashimoto
Azure Key Vault の監査とログ

はじめに

この記事はトピック「Azure上でセキュアなアプリケーションを作るベストプラクティス」の中の一記事となります。

本稿は、Microsoft Azureで、アプリケーションで使われるセンシティブ情報(パスワード等)の保護のベストプラクティスとして情報をKey Vaultに保存する利点を論じています。そして、Key Vaultの利点を構成する重要な点として、監査とログについて記述します。

監査

Key Vaultの2つめの特徴は、監査ログと監視(Azure Monitor Alerts)です。最新のKey Vaultでは、Log Analytics(Azure Monitor Log)に直接、Key Vaultのアクセスログを保存可能です。保存したログをKQLでクエリーしアラートを出す機能が用意されています。 Azure PortalでのKey Vaultの監査ログの分析を支援するKey Vault Analyticsソリューションも用意されています。Key Vault Analyticsでは下記のように表示されます。

図10 Key Vault Analytics

監査ログをLog Analyticsに保存すると、KQLを使って、呼び出し元のIPの一覧を確認したり。

AzureDiagnostics
| where ResourceProvider =="MICROSOFT.KEYVAULT" and Category == "AuditEvent"
| sort by TimeGenerated desc
| summarize AggregatedValue = count() by CallerIPAddress

図11 KQL CallerIPAddress

エラーになった呼び出しを確認するなど自由度の高い参照ができます。

AzureDiagnostics
| where ResourceProvider =="MICROSOFT.KEYVAULT" and Category == "AuditEvent" 
    and httpStatusCode_d >= 300 
    and not(OperationName == "Authentication" and httpStatusCode_d == 401)
| sort by TimeGenerated desc
| summarize AggregatedValue = count() by ResultSignature

図12 KQL httpStatusCode

また、上記のクエリを少し加工(アグリゲーション部分を削除して)したクエリを使ってAlertを設定することもできます。Respond to events with Azure Monitor Alerts

アグリゲーション部分を削除したのは、Azure Monitor の Alert エンジンで、期間、スレッショルドの処理を行うためです。ログ検索クエリーとしては、summarize を行うと二重の集計になってしまい期待した結果になりません。

AzureDiagnostics
| where ResourceProvider =="MICROSOFT.KEYVAULT" and Category == "AuditEvent" 
    and httpStatusCode_d >= 300 
    and not(OperationName == "Authentication" and httpStatusCode_d == 401)

図13 Azure Monitor Alert

このような監査と監視の仕組みを使えるのことが、Key Vaultの大きな利点です。これによって高度なデータの保護を実現しています。

最後に

Key Vault は、 最後に、注意すべき点を1つ。Key Vaultのセキュリティが高いからと言って、すべての設定情報を Key Vaultに入れるのはアンチパターンです。セキュリティは、アクセスが限定され監査が有効なことで保たれており、全部をKey Vaultに入れてしまうと、その前提が崩れてしまいます。センシティブ情報だけをKey Vaultに入れてください。

次の記事

お問い合わせはこちらから

問い合わせる
TOP