ケーススタディ5
要件
領収書の処理
領収書の同時処理は防止する必要があります。
ロギング
Azure Application Insightsは、プロセッサとWebアプリケーションの両方でのテレメトリとログインに使用されます。プロセッサでは、TraceWriterログも有効になっています。Application Insightsには、常にすべてのログメッセージが含まれている必要があります。
災害からの回復
地域の停止は、アプリケーションの可用性に影響を与えてはなりません。すべてのDR操作は、実行中のアプリケーションに依存してはならず、DR領域のデータが最新であることを確認する必要があります。
安全
*ユーザーのSecurityPinは、データベースへのアクセスでSecurityPinを表示できないように保存する必要があります。Webアプリケーションは、SecurityPinsにアクセスできる唯一のシステムです。
*データを保護するために使用されるすべての証明書とシークレットは、AzureKeyVaultに保存する必要があります。
*最小特権の原則を順守し、目的の機能を実行するために不可欠な特権を提供する必要があります。
* AzureStorageおよびAzureSQLデータベースへのすべてのアクセスでは、アプリケーションのマネージドサービスID(MSI)を使用する必要があります
*受信データは、保存時に常に暗号化する必要があります。
*すべてのデータは転送中に保護する必要があります
*ユーザーの経費勘定番号は、ログインしているユーザーにのみ表示される必要があります。経費勘定番号の他のすべてのビューには、最後のセグメントのみが含まれ、残りの部分は隠されている必要があります。
*セキュリティ違反の場合、システムの他の部分に影響を与えることなく、すべての要約レポートへのアクセスを取り消す必要があります。
問題
アップロード形式の問題
従業員は、Webアプリケーションを使用した領収書のアップロードに関する問題を報告することがあります。Azure File Shareを使用してレシートをアップロードすると、レシートがプロファイルに表示されないことが報告されています。これが発生すると、ファイル共有内のファイルが削除され、Webアプリケーションが使用されます。Webアプリケーションは500InternalServerエラーページを返します。
容量の問題
忙しい時期には、従業員は領収書をアップロードしてからWebアプリケーションに表示されるまでに長い遅延があると報告します。
ログ容量の問題
開発者は、プロセッサのトレース出力のログメッセージの数が多すぎて、ログメッセージが失われると報告しています。
アプリケーションコード
Processing.cs

Database.cs

ReceiptUploader.cs

ConfigureSSE.ps1

注:この質問は、同じシナリオを提示する一連の質問の一部です。シリーズの各質問には、述べられた目標を達成する可能性のある独自の解決策が含まれています。一部の質問セットには複数の正しい解決策がある場合がありますが、他の質問セットには正しい解決策がない場合があります。
この質問の質問に答えた後は、その質問に戻ることはできません。その結果、これらの質問はレビュー画面に表示されません。
SecurityPinのセキュリティ要件が満たされていることを確認する必要があります。
解決策:Azure Portalを使用して、SecurityPin列にデータマスキングを追加し、dboユーザーを除外します。ユーザーIDに基づくフィルター述語を使用してSQLセキュリティポリシーを追加します。
ソリューションは目標を達成していますか?