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 request
atrybutów , resource
, environment
i 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
.
Jeśli Chandra próbuje odczytać obiekt blob bez tagu Project=Cascade
, dostęp nie jest dozwolony.
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
Zaloguj się w witrynie Azure Portal jako właściciel subskrypcji.
Wybierz Microsoft Entra ID.
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
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.
Utwórz nowy kontener na koncie magazynu i ustaw poziom dostępu anonimowego na Prywatny (bez dostępu anonimowego).
W kontenerze wybierz pozycję Przekaż, aby otworzyć okienko Przekaż obiekt blob.
Znajdź plik tekstowy do przekazania.
Wybierz pozycję Zaawansowane , aby rozwinąć okienko.
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
Wybierz przycisk Przekaż, aby przekazać plik.
Przekaż drugi plik tekstowy.
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
Otwórz grupę zasobów.
Wybierz pozycję Kontrola dostępu (IAM) .
Wybierz kartę Przypisania ról, aby wyświetlić przypisania ról w tym zakresie.
Wybierz pozycję Dodaj>Dodaj przypisanie roli. Zostanie otwarta strona Dodawanie przypisania roli:
- Na karcie Role wybierz rolę Czytelnik danych obiektu blob usługi Storage.
- Na karcie Członkowie wybierz utworzonego wcześniej użytkownika.
(Opcjonalnie) W polu Opis wprowadź ciąg Odczyt dostępu do obiektów blob z tagiem Project=Cascade.
Wybierz Dalej.
Krok 4. Dodawanie warunku
- Na karcie Warunki (opcjonalnie) wybierz pozycję Dodaj warunek. Zostanie wyświetlona strona Dodawanie warunku przypisania roli:
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:
W sekcji Wyrażenie kompilacji wybierz pozycję Dodaj wyrażenie.
Sekcja Wyrażenie zostanie rozwinięta.
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
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.
Wybierz pozycję Zapisz , aby dodać warunek i wrócić do strony Dodawanie przypisania roli.
Wybierz Dalej.
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.
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
W nowym oknie zaloguj się do witryny Azure Portal.
Zaloguj się jako utworzony wcześniej użytkownik.
Otwórz utworzone konto magazynu i kontener.
Upewnij się, że metoda uwierzytelniania jest ustawiona na konto użytkownika Microsoft Entra, a nie klucz dostępu.
Wybierz plik tekstowy Baker.
Nie powinno być możliwe wyświetlenie lub pobranie obiektu blob, a powinien zostać wyświetlony komunikat o niepodaniu autoryzacji.
Wybierz pozycję Plik tekstowy kaskadowy.
Powinno być możliwe wyświetlanie i pobieranie obiektu blob.
Krok 7. Czyszczenie zasobów
Usuń dodane przypisanie roli.
Usuń utworzone konto magazynu testowego.
Usuń utworzonego użytkownika.