Nawiązywanie połączenia z kontem usługi Azure Storage

Ukończone

Do aplikacji dodano wymagane biblioteki klienckie i wszystko jest gotowe do nawiązania połączenia z kontem usługi Azure Storage.

Aby pracować z danymi w ramach konta magazynu, aplikacja potrzebuje dwóch wartości:

  • Klucz dostępu
  • Punkt końcowy interfejsu API REST

Klucze dostępu zabezpieczeń

Każde konto magazynu ma dwa unikatowe klucze dostępu służące do zabezpieczania konta magazynu. Jeśli aplikacja wymaga połączenia z wieloma kontami magazynu, będzie ona wymagać klucza dostępu dla każdego konta magazynu.

An illustration showing an application connected to two different storage accounts in the cloud. Each storage account is accessible with a unique key.

Punkt końcowy interfejsu API REST

Oprócz kluczy dostępu do uwierzytelniania na kontach magazynu aplikacja musi znać punkty końcowe usługi magazynu, aby wysyłać żądania REST.

Punkt końcowy REST to połączenie nazwy konta magazynu, typu danych i znanej domeny. Na przykład:

Typ danych Przykładowy punkt końcowy
Obiekty blob https://[name].blob.core.windows.net/
Kolejki https://[name].queue.core.windows.net/
Table https://[name].table.core.windows.net/
Files https://[name].file.core.windows.net/

Jeśli używasz domeny niestandardowej powiązanej z platformą Azure, możesz również utworzyć niestandardowy adres URL domeny dla punktu końcowego.

Parametry połączeń

Najprostszym sposobem obsługi kluczy dostępu i adresów URL punktów końcowych w aplikacjach jest użycie parametrów połączenia konta magazynu. Parametry połączenia to pojedynczy ciąg tekstu zawierający wszystkie potrzebne informacje o połączeniu.

Parametry połączenia usługi Microsoft Azure Storage wyglądają podobnie, jak w poniższym przykładzie, ale z kluczem dostępu i nazwą Twojego konkretnego konta magazynu:

DefaultEndpointsProtocol=https;AccountName={your-storage};
   AccountKey={your-access-key};
   EndpointSuffix=core.windows.net

Zabezpieczenia

Klucze dostępu mają kluczowe znaczenie dla zapewnienia dostępu do konta magazynu, a w związku z tym nie należy nadawać ich żadnemu systemowi ani osobie, której nie chcesz mieć dostępu do konta magazynu. Klucz dostępu jest odpowiednikiem nazwy użytkownika i hasła, które pozwalają uzyskać dostęp do komputera.

Zazwyczaj informacje o łączności konta magazynu są przechowywane w zmiennej środowiskowej, bazie danych lub pliku konfiguracji.

Ważne

Przechowywanie tych informacji w pliku konfiguracji może być niebezpieczne, jeśli uwzględnisz ten plik w kontroli źródła i zapiszesz go w repozytorium publicznym. Jest to typowy błąd i oznacza, że każda osoba może przeglądać kod źródłowy w repozytorium publicznym i wyświetlać informacje o połączeniu konta magazynu.

Każde konto magazynu ma dwa klucze dostępu. Umożliwia to okresowe obracanie (ponowne generowanie) kluczy w ramach najlepszych rozwiązań w zakresie zabezpieczeń w celu zapewnienia bezpieczeństwa konta magazynu. Można to zrobić za pomocą witryny Azure Portal lub narzędzia wiersza polecenia platformy Azure/programu PowerShell.

Obracanie klucza unieważnia oryginalną wartość klucza natychmiast i odwołuje dostęp do wszystkich osób, które uzyskały klucz niewłaściwie. Dzięki obsłudze dwóch kluczy możesz też dokonać rotacji bez powodowania przestojów w swoich aplikacjach, które z nich korzystają. Twoja aplikacja może się przełączyć na używanie alternatywnego klucza dostępu, gdy drugi klucz jest ponownie generowany. Jeśli masz wiele aplikacji używających tego konta magazynu, wszystkie one powinny używać tego samego klucza do obsługi tej techniki. Podstawowa koncepcja jest następująca:

  1. Zaktualizuj parametry połączenia w kodzie aplikacji, aby odwoływać się do pomocniczego klucza dostępu konta magazynu.
  2. Wygeneruj ponownie podstawowy klucz dostępu konta magazynu przy użyciu witryny Azure Portal lub narzędzia wiersza polecenia.
  3. Zaktualizuj parametry połączenia w kodzie za pomocą odwołania do nowego podstawowego klucza dostępu.
  4. W ten sam sposób wygeneruj ponownie pomocniczy klucz dostępu.

Napiwek

Zdecydowanie zalecamy okresowe obracanie kluczy dostępu w celu zapewnienia, że pozostają one prywatne, podobnie jak zmiana haseł. Jeśli używasz klucza w aplikacji serwera, możesz użyć usługi Azure Key Vault do przechowywania klucza dostępu. Magazyny kluczy zapewniają obsługę bezpośredniej synchronizacji z kontem magazynu i automatycznie okresowo wymieniają klucze. Użycie usługi Key Vault daje dodatkową warstwę zabezpieczeń, dzięki czemu aplikacja nigdy nie pracuje bezpośrednio z kluczem dostępu.

Sygnatury dostępu współdzielonego (SAS)

Klucze dostępu są najprostszym rozwiązaniem do uwierzytelniania dostępu do konta magazynu. Zapewniają one jednak pełny dostęp do wszystkich elementów na koncie magazynu, podobnie jak hasło główne na komputerze.

Konta magazynu oferują oddzielny mechanizm uwierzytelniania nazywany sygnaturami dostępu współdzielonego, który obsługuje wygaśnięcia i ograniczone uprawnienia w scenariuszach wymagających ograniczonego dostępu. Należy użyć tego podejścia, gdy zezwalasz innym użytkownikom na odczytywanie i zapisywanie danych na koncie magazynu. Linki do naszej dokumentacji znajdziesz na końcu tego zaawansowanego tematu.