Zapoznaj się z opcjami magazynu w chmurze dla rozwiązań Azure IoT

Ukończone

Istnieje wiele różnych opcji magazynowania w chmurze dostępnych dla architektów, którzy projektują rozwiązania Usługi Azure IoT. Każde rozwiązanie ma zagadnienia projektowe, które należy rozważyć.

Opcje usługi Azure Storage, które są często spotykane w rozwiązaniach usługi Azure IoT Hub, obejmują:

  • Usługi Azure Blob Storage i Azure Data Lake Gen2, które są dostępne jako punkty końcowe routingu usługi IoT Hub.
  • Usługi Azure Cosmos DB i Azure SQL Database, które są dostępne jako dane wyjściowe usługi Azure Stream Analytics.

Charakterystyka usługi Azure Storage

Usługa Azure Storage to rozwiązanie do magazynowania w chmurze firmy Microsoft dla nowoczesnych scenariuszy magazynowania danych. Usługa Azure Storage oferuje wysoce skalowalny magazyn obiektów dla obiektów danych, usługę systemu plików dla chmury, magazyn obsługi komunikatów dla niezawodnej obsługi komunikatów i magazyn danych NoSQL. Usługa Azure Storage to:

  • Niezawodność i wysoka dostępność. Nadmiarowość zapewnia bezpieczeństwo danych w przypadku przejściowych awarii sprzętu. Możesz również zdecydować się na replikowanie danych między centrami danych lub regionami geograficznymi w celu zapewnienia dodatkowej ochrony przed lokalną katastrofą lub klęskami żywiołowymi. Dane replikowane w ten sposób pozostają wysoce dostępne w przypadku awarii.
  • Bezpieczeństwo. Wszystkie dane zapisane w usłudze Azure Storage są przez nią szyfrowane. Usługa Azure Storage zapewnia precyzyjną kontrolę nad tym, kto ma dostęp do danych.
  • Skalowalność. Usługa Azure Storage została zaprojektowana jako wysoce skalowalne rozwiązanie spełniające potrzeby związane z magazynowaniem danych i wydajnością współczesnych aplikacji.
  • Zarządzanie. Platforma Microsoft Azure obsługuje konserwację sprzętu, aktualizacje i krytyczne problemy za Ciebie.
  • Dostępność. Dane w usłudze Azure Storage są dostępne z dowolnego miejsca na świecie za pośrednictwem protokołu HTTP lub HTTPS. Firma Microsoft udostępnia biblioteki klienckie usługi Azure Storage w różnych językach, w tym .NET, Java, Node.js, Python, Go i innych oraz dojrzały interfejs API REST. Usługa Azure Storage obsługuje skrypty programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure. Witryna Azure Portal oraz Eksplorator usługi Azure Storage oferują proste rozwiązania wizualne do pracy z danymi.

Usługa Azure Storage jako punkt końcowy routingu

Istnieją dwie usługi magazynu, do których usługa IoT Hub może kierować komunikaty:

  • Azure Blob Storage
  • Konta usługi Azure Data Lake Storage Gen2 (ADLS Gen2)

Obie usługi używają obiektów blob do przechowywania. Konta usługi Azure Data Lake Storage to hierarchiczne konta magazynu z obsługą przestrzeni nazw oparte na magazynie obiektów blob.

Usługa IoT Hub obsługuje zapisywanie danych w usłudze Azure Storage w formacie Apache Avro i w formacie JSON. Wartość domyślna to Avro. W przypadku korzystania z kodowania JSON należy ustawić Content-Typeapplication/json wartość i contentEncoding na UTF-8 wartość we właściwościach systemu komunikatów. Obie te wartości są bez uwzględniania wielkości liter. Jeśli kodowanie zawartości nie jest ustawione, usługa IoT Hub zapisuje komunikaty w formacie zakodowanym w formacie base 64.

Format kodowania można ustawić tylko po skonfigurowaniu punktu końcowego magazynu obiektów blob; Nie można go edytować dla istniejącego punktu końcowego. Aby przełączyć formaty kodowania dla istniejącego punktu końcowego, musisz usunąć i ponownie utworzyć niestandardowy punkt końcowy z żądanym formatem. Jedną z przydatnych strategii może być utworzenie nowego niestandardowego punktu końcowego z żądanym formatem kodowania i dodanie trasy równoległej do tego punktu końcowego. W ten sposób możesz zweryfikować dane przed usunięciem istniejącego punktu końcowego.

Zabezpieczanie dostępu do kont magazynu

Za każdym razem, gdy uzyskujesz dostęp do danych na koncie magazynu, aplikacja kliencka wysyła żądanie za pośrednictwem protokołu HTTP/HTTPS do usługi Azure Storage. Domyślnie każdy zasób w usłudze Azure Storage jest zabezpieczony, a każde żądanie do bezpiecznego zasobu musi być autoryzowane. Autoryzacja gwarantuje, że aplikacja kliencka ma odpowiednie uprawnienia dostępu do określonego zasobu na koncie magazynu.

Każda opcja autoryzacji jest krótko opisana w następujący sposób:

  • Autoryzacja klucza współdzielonego dla obiektów blob, plików, kolejek i tabel. Klient korzystający z klucza współużytkowanego przekazuje nagłówek z każdym żądaniem podpisanym przy użyciu klucza dostępu do konta magazynu.

    Firma Microsoft zaleca, aby nie zezwalać na autoryzację klucza wspólnego dla konta magazynu. Gdy autoryzacja klucza współdzielonego jest niedozwolona, klienci muszą użyć identyfikatora Entra firmy Microsoft lub sygnatury dostępu współdzielonego delegowania użytkownika, aby autoryzować żądania dotyczące danych na tym koncie magazynu.

  • Sygnatury dostępu współdzielonego dla obiektów blob, plików, kolejek i tabel. Sygnatury dostępu współdzielonego (SAS) zapewniają ograniczony delegowany dostęp do zasobów na koncie magazynu za pośrednictwem podpisanego adresu URL. Podpisany adres URL określa uprawnienia przyznane zasobowi oraz interwał, w którym podpis jest prawidłowy. Sygnatura dostępu współdzielonego usługi lub sygnatura dostępu współdzielonego konta jest podpisana przy użyciu klucza konta, podczas gdy sygnatura dostępu współdzielonego delegowania użytkownika jest podpisana przy użyciu poświadczeń usługi Microsoft Entra i ma zastosowanie tylko do obiektów blob.

  • Integracja z firmą Microsoft Entra na potrzeby autoryzowania żądań do zasobów obiektów blob, kolejek i tabel. Firma Microsoft zaleca używanie poświadczeń firmy Microsoft w celu autoryzowania żądań do danych, gdy jest to możliwe w celu uzyskania optymalnego bezpieczeństwa i łatwości użycia.

    Kontrola dostępu oparta na rolach (RBAC) platformy Azure umożliwia zarządzanie uprawnieniami podmiotu zabezpieczeń do zasobów obiektów blob, kolejek i tabel na koncie magazynu. Możesz również użyć kontroli dostępu opartej na atrybutach (ABAC) platformy Azure, aby dodać warunki do przypisań ról platformy Azure dla zasobów obiektów blob.

  • Uwierzytelnianie usług Microsoft Entra Domain Services dla usługi Azure Files. Usługa Azure Files obsługuje autoryzację opartą na tożsamościach za pośrednictwem protokołu SMB (Server Message Block) za pośrednictwem usług Microsoft Entra Domain Services. Kontrola dostępu na podstawie ról platformy Azure umożliwia szczegółową kontrolę nad dostępem klienta do zasobów usługi Azure Files na koncie magazynu.

  • Lokalne uwierzytelnianie usług domena usługi Active Directory Services (AD DS lub lokalnych usług AD DS) dla usługi Azure Files. Usługa Azure Files obsługuje autoryzację opartą na tożsamościach za pośrednictwem protokołu SMB za pośrednictwem usług AD DS. Środowisko usług AD DS może być hostowane na maszynach lokalnych lub na maszynach wirtualnych platformy Azure. Dostęp SMB do usługi Files jest obsługiwany przy użyciu poświadczeń usług AD DS z maszyn przyłączonych do domeny, lokalnych lub na platformie Azure. Możesz użyć kombinacji kontroli dostępu na poziomie udziału platformy Azure i list kontroli dostępu na poziomie systemu plików NTFS na potrzeby wymuszania uprawnień na poziomie katalogu/pliku.

  • Anonimowy dostęp do odczytu dla danych obiektów blob jest obsługiwany, ale nie jest zalecany. Po skonfigurowaniu dostępu anonimowego klienci mogą odczytywać dane obiektów blob bez autoryzacji. Zalecamy wyłączenie dostępu anonimowego dla wszystkich kont magazynu.

  • Użytkownicy lokalni magazynu mogą służyć do uzyskiwania dostępu do obiektów blob za pomocą protokołu SFTP lub plików za pomocą protokołu SMB. Użytkownicy lokalni magazynu obsługują uprawnienia na poziomie kontenera do autoryzacji.