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 autoryzacji operacji na danych obiektów blob. Operacje danych można autoryzować na następujące sposoby:

  • Za pomocą podmiotu zabezpieczeń usługi Azure Active Directory (Azure AD). Firma Microsoft zaleca korzystanie z poświadczeń usługi Azure AD w celu zapewnienia najwyższej jakości zabezpieczeń i łatwości użycia.
  • Za pomocą klucza dostępu do konta lub tokenu sygnatury dostępu współdzielonego (SAS).

Określanie sposobu autoryzacji operacji danych

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

  • --auth-mode Ustaw parametr na wartość , aby zalogować login się przy użyciu jednostki zabezpieczeń usługi Azure AD (zalecane).
  • --auth-mode Ustaw parametr na starszą key wartość, aby spróbować pobrać klucz dostępu konta do użycia do 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 usługi Azure Resource Manager ReadOnly, operacja Klucze 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 Azure AD w celu uzyskania dostępu do danych obiektów blob.

Ważne

Jeśli pominiesz --auth-mode parametr lub ustawisz go na key, 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ń usługi Azure AD

Po zalogowaniu się do interfejsu wiersza polecenia platformy Azure przy użyciu poświadczeń usługi Azure AD 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 sygnatury dostępu współdzielonego za pomocą polecenia .

Uprawnienia do danych obiektów blob można przypisać do podmiotu zabezpieczeń usługi Azure AD za pośrednictwem kontroli dostępu opartej na rolach platformy Azure (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 mogą być wywoływane, zależą od uprawnień przyznanych podmiotowi zabezpieczeń usługi Azure AD, 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 przypisano rolę Storage czytnika danych obiektów blob, możesz uruchomić polecenia skryptów odczytujące dane z kontenera. Jeśli przypisano rolę współautora danych Storage obiektów blob, możesz uruchamiać polecenia skryptów, które odczytują, zapisują lub usuwają kontener lub dane, które zawiera.

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

Przykład: autoryzowanie operacji tworzenia kontenera przy użyciu poświadczeń usługi Azure AD

W poniższym przykładzie pokazano, jak utworzyć kontener z poziomu interfejsu wiersza polecenia platformy Azure przy użyciu poświadczeń usługi Azure AD. 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ółautora danych Storage obiektów blob do siebie. Mimo że jesteś właścicielem konta, potrzebujesz jawnych uprawnień 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

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

  2. Wywołaj polecenie az storage container create z parametrem ustawionym --auth-mode w celu login utworzenia kontenera przy użyciu poświadczeń usługi Azure AD. 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 masz klucz konta, możesz wywołać dowolną operację danych Storage platformy Azure. 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 usługi Azure Resource Manager ReadOnly, operacja Klucze 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 Azure AD.

Autoryzowanie przy użyciu tokenu SYGNATURY dostępu współdzielonego

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 usługi Azure AD. Jeśli jednocześnie jest wykonywana duża liczba poleceń, limit ograniczania przepustowości dostawcy zasobów platformy Azure Storage może zostać osiągnięty. 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óre zawierają 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 można uruchomić polecenie. Dozwolone wartości to login (zalecane) lub key. Jeśli określisz loginwartość , interfejs wiersza polecenia platformy Azure używa poświadczeń usługi Azure AD do autoryzacji operacji danych. W przypadku określenia trybu starszego key interfejs wiersza polecenia platformy Azure próbuje wykonać zapytanie dotyczące klucza dostępu do konta i autoryzować polecenie za pomocą klucza.

Następne kroki