SC-900:Microsoft Security, Compliance, and Identity Fundamentals Microsoft Entra の機能 問1
Microsoft Entra の機能/Microsoft Entra ID の機能と ID の種類Azure Functions で稼働するアプリケーションから Azure Key Vault 内のシークレットを取得する実装を行います。シークレットや証明書をコードや構成ファイルに保存せず、Microsoft Entra ID による認証でアクセスを許可したい場合、採用すべき方法として適切なものはどれか。
当サイトのオリジナル問題(SC-900:Microsoft Security, Compliance, and Identity Fundamentalsの出題範囲「Microsoft Entra の機能」に対応。実際の試験問題ではありません)
- Aサービスプリンシパルを作成し、クライアントシークレットをコードに直接埋め込んで認証する
- B管理者の個人アカウントの認証情報をアプリケーションの構成ファイルに保存して使用する
- Cマネージド ID を有効にして、Key Vault へのアクセス権を割り当てる
- Dサービスプリンシパルの証明書をアプリケーションのソースコードリポジトリに格納して参照する
正解:C
解説
マネージド ID は、Azure リソースに自動的に割り当てられる Microsoft Entra ID 上の ID で、資格情報の作成・保存・ローテーションを開発者が管理する必要がありません。Azure Functions でシステム割り当てマネージド ID を有効にし、Key Vault 側でその ID にアクセス許可を与えることで、コードにシークレットを埋め込まずに認証できます。サービスプリンシパルを使う方法自体はワークロード ID として有効ですが、シークレットや証明書をコードやリポジトリに保存する運用は資格情報の漏えいリスクを高めます。個人アカウントの資格情報をアプリケーションに流用することも、責任分界や監査の観点から避けるべきです。
選択肢ごとの解説
- A誤り。クライアントシークレットをコードに直接埋め込むと、ソースコードの閲覧やリポジトリへのアクセスを通じて資格情報が漏えいする危険があります。
- B誤り。管理者個人のアカウントをアプリケーションに流用すると、権限の追跡や異動・退職時の失効管理が困難になり、ワークロード用の ID としては不適切です。
- C正しい。マネージド ID を使うと Microsoft Entra ID が資格情報のライフサイクルを自動管理するため、シークレットをコードや構成ファイルに保存せずに Key Vault へ安全にアクセスできます。
- D誤り。証明書をソースコードリポジトリに格納すると、リポジトリへのアクセス権を持つ人に証明書が漏えいする可能性があり、安全な管理方法とはいえません。