Udostępnij za pośrednictwem


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 czynności:

  • 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 do kontrolowania dostępu do usług Azure Blob Storage, Azure Data Lake Storage Gen2 i Azure Queues przy użyciu requestatrybutów , resource, environmenti principal zarówno w warstwach wydajności konta magazynu w warstwie Standardowa, jak i Premium Storage. Obecnie atrybut zasobu metadanych kontenera i lista obiektów blob dołączania atrybutu żądania są dostępne w wersji zapoznawczej. Aby uzyskać pełne informacje o stanie funkcji ABAC dla usługi Azure Storage, zobacz Stan funkcji warunku w usłudze Azure Storage.

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

Wymagania wstępne

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

Stan

W tym samouczku ograniczysz dostęp do obiektów blob za pomocą określonego tagu. 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 tagu Project=Cascade, dostęp nie jest dozwolony.

Diagram przedstawiający dostęp do odczytu do obiektów blob za pomocą tagu 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 obiektów blob. Aby uzyskać więcej informacji, zobacz Zarządzanie danymi obiektów blob platformy Azure i znajdowanie ich za pomocą tagów indeksu obiektów blob.

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

  3. W kontenerze wybierz pozycję Przekaż, aby otworzyć okienko Przekaż obiekt blob.

  4. Znajdź plik tekstowy do przekazania.

  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 obiektów blob i właśnie zarejestrowano subskrypcję, może być konieczne 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.

    Key Wartość
    Projekt Cascade

Zrzut ekranu przedstawiający okienko Przekazywania obiektu blob z sekcją Tagi indeksu blogu.

  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.

    Key Wartość
    Projekt Baker

Krok 3. Przypisywanie roli danych obiektu 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. Zostanie otwarta strona Dodawanie przypisania roli:

Zrzut ekranu przedstawiający menu Dodawanie > przypisania roli.

  1. Na karcie Role wybierz rolę Czytelnik danych obiektu blob usługi 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 przedstawiający stronę Dodawanie warunku przypisania roli dla nowego warunku.

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

    Zostanie wyświetlone okienko Wybierz akcję. To okienko jest filtrowaną listą akcji danych na podstawie przypisania roli, które będą elementem docelowym warunku. Zaznacz pole wyboru obok pozycji Odczyt obiektu blob, a następnie wybierz pozycję Wybierz:

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

  1. W sekcji Wyrażenie kompilacji wybierz pozycję Dodaj wyrażenie.

    Sekcja Wyrażenie zostanie rozwinięta.

  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 kluczu]
    Klucz Projekt
    Operator StringEqualsIgnoreCase
    Wartość Cascade

Zrzut ekranu przedstawiający sekcję wyrażenia kompilacji 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 pozycję 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 chwilach 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 Czytelnik. 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 pozycję Plik tekstowy kaskadowy.

    Powinno być możliwe wyświetlanie i pobieranie obiektu 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