ある企業がAzure上に機密性の高い資格情報(データベース接続文字列・APIキーなど)を安全に保存し、アプリケーションがコードに埋め込まずにシークレットを取得できる仕組みを構築したい。また、シークレットへのアクセスは特定のアプリケーション(マネージドID)にのみ許可したい。最も適切なAzureサービスはどれか。
- A. Azure Key Vault:シークレット・証明書・暗号化キーを安全に保管し、マネージドIDに対してアクセスポリシーを設定できる
- B. Azure Blob Storage:接続文字列をテキストファイルとして暗号化して保存する
- C. 環境変数:アプリケーション設定に直接記述する
- D. Azure SQL Database:シークレットをデータベーステーブルに格納する
解答と解説を見る
正解: A
Azure Key VaultはAPIキー・データベース接続文字列・TLS証明書・暗号化キーなどのシークレットをHSMバックドで安全に保管するサービスで、アプリケーション(マネージドIDを持つVM・Functions・App Service)にKey Vaultへのアクセスポリシーを設定することで、コードに資格情報を埋め込まずにシークレットをAPIで取得できる。選択肢BのBlob Storageへのファイル保存は、アクセス制御が複雑になりシークレット管理の専用サービスではないため適切でない。選択肢DのSQLデータベースへの格納はDBへのアクセス自体に資格情報が必要となり循環問題が生じる。選択肢Cの環境変数への直接記述は設定の可視性リスクがあり、Key Vaultと比べてシークレット管理(ローテーション・監査・アクセスログ)の観点で劣る。
📚 関連サービスの解説: Azure Key Vault