ある企業が Azure Key Vault を使用してアプリケーションの API キーと証明書を管理している。開発者がコードにシークレットをハードコーディングするリスクを排除したい。Key Vault でシークレットをアプリが安全に取得する最も適切な認証方法はどれか。
- A. Azure Active Directory のマネージド ID をアプリに割り当て、Key Vault アクセスポリシーで許可する
- B. Key Vault のリソース ID を環境変数に設定し、アプリから直接HTTPリクエストで取得する
- C. Key Vault の接続文字列を Azure Blob Storage に保存し、アプリ起動時に読み込む
- D. Key Vault のアクセスキーをアプリの設定ファイルに格納してSDKで取得する
解答と解説を見る
正解: A
Azure マネージド ID(Managed Identity)は、Azure リソースに Azure AD の ID を自動的に割り当てる仕組みで、コードに認証情報(クライアントシークレット等)を一切記述せずに Key Vault のシークレットを取得できる。アプリは Azure AD にトークンを要求し、Key Vault アクセスポリシーまたは RBAC でそのIDに権限を付与するだけでよい。選択肢DはKey Vault のアクセスキー自体を設定ファイルに格納することになり、ハードコーディングと同じ問題が発生する。選択肢BはKey Vault へのアクセスに別の認証トークンが必要であり、リソースIDだけではシークレットを取得できない。選択肢CはBlob Storage に認証情報を移しただけで、根本的なシークレット管理の問題を解消していない。
📚 関連サービスの解説: Azure Key Vault