Zabezpiecz swój Azure Queue Storage

Azure Queue Storage zapewnia kolejkę wiadomości pomiędzy komponentami aplikacji. Ponieważ wiadomości często zawierają odniesienia do wrażliwych zasobów – identyfikatorów obiektów, adresów callback i stanu aplikacji – musisz zabezpieczyć zarówno autoryzację kolejki, jak i obsługę treści wiadomości.

Note

Ten artykuł omawia praktyki bezpieczeństwa specyficzne dla Azure Queue Storage. Wskazówki dotyczące bezpieczeństwa na poziomie konta znajdziesz w artykule Zabezpiecz swoje konto Azure Storage.

Zarządzanie tożsamością i dostępem

  • Użyj usługi Microsoft Entra ID z tożsamościami zarządzanymi dla producentów i odbiorców kolejek: przypisz wbudowane role Storage Queue Data Message Sender, Storage Queue Data Message Processor i Storage Queue Data Reader do tożsamości zarządzanej każdej usługi korzystającej z kolejki. Wybierz rolę, która odpowiada operacji. Usługa wysyłająca wiadomości nie powinna posiadać praw procesora. Więcej informacji można znaleźć w artykule Autoryzuj dostęp do kolejek za pomocą Microsoft Entra ID.

  • Przypisania ról kontroli dostępu opartej na rolach (RBAC) do konkretnej kolejki: Zakres na poziomie kolejki jest obsługiwany dla wbudowanych ról danych kolejki. Przypisz na poziomie kolejki, a nie na koncie pamięci, gdy usługa potrzebuje dostępu tylko do jednej kolejki w kontach wielokolejkowych.

  • Ogranicz tokeny SAS do jednej kolejki i określonych operacji na komunikatach: Sygnatura dostępu współdzielonego (SAS) dla kolejki obsługuje oddzielnie uprawnienia add, update, process i read. Spełniaj tylko to, czego potrzebuje dzwoniący. Odbiorca webhooka, który umieszcza zdarzenia w kolejce, powinien otrzymywać tylko add, a nie process. Aby uzyskać więcej informacji, zobacz Delegowanie dostępu za pomocą współdzielonej sygnatury dostępu.

Ochrona danych

Wiadomości są chronione podczas przechowywania i przesyłania dzięki szyfrowaniu konta i ustawieniom protokołu TLS, ale nie podlegają indywidualnej kontroli dostępu poza autoryzacją na poziomie kolejki. Zaprojektuj treść wiadomości tak, aby nie koncentrować wrażliwych danych w kolejce.

  • Nie umieszczaj sekretów ani poświadczeń w komunikatach kolejki: Przechowuj sekrety w Azure Key Vault i umieść referencję (identyfikator sekretu) w wiadomości. Konsumenci pobierają sekret w czasie przetwarzania przy użyciu własnej tożsamości. Wszystko, co zostanie umieszczone w komunikacie, jest widoczne dla każdego podmiotu z uprawnieniem process lub read do kolejki i jest zapisywane w dziennikach usługi Storage.

  • Szyfruj wrażliwe ładunki wiadomości na warstwie aplikacji: W przypadku wiadomości, które muszą zawierać wrażliwe dane, zaszyfruj ładunek kluczem z Key Vault przed wejściem do kolejki. Dodaje to warstwę niezależną od szyfrowania po stronie pamięci masowej i ogranicza narażenie na wypadek przejęcia przez konsumenta. Więcej informacji można znaleźć w artykule Client-side encryption for Azure Storage.

  • Ustaw rozsądny czas aktywności wiadomości (TTL): Wiadomości pozostają do momentu ich przetwarzania, wygaśnięcia lub wyczerpania kolejki. Długi TTL wydłuża czas, w którym można odzyskać stare, wrażliwe dane. Dopasuj TTL do oczekiwanego opóźnienia przetwarzania plus margines bezpieczeństwa.

Rejestrowanie i monitorowanie

  • Włącz ustawienia diagnostyczne dla operacji kolejek: Wyślij StorageRead, StorageWrite, i StorageDelete kategorie do Log Analytics, aby poszczególne operacje kolejek były audytowalne. Śledź metodę autoryzacji (Entra ID, Shared Key, SAS, anonimowe) w celu wykrycia nadużyć. Więcej informacji można znaleźć w artykule Monitoring Azure Queue Storage.

  • Przenieś wiadomości trucizny do dedykowanej kolejki trucizny: Skonfiguruj konsumenta tak, aby wykrywał wiadomości przekraczające próg liczby de-queue i przenieś je do kolejki <queue-name>-poison do badania offline. Gromadzenie kolejki trucizny to sygnał bezpieczeństwa, nie tylko operacyjny. Więcej informacji można znaleźć w artykule Obsługa komunikatów trucizny w funkcjach wyzwalanych przez kolejkę.

  • Alert na wzrost kolejki trucizny: Skonfiguruj alerty Azure Monitor na liczbę wiadomości w każdej kolejce trucizny, aby nieoczekiwany wzrost wywołał dochodzenie.

  • Ostrzeżenie o nietypowych wzorcach operacji usuwania z kolejki i usuwania: Nagłe serie operacji DeleteMessage wykonywanych przez nieoczekiwane tożsamości lub duża liczba operacji wyłącznie usuwania z kolejki bez dalszego przetwarzania mogą wskazywać, że atakujący opróżnia kolejkę, aby ukryć swoje działania. Alert dotyczący odchyleń od normalnego profilu ruchu kolejki.

Następne kroki