AI-200:Developing AI Cloud Solutions on Azure Azure ソリューションのセキュリティ保護・監視・トラブルシューティング 問1
Azure ソリューションのセキュリティ保護・監視・トラブルシューティング/Azure ソリューションのセキュリティ保護(Key Vault・App Configuration)Azure Container Apps で動く API から、Azure Key Vault のシークレットを取得します。コードやアプリの設定に資格情報を一切置かず、必要最小限の権限で取得させたいと考えています。Key Vault のアクセス制御には Azure RBAC を使っています。適切な構成はどれですか。
当サイトのオリジナル問題(AI-200:Developing AI Cloud Solutions on Azureの出題範囲「Azure ソリューションのセキュリティ保護・監視・トラブルシューティング」に対応。実際の試験問題ではありません)
- AKey Vault のアクセス キーをアプリの環境変数に設定し、SDK でそのキーを使って接続する
- Bアプリのマネージド ID に、サブスクリプション全体の所有者(Owner)ロールを割り当てる
- Cアプリのマネージド ID を有効にし、その Key Vault で「Key Vault Secrets User」ロールを割り当てて、SDK の DefaultAzureCredential で取得する
- Dサービス プリンシパルのクライアント シークレットをコンテナー イメージに埋め込み、起動時に読み込ませる
正解:C
解説
マネージド ID を使うと、資格情報をコードや設定に置かずに Microsoft Entra ID で認証できます。Azure RBAC で Key Vault のアクセスを制御している場合、シークレットの値を読み取るには「Key Vault Secrets User」ロールが必要で、これを対象の Key Vault に限って割り当てるのが最小権限です。SDK の DefaultAzureCredential は、Azure 上ではマネージド ID を自動で使います。
下線の用語は 用語集 で意味を確認できます。
選択肢ごとの解説
- A誤り。Key Vault には、ストレージ アカウントのようなアクセス キーはありません。資格情報を環境変数に置かないという要件にも反します。
- B誤り。所有者ロールは、リソースを管理するための広い権限です。最小権限の原則に反しますし、シークレットの値を読むための権限として適切ではありません。
- C正しい。マネージド ID と、対象の Key Vault に限定した「Key Vault Secrets User」ロールの組み合わせが最小権限の構成です。
- D誤り。クライアント シークレットをイメージに埋め込むと、イメージを取得できる人に資格情報が漏れます。資格情報を置かないという要件にも反します。