この記事はトピック「Azure上でセキュアなアプリケーションを作るベストプラクティス」の中の一記事となります。
本稿では「Azure上でパスワード等のセンシティブ情報を管理する方法」がいくつかあるなかで、その比較を紹介します。
設定情報を外部に保つ方法として、ローカルファイル(Web.config/appsettins.json)、App Service のApp Settings, App Configuration, Key Vault, Blob Storageの5つを比較しました。後者4つはAzure 固有の機能ですが、同等のものは各種クラウド環境に存在します。
ここでは下記の点を比較のポイントとしました。
方式 | 暗号化 | ACL | 監査ログ | 共有 | 変更管理 | 変更通知 | 備考 |
---|---|---|---|---|---|---|---|
ローカルファイル | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ | ※1 |
App Settings | ◯ | ✕ | ✕ | △ | ✕ | △ | ※2 |
App Configuration | ◯ | ◯ | ✕ | ◯ | ◯ | ◯ | ※3 |
Key Vault | ◯ | ◯ | ◯ | ◯ | ◯ | ✕ | |
Blob Storage | ◯ | △ | ✕ | ◯ | ✕ | ✕ | ※4 |
これを見ると、App ConfigurationとKey Vaultの間の差は、監査ログと変更通知だけで、機能面では、大きな差が無いことがわかります。
まず、システムが稼働する業界や企業で定義されているコンプライアンス、ガバナンスに従で定義されている機密情報を確認します。
その中で、機密情報を扱う場合に、特別なコントロール(NDA、物理セキュリティ等)を要求されている場合は、監査ログが取れる Key Vault 一択になります。
監査ログが不要で、複数アプリ・インスタンスで共有したいなら、App Conguration、App Settingsという選択肢があります。
環境依存な設定情報には、機密と機密ではないものが両方含まれています。センシティブ情報と定義したデータへのアクセスに必要な設定情報は監査可能なKey Vaultに収容するのがベストプラクティスです。
お問い合わせはこちらから
問い合わせる