Udostępnij za pomocą


Samouczek: dodawanie warunku przypisania roli w celu ograniczenia dostępu do obiektów blob przy użyciu witryny Azure Portal

W większości przypadków przypisanie roli przyznaje uprawnienia potrzebne do zasobów platformy Azure. Jednak w niektórych przypadkach możesz zapewnić bardziej szczegółową kontrolę dostępu, dodając warunek przypisania roli.

Z tego samouczka dowiesz się, jak wykonywać następujące działania:

  • Dodawanie warunku do przypisania roli
  • Ograniczanie dostępu do obiektów blob na podstawie tagu indeksu obiektów blob

Ważne

Kontrola dostępu oparta na atrybutach platformy Azure (Azure ABAC) jest ogólnie dostępna (GA) do kontrolowania dostępu do usług Azure Blob Storage, Azure Data Lake Storage Gen2 i Azure Queues przy użyciu request, resource, environment i principal w obu poziomach wydajności konta magazynowego: standardowym i premium. Obecnie lista obiektów blob zawiera atrybuty żądania, a także atrybuty żądania migawki dla hierarchicznej przestrzeni nazw, które są w wersji zapoznawczej. Aby uzyskać pełne informacje o stanie funkcji ABAC dla usługi Azure Storage, zobacz Stan warunkowych funkcji w usłudze Azure Storage.

Zobacz dodatkowe warunki użytkowania dla wersji zapoznawczych platformy Microsoft Azure, aby zapoznać się z postanowieniami prawnymi dotyczącymi funkcji platformy Azure, które są w wersji beta, wersji zapoznawczej lub w inny sposób nie zostały jeszcze wydane w wersji ogólnodostępnej.

Wymagania wstępne

Aby uzyskać informacje o wymaganiach wstępnych dotyczących dodawania lub edytowania warunków przypisywania ról, zobacz Warunki wstępne.

Warunek

W tym samouczku ograniczysz dostęp do blobów z określonym tagiem. Na przykład dodasz warunek do przypisania roli, aby Chandra mogła odczytywać tylko pliki z tagiem Project=Cascade.

Diagram przypisania roli z warunkiem.

Jeśli Chandra próbuje odczytać obiekt blob bez znacznika Project=Cascade, to dostęp nie jest dozwolony.

Diagram przedstawiający dostęp do odczytu obiektów blob z przypisanym tagiem Project=Cascade.

Oto jak wygląda warunek w kodzie:

(
    (
        !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'}
        AND NOT
        SubOperationMatches{'Blob.List'})
    )
    OR
    (
        @Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEqualsIgnoreCase 'Cascade'
    )
)

Krok 1. Tworzenie użytkownika

  1. Zaloguj się w witrynie Azure Portal jako Właściciel subskrypcji.

  2. Wybierz Microsoft Entra ID.

  3. Utwórz użytkownika lub znajdź istniejącego użytkownika. W tym samouczku użyto narzędzia Chandra jako przykładu.

Krok 2. Konfigurowanie magazynu

  1. Utwórz konto magazynu zgodne z funkcją tagów indeksu dla obiektów blob. Aby uzyskać więcej informacji, zobacz Zarządzanie danymi obiektów blob platformy Azure i ich znajdowanie za pomocą tagów indeksu.

  2. Utwórz nowy kontener w koncie magazynowym i ustaw poziom dostępu anonimowego na Prywatny (bez dostępu anonimowego).

  3. W kontenerze wybierz pozycję Przesył, aby otworzyć panel przesyłania obiektu blob.

  4. Znajdź plik tekstowy do przesłania.

  5. Wybierz pozycję Zaawansowane , aby rozwinąć okienko.

  6. W sekcji Tagi indeksu obiektów blob dodaj następujący tag indeksu obiektów blob do pliku tekstowego.

    Jeśli nie widzisz sekcji tagi indeksu Blob i właśnie zarejestrowano subskrypcję, konieczne może być odczekanie kilku minut na propagację zmian. Aby uzyskać więcej informacji, zobacz Use blob index tags to manage and find data on Azure Blob Storage (Używanie tagów indeksu obiektów blob do zarządzania danymi i znajdowania ich w usłudze Azure Blob Storage).

    Uwaga

    Obiekty blob obsługują również możliwość przechowywania dowolnych metadanych klucz-wartość zdefiniowanych przez użytkownika. Chociaż metadane są podobne do tagów indeksu obiektów blob, należy używać tagów indeksu obiektów blob z warunkami.

    Klawisz Wartość
    Projekt Kaskada

Zrzut ekranu przedstawiający okienko Przekazywania blob z sekcją tagów indeksu blobu.

  1. Wybierz przycisk Przekaż , aby przekazać plik.

  2. Przekaż drugi plik tekstowy.

  3. Dodaj następujący tag indeksu obiektów blob do drugiego pliku tekstowego.

    Klawisz Wartość
    Projekt Piekarz

Krok 3: Przypisz rolę danych Blob magazynu

  1. Otwórz grupę zasobów.

  2. Wybierz pozycję Kontrola dostępu (IAM).

  3. Wybierz kartę Przypisania ról, aby wyświetlić przypisania ról w tym zakresie.

  4. Wybierz pozycję Dodaj>Dodaj przypisanie roli. Otworzy się strona Dodawanie przypisania roli:

Zrzut ekranu przedstawiający menu Dodawanie > przypisania roli.

  1. Na karcie Role wybierz rolę Czytelnik danych Blob Storage.

Zrzut ekranu przedstawiający stronę Dodawanie przypisania roli z kartą Role.

  1. Na karcie Członkowie wybierz utworzonego wcześniej użytkownika.

Zrzut ekranu przedstawiający stronę Dodawanie przypisania roli z kartą Członkowie.

  1. (Opcjonalnie) W polu Opis wprowadź ciąg Odczyt dostępu do obiektów blob z tagiem Project=Cascade.

  2. Wybierz Dalej.

Krok 4. Dodawanie warunku

  1. Na karcie Warunki (opcjonalnie) wybierz pozycję Dodaj warunek. Zostanie wyświetlona strona Dodawanie warunku przypisania roli:

Zrzut ekranu strony Dodawanie warunku przypisania roli dla nowego warunku.

  1. W sekcji Dodawanie akcji wybierz pozycję Dodaj akcję.

    Zostanie wyświetlone okienko Wybierz akcję. Okienko przedstawia filtrowaną listę akcji na danych na podstawie przypisania roli, które będą celem twojego warunku. Zaznacz pole wyboru obok opcji Odczytaj obiekt blob, a następnie wybierz Wybierz:

Zrzut ekranu przedstawiający okienko Wybierz akcję z wybraną akcją.

  1. W sekcji Tworzenie wyrażenia wybierz pozycję Dodaj wyrażenie.

    Sekcja Wyrażenie rozszerza się.

  2. Określ następujące ustawienia wyrażeń:

    Ustawienie Wartość
    Źródło atrybutu Zasób
    Atrybut Tagi indeksu obiektów blob [Wartości w kluczach]
    Klawisz Projekt
    Obsługujący StringEqualsIgnoreCase
    Wartość Kaskada

Zrzut ekranu przedstawiający sekcję tworzenia wyrażeń dla tagów indeksu obiektów blob.

  1. Przewiń w górę do pozycji Typ edytora i wybierz pozycję Kod.

    Warunek jest wyświetlany jako kod. Możesz wprowadzić zmiany w warunku w tym edytorze kodu. Aby wrócić do edytora wizualizacji, wybierz pozycję Wizualizacja.

Zrzut ekranu przedstawiający warunek wyświetlany w edytorze kodu.

  1. Wybierz Zapisz, aby dodać warunek i wrócić do strony Dodawanie przypisania roli.

  2. Wybierz Dalej.

  3. Na karcie Przeglądanie i przypisywanie wybierz pozycję Przejrzyj i przypisz , aby przypisać rolę z warunkiem.

    Po kilku momentach podmiotowi zabezpieczeń zostanie przypisana rola w wybranym zakresie.

Zrzut ekranu przedstawiający listę przypisań ról po przypisaniu roli.

Krok 5. Przypisywanie roli czytelnika

  • Powtórz poprzednie kroki, aby przypisać rolę Czytelnik do użytkownika utworzonego wcześniej w zakresie grupy zasobów.

    Uwaga

    Zazwyczaj nie trzeba przypisywać roli Czytelnika. Jednak można to zrobić, aby można było przetestować warunek przy użyciu witryny Azure Portal.

Krok 6. Testowanie warunku

  1. W nowym oknie zaloguj się do witryny Azure Portal.

  2. Zaloguj się jako utworzony wcześniej użytkownik.

  3. Otwórz utworzone konto magazynu i kontener.

  4. Upewnij się, że metoda uwierzytelniania jest ustawiona na konto użytkownika Microsoft Entra , a nie klucz dostępu.

Zrzut ekranu przedstawiający kontener magazynu z plikami testowymi.

  1. Wybierz plik tekstowy Baker.

    Nie powinno być możliwe wyświetlenie lub pobranie obiektu blob, a powinien zostać wyświetlony komunikat o niepodaniu autoryzacji.

  2. Wybierz Plik tekstowy typu Cascade.

    Powinieneś móc wyświetlić i pobrać obiekt blob.

Krok 7. Czyszczenie zasobów

  1. Usuń dodane przypisanie roli.

  2. Usuń utworzone konto magazynu testowego.

  3. Usuń utworzonego użytkownika.

Następne kroki