AZ-104Azure コンピューティング リソースのデプロイと管理MEDIUM単一選択

ある企業がAzure App ServiceでAPIアプリをホストしており、App Serviceのアプリケーション設定(App Settings)でAPIキーを管理している。セキュリティ審査の結果、APIキーなどのシークレット値をApp Serviceの設定に直接保存することは禁止され、Azure Key Vaultに集中管理するよう求められた。App ServiceからKey Vaultのシークレットを参照する際、最小限のコード変更でシームレスに移行する方法はどれか。

  1. A. App ServiceにシステムマネージドIDを割り当て、Key Vaultのシークレットに対するアクセス許可を付与した上で、アプリケーション設定の値を @Microsoft.KeyVault(SecretUri=https://...) 形式のKey Vault参照に変更する
  2. B. Key VaultのシークレットをApp Serviceのアプリケーション設定に定期的にコピーするAzure Functionを作成し、設定を自動同期する
  3. C. App ServiceとKey Vaultを同一リソースグループに配置すれば、自動的にシークレット共有が有効になる
  4. D. アプリケーションコード内でAzure SDK(SecretClient)を使ってKey Vaultに直接接続し、シークレットを取得するように書き換える
解答と解説を見る

正解: A

App ServiceのKey Vault参照機能を使うと、アプリケーションコードをほぼ変更せずにKey Vaultのシークレットをアプリケーション設定として参照できる。手順はApp ServiceにシステムマネージドIDを有効化→Key VaultのアクセスポリシーまたはRBAC(Key Vault Secrets User ロール)でそのIDにシークレット読み取り権限を付与→App Serviceのアプリケーション設定値を @Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/MySecret/) 形式に変更する。App Serviceが起動時に自動的にKey Vaultからシークレット値を解決してアプリに環境変数として渡すため、コードは通常の環境変数参照のままでよい。選択肢DはSDKで直接取得する方法も有効だが、コードの変更が必要であり「最小限のコード変更」という要件には選択肢Aが優れる。選択肢BはAzure Functionで同期するアプローチはシークレットが一時的にApp Settingsに平文で存在する期間が生じ、設計の複雑さも増す。選択肢Cは同一リソースグループに配置するだけで自動共有は行われないため完全に誤り。

▸ この試験を本気で演習する(全150問・無料)