AZ-305:Designing Microsoft Azure Infrastructure Solutions インフラストラクチャソリューションの設計 問12
インフラストラクチャソリューションの設計/アプリケーションアーキテクチャの設計ある企業では、約 20 個のマイクロサービスが App Service 上で稼働しています。サービス間で共通の設定値と機能フラグを、再デプロイやアプリの再起動なしに変更し、段階的に有効化できるようにしたいと考えています。データベースの接続文字列などの機密値は、設定値の管理場所とは別に、アクセス制御と監査を分けて保管する必要があります。設計として最も適切なものはどれですか。
当サイトのオリジナル問題(AZ-305:Designing Microsoft Azure Infrastructure Solutionsの出題範囲「インフラストラクチャソリューションの設計」に対応。実際の試験問題ではありません)
- AAzure App Configuration で設定値と機能フラグを一元管理し、機密値は Azure Key Vault に置いて App Configuration の Key Vault 参照から取得する
- B各 App Service のアプリケーション設定に設定値と機密値をすべて登録し、変更のたびにスロット スワップで反映する
- C設定値、機能フラグ、機密値をすべて Azure Key Vault のシークレットとして登録し、各アプリが起動時に読み込む
- D設定値を Blob Storage の JSON ファイルに置いて共有し、機密値は Azure Key Vault に置く
正解:A
解説
Azure App Configuration は、複数のアプリで共有する設定値とフィーチャー フラグを一元管理し、センチネル キー等によって再デプロイなしに更新を反映できます。機密値は Key Vault に保管し、App Configuration から Key Vault 参照として指すことで、設定の管理とシークレットのアクセス制御・監査を分離できます。Key Vault はシークレットの保管が目的で、機能フラグの段階的有効化の仕組みは提供しません。
選択肢ごとの解説
- A正しい。設定値と機能フラグは App Configuration で一元管理して動的に更新でき、機密値は Key Vault 参照で分離したまま利用できます。
- B誤り。アプリごとに設定が分散して共通値の一括変更が難しく、機密値も同じ場所に置くため要件の分離を満たしません。設定変更にも再デプロイ相当の作業が必要です。
- C誤り。Key Vault はシークレット、キー、証明書の保管向けで、機能フラグの管理機能や設定値の変更通知による動的更新の仕組みを備えません。設定値まで同じ場所に置くと分離の要件にも反します。
- D誤り。Blob に置いた JSON では機能フラグの管理や変更の反映を自前で実装する必要があります。設定の履歴管理やラベルによる環境の切り替えといった構成管理の機能も得られません。