Wybieranie sposobu autoryzowania dostępu do danych obiektów blob za pomocą interfejsu wiersza polecenia platformy Azure

Usługa Azure Storage udostępnia rozszerzenia interfejsu wiersza polecenia platformy Azure, które umożliwiają określenie sposobu autoryzowania operacji na danych obiektów blob. Operacje na danych można autoryzować na następujące sposoby:

  • Z podmiotem zabezpieczeń firmy Microsoft Entra. Firma Microsoft zaleca korzystanie z poświadczeń firmy Microsoft Entra w celu zapewnienia doskonałego bezpieczeństwa i łatwości użycia.
  • Za pomocą klucza dostępu konta lub tokenu sygnatury dostępu współdzielonego (SAS).

Określanie sposobu autoryzacji operacji danych

Polecenia interfejsu wiersza polecenia platformy Azure do odczytywania i zapisywania danych obiektów blob obejmują opcjonalny --auth-mode parametr. Określ ten parametr, aby wskazać sposób autoryzacji operacji danych:

  • Ustaw parametr na --auth-mode wartość , aby login zalogować się przy użyciu podmiotu zabezpieczeń firmy Microsoft Entra (zalecane).
  • --auth-mode Ustaw parametr na starszą key wartość, aby spróbować pobrać klucz dostępu konta do użycia na potrzeby autoryzacji. Jeśli pominięto --auth-mode parametr, interfejs wiersza polecenia platformy Azure próbuje również pobrać klucz dostępu.

Aby użyć parametru --auth-mode , upewnij się, że zainstalowano interfejs wiersza polecenia platformy Azure w wersji 2.0.46 lub nowszej. Uruchom polecenie , az --version aby sprawdzić zainstalowaną wersję.

Uwaga

Gdy konto magazynu jest zablokowane za pomocą blokady readOnly usługi Azure Resource Manager, operacja Wyświetlanie kluczy listy nie jest dozwolona dla tego konta magazynu. Klucze listy to operacja POST, a wszystkie operacje POST są blokowane, gdy dla konta skonfigurowano blokadę ReadOnly . Z tego powodu, gdy konto jest zablokowane za pomocą blokady ReadOnly , użytkownicy, którzy jeszcze nie posiadają kluczy konta, muszą używać poświadczeń usługi Microsoft Entra w celu uzyskania dostępu do danych obiektów blob.

Ważne

Jeśli pominiesz --auth-mode parametr lub ustawisz go na keywartość , interfejs wiersza polecenia platformy Azure spróbuje użyć klucza dostępu konta do autoryzacji. W takim przypadku firma Microsoft zaleca podanie klucza dostępu w poleceniu lub w zmiennej środowiskowej AZURE_STORAGE_KEY . Aby uzyskać więcej informacji na temat zmiennych środowiskowych, zobacz sekcję zatytułowaną Ustawianie zmiennych środowiskowych dla parametrów autoryzacji.

Jeśli nie podasz klucza dostępu, interfejs wiersza polecenia platformy Azure próbuje wywołać dostawcę zasobów usługi Azure Storage w celu pobrania go dla każdej operacji. Wykonywanie wielu operacji danych, które wymagają wywołania dostawcy zasobów, może spowodować ograniczenie przepustowości. Aby uzyskać więcej informacji na temat limitów dostawcy zasobów, zobacz Cele dotyczące skalowalności i wydajności dla dostawcy zasobów usługi Azure Storage.

Autoryzowanie przy użyciu poświadczeń firmy Microsoft Entra

Po zalogowaniu się do interfejsu wiersza polecenia platformy Azure przy użyciu poświadczeń usługi Microsoft Entra zwracany jest token dostępu OAuth 2.0. Ten token jest automatycznie używany przez interfejs wiersza polecenia platformy Azure do autoryzowania kolejnych operacji danych w usłudze Blob lub Queue Storage. W przypadku obsługiwanych operacji nie trzeba już przekazywać klucza konta ani tokenu SAS za pomocą polecenia .

Uprawnienia do danych obiektów blob można przypisać do podmiotu zabezpieczeń firmy Microsoft Entra za pośrednictwem kontroli dostępu opartej na rolach (Azure RBAC). Aby uzyskać więcej informacji na temat ról platformy Azure w usłudze Azure Storage, zobacz Przypisywanie roli platformy Azure w celu uzyskania dostępu do danych obiektów blob.

Uprawnienia do wywoływania operacji danych

Rozszerzenia usługi Azure Storage są obsługiwane w przypadku operacji na danych obiektów blob. Które operacje, które można wywołać, zależą od uprawnień udzielonych podmiotowi zabezpieczeń firmy Microsoft, za pomocą którego logujesz się do interfejsu wiersza polecenia platformy Azure. Uprawnienia do kontenerów usługi Azure Storage są przypisywane za pośrednictwem kontroli dostępu opartej na rolach platformy Azure. Jeśli na przykład masz przypisaną rolę Czytelnik danych obiektu blob usługi Storage, możesz uruchomić polecenia skryptów odczytujące dane z kontenera. Jeśli masz przypisaną rolę Współautor danych obiektu blob usługi Storage, możesz uruchamiać polecenia skryptów, które odczytują, zapisują lub usuwają kontener lub zawarte w nim dane.

Aby uzyskać szczegółowe informacje o uprawnieniach wymaganych dla każdej operacji usługi Azure Storage w kontenerze, zobacz Wywoływanie operacji magazynu przy użyciu tokenów OAuth.

Przykład: autoryzowanie operacji tworzenia kontenera przy użyciu poświadczeń firmy Microsoft Entra

W poniższym przykładzie pokazano, jak utworzyć kontener z poziomu interfejsu wiersza polecenia platformy Azure przy użyciu poświadczeń firmy Microsoft Entra. Aby utworzyć kontener, musisz zalogować się do interfejsu wiersza polecenia platformy Azure i musisz mieć grupę zasobów i konto magazynu. Aby dowiedzieć się, jak utworzyć te zasoby, zobacz Szybki start: tworzenie, pobieranie i wyświetlanie listy obiektów blob za pomocą interfejsu wiersza polecenia platformy Azure.

  1. Przed utworzeniem kontenera przypisz rolę Współautor danych obiektu blob usługi Storage do siebie. Mimo że jesteś właścicielem konta, musisz mieć jawne uprawnienia do wykonywania operacji danych na koncie magazynu. Aby uzyskać więcej informacji na temat przypisywania ról platformy Azure, zobacz Przypisywanie roli platformy Azure w celu uzyskania dostępu do danych obiektów blob.

    Ważne

    Propagowanie przypisań ról platformy Azure może potrwać kilka minut.

  2. Wywołaj polecenie az storage container create za pomocą parametru ustawionego w --auth-mode celu login utworzenia kontenera przy użyciu poświadczeń firmy Microsoft Entra. Pamiętaj, aby zastąpić wartości symboli zastępczych w nawiasach kątowych własnymi wartościami:

    az storage container create \
        --account-name <storage-account> \
        --name sample-container \
        --auth-mode login
    

Autoryzowanie przy użyciu klucza dostępu do konta

Jeśli posiadasz klucz konta, możesz wywołać dowolną operację danych usługi Azure Storage. Ogólnie rzecz biorąc, użycie klucza konta jest mniej bezpieczne. Jeśli klucz konta zostanie naruszony, wszystkie dane na Twoim koncie mogą zostać naruszone.

W poniższym przykładzie pokazano, jak utworzyć kontener przy użyciu klucza dostępu do konta. Określ klucz konta i podaj --auth-mode parametr z wartością key :

az storage container create \
    --account-name <storage-account> \
    --name sample-container \
    --account-key <key>
    --auth-mode key

Ważne

Gdy konto magazynu jest zablokowane za pomocą blokady readOnly usługi Azure Resource Manager, operacja Wyświetlanie kluczy listy nie jest dozwolona dla tego konta magazynu. Klucze listy to operacja POST, a wszystkie operacje POST są blokowane, gdy dla konta skonfigurowano blokadę ReadOnly . Z tego powodu, gdy konto jest zablokowane za pomocą blokady ReadOnly , użytkownicy muszą uzyskiwać dostęp do danych przy użyciu poświadczeń usługi Microsoft Entra.

Autoryzowanie przy użyciu tokenu SAS

Jeśli posiadasz token SAS, możesz wywołać operacje danych, które są dozwolone przez sygnaturę dostępu współdzielonego. W poniższym przykładzie pokazano, jak utworzyć kontener przy użyciu tokenu SAS:

az storage container create \
    --account-name <storage-account> \
    --name sample-container \
    --sas-token <token>

Ustawianie zmiennych środowiskowych dla parametrów autoryzacji

Parametry autoryzacji można określić w zmiennych środowiskowych, aby uniknąć dołączania ich do każdego wywołania operacji danych usługi Azure Storage. W poniższej tabeli opisano dostępne zmienne środowiskowe.

Zmienna środowiskowa opis
AZURE_STORAGE_ACCOUNT Nazwa konta magazynu. Ta zmienna powinna być używana w połączeniu z kluczem konta magazynu lub tokenem SAS. Jeśli żaden z nich nie istnieje, interfejs wiersza polecenia platformy Azure próbuje pobrać klucz dostępu do konta magazynu przy użyciu uwierzytelnioowanego konta Microsoft Entra. Jeśli jednocześnie jest wykonywana duża liczba poleceń, może zostać osiągnięty limit ograniczania dostawcy zasobów usługi Azure Storage. Aby uzyskać więcej informacji na temat limitów dostawcy zasobów, zobacz Cele dotyczące skalowalności i wydajności dla dostawcy zasobów usługi Azure Storage.
AZURE_STORAGE_KEY Klucz konta magazynu. Ta zmienna musi być używana w połączeniu z nazwą konta magazynu.
AZURE_STORAGE_CONNECTION_STRING Parametry połączenia, który zawiera klucz konta magazynu lub token SAS. Ta zmienna musi być używana w połączeniu z nazwą konta magazynu.
AZURE_STORAGE_SAS_TOKEN Token sygnatury dostępu współdzielonego (SAS). Ta zmienna musi być używana w połączeniu z nazwą konta magazynu.
AZURE_STORAGE_AUTH_MODE Tryb autoryzacji, za pomocą którego należy uruchomić polecenie. Dozwolone wartości to login (zalecane) lub key. Jeśli określisz login, interfejs wiersza polecenia platformy Azure używa poświadczeń firmy Microsoft Entra do autoryzowania operacji danych. Jeśli określisz key starszy tryb, interfejs wiersza polecenia platformy Azure spróbuje wykonać zapytanie dotyczące klucza dostępu do konta i autoryzować polecenie za pomocą klucza.

Następne kroki