Azure Queue Storageを保護してください

Azure Queue Storageはアプリケーションコンポーネント間のメッセージキューイングを提供します。 メッセージはしばしばオブジェクト識別子、コールバックURL、アプリケーション状態などの機密リソースへの参照を含むため、キュー認証とメッセージ内容の処理の両方を安全にする必要があります。

注

この記事では、Azure Queue Storageに特有のセキュリティ対策について解説します。 アカウントレベルのセキュリティガイダンスについては、「Secure your Azure Storage account」をご覧ください。

アイデンティティとアクセス管理

  • Microsoft Entra IDを管理型IDでキュープロデューサーおよびコンシューマーに適用します:組み込みのストレージキューデータメッセージセンダー、ストレージキューデータメッセージプロセッサ、ストレージキューデータリーダーの役割を、キューとやり取りする各サービスのマネージドアイデンティティに割り当てます。 作戦に合った役割を選びましょう。 メッセージ送信サービスがプロセッサ権限を保持すべきではありません。 詳細については、「Microsoft Entra ID を使ったキューへのアクセスを許可」をご覧ください。

  • 特定のキューへのスコープロールベースアクセス制御(RBAC)ロール割り当て:組み込みのキューデータロールにはキューレベルのスコープがサポートされています。 マルチキューアカウントでサービスが1つのキューのみにアクセスする必要がある場合、ストレージアカウントではなくキューレベルで割り当ててください。

  • SASトークンを単一のキューにスコープし、特定のメッセージ操作を行う:キュー共有アクセス署名(SAS)は、 add、 update、 process、 read 権限を別々にサポートします。 電話をかける人に必要なものだけを与えてください。 イベントをエンキューするWebhookレシーバーは、add のみを受け取るべきであり、process ではありません。 詳細については、Shared Access Signature (SAS) を使用したアクセスの委任に関するページを参照してください。

データ保護

メッセージは静止時や送信中のアカウントの暗号化とTLS設定で保護されますが、キューレベルの承認以外は個別にアクセス制御されていません。 メッセージ内容は機密データをキューに集中させないように設計しましょう。

  • キューメッセージにシークレットや認証情報を入れないでください:シークレットはAzure Key Vaultに保存し、メッセージ内に参照(シークレット識別子)を入れてください。 消費者は処理時に自分の身元で秘密を取得します。 メッセージに含まれたものは、キューに process や read があるすべてのプリンシパルに見え、ストレージログに書き込まれます。

  • アプリケーション層で機密メッセージのペイロードを暗号化する:機密データを搭載する必要があるメッセージについては、エンキュー前にKey Vaultの鍵でペイロードを暗号化してください。 これによりストレージ側の暗号化とは独立した層が追加され、消費者が侵害された場合の露出を制限します。 詳細については、Azure Storageのクライアントサイド暗号化をご覧ください。

  • 適切なメッセージの生存時間(TTL)を設定する:メッセージは処理されるか期限切れになるか、キューが空くまで持続します。 長いTTLは、古い機密データが取得可能なウィンドウを長くします。 TTLを予想される処理遅延と安全マージンに合わせます。

ログ記録と監視

  • キュー操作の診断設定を有効にする:StorageRead、StorageWrite、StorageDeleteカテゴリをLog Analyticsに送信し、個々のキュー操作が監査可能になるようにします。 不正利用を検出するための認証方法(Entra ID、Shared Key、SAS、匿名)を追跡します。 詳細については、「Monitoring Azure Queue Storage」をご覧ください。

  • ポイズンメッセージを専用のポイズンキューに移動する:消費者がデキューカウントの閾値を超えるメッセージを検出し、オフライン調査用のキュー <queue-name>-poison キューに移動するよう設定します。 毒キューの蓄積は単なる作戦上のものではなく、セキュリティのシグナルです。 詳細については、「 キュートリガー関数におけるポイズンメッセージの処理」を参照してください。

  • ポイズンキューの成長に関するアラート:各ポイズンキューのメッセージ数にAzure Monitorアラートを設定し、予期せぬ増加が調査をトリガーするようにします。

  • 異常なデキューおよび削除パターンへの警告:予期せぬ識別からの DeleteMessage 操作のバーストや、下流処理がない大量のデキューのみの活動は、攻撃者が活動を隠すためにキューを排水していることを示すことがあります。 キューの通常のトラフィックプロファイルからの逸脱に注意を促します。

次のステップ