Co to jest kontrola dostępu oparta na atrybutach platformy Azure (Azure ABAC)?

Kontrola dostępu oparta na atrybutach (ABAC) to system autoryzacji, który definiuje dostęp na podstawie atrybutów skojarzonych z jednostkami zabezpieczeń, zasobami i środowiskiem żądania dostępu. Za pomocą funkcji ABAC można udzielić jednostce zabezpieczeń dostępu do zasobu na podstawie atrybutów. Usługa Azure ABAC odnosi się do implementacji usługi ABAC dla platformy Azure.

Co to są warunki przypisywania ról?

Kontrola dostępu oparta na rolach platformy Azure (RBAC) platformy Azure to system autoryzacji, który ułatwia zarządzanie osobami mającymi dostęp do zasobów platformy Azure, co mogą zrobić z tymi zasobami i obszarami, do których mają dostęp. W większości przypadków kontrola dostępu oparta na rolach platformy Azure zapewni potrzebne zarządzanie dostępem przy użyciu definicji ról i przypisań ról. Jednak w niektórych przypadkach możesz zapewnić bardziej szczegółowe zarządzanie dostępem lub uprościć zarządzanie setkami przypisań ról.

Usługa Azure ABAC bazuje na kontroli dostępu opartej na rolach platformy Azure przez dodanie warunków przypisywania ról na podstawie atrybutów w kontekście określonych akcji. Warunek przypisania roli to dodatkowa kontrola, którą można opcjonalnie dodać do przypisania roli, aby zapewnić bardziej szczegółową kontrolę dostępu. Warunek filtruje uprawnienia przyznane w ramach definicji roli i przypisania roli. Można na przykład dodać warunek, który wymaga, aby obiekt miał określony tag do odczytania obiektu. Nie można jawnie odmówić dostępu do określonych zasobów przy użyciu warunków.

Dlaczego warto używać warunków?

Istnieją trzy podstawowe korzyści wynikające z używania warunków przypisania roli:

  • Zapewnienie bardziej szczegółowej kontroli dostępu — przypisanie roli używa definicji roli z akcjami i akcjami danych w celu udzielenia uprawnień podmiotu zabezpieczeń. Możesz napisać warunki filtrowania tych uprawnień w celu uzyskania bardziej szczegółowej kontroli dostępu. Można również dodać warunki do określonych akcji. Możesz na przykład przyznać Janowi dostęp do odczytu do obiektów blob w ramach subskrypcji tylko wtedy, gdy obiekty blob są oznaczone jako Project=Blue.
  • Pomóż zmniejszyć liczbę przypisań ról — każda subskrypcja platformy Azure ma obecnie limit przypisywania ról. Istnieją scenariusze, które wymagają tysięcy przypisań ról. Wszystkie te przypisania ról musiałyby być zarządzane. W tych scenariuszach można potencjalnie dodać warunki, aby użyć znacznie mniejszej liczby przypisań ról.
  • Użyj atrybutów, które mają określone znaczenie biznesowe — warunki umożliwiają używanie atrybutów mających określone znaczenie biznesowe w kontroli dostępu. Niektóre przykłady atrybutów to nazwa projektu, etap tworzenia oprogramowania i poziomy klasyfikacji. Wartości tych atrybutów zasobów są dynamiczne i zmieniają się, gdy użytkownicy przechodzą między zespołami i projektami.

Przykładowe scenariusze warunków

Istnieje kilka scenariuszy, w których można dodać warunek do przypisania roli. Oto kilka przykładów.

  • Odczyt dostępu do obiektów blob za pomocą tagu Project=Cascade
  • Nowe obiekty blob muszą zawierać tag Project=Cascade
  • Istniejące obiekty blob muszą być oznaczone co najmniej jednym kluczem projektu lub kluczem programu
  • Istniejące obiekty blob muszą być oznaczone kluczem projektu i wartościami Cascade, Baker lub Skagit
  • Odczyt, zapis lub usuwanie obiektów blob w kontenerach o nazwie blobs-example-container
  • Dostęp do odczytu do obiektów blob w kontenerach o nazwie blobs-example-container ze ścieżką do odczytu
  • Dostęp do zapisu do obiektów blob w kontenerach o nazwie Contosocorp ze ścieżką przekazywania/contoso
  • Odczyt dostępu do obiektów blob za pomocą tagu Program=Alpine i ścieżki dzienników
  • Dostęp do odczytu do obiektów blob za pomocą tagu Project=Baker i użytkownik ma pasujący atrybut Project=Baker
  • Dostęp do odczytu do obiektów blob w określonym zakresie daty/godziny.
  • Dostęp do zapisu do obiektów blob tylko za pośrednictwem łącza prywatnego lub z określonej podsieci.

Aby uzyskać więcej informacji na temat tworzenia tych przykładów, zobacz Przykładowe warunki przypisywania ról platformy Azure dla usługi Blob Storage.

Gdzie można dodać warunki?

Obecnie warunki można dodać do wbudowanych lub niestandardowych przypisań ról, które mają akcje danych magazynu obiektów blob lub magazynu kolejek. Warunki są dodawane w tym samym zakresie co przypisanie roli. Podobnie jak przypisania ról, musisz mieć Microsoft.Authorization/roleAssignments/write uprawnienia do dodawania warunku.

Poniżej przedstawiono niektóre atrybuty magazynu obiektów blob, których można użyć w warunkach.

  • Nazwa konta
  • Tagi indeksu obiektów blob
  • Ścieżka obiektu blob
  • Prefiks obiektu blob
  • Nazwa kontenera
  • Nazwa zakresu szyfrowania
  • Jest bieżącą wersją
  • Czy włączono hierarchiczną przestrzeń nazw
  • Jest łączem prywatnym
  • Snapshot
  • CZASU UTC (bieżąca data i godzina w uniwersalnym czasie koordynowanym)
  • Identyfikator wersji

Jak wygląda warunek?

Warunki można dodawać do nowych lub istniejących przypisań ról. Poniżej przedstawiono rolę Czytelnik danych obiektu blob usługi Storage, która została przypisana do użytkownika o nazwie Chandra w zakresie grupy zasobów. Dodano również warunek, który zezwala tylko na dostęp do odczytu do obiektów blob za pomocą tagu Project=Cascade.

Diagram przypisania roli z warunkiem.

Jeśli Chandra spróbuje odczytać obiekt blob bez tagu Project=Cascade, dostęp nie będzie dozwolony.

Diagram dostępu jest niedozwolony z warunkiem.

Oto jak wygląda warunek w witrynie Azure Portal:

Zrzut ekranu edytora warunków w witrynie Azure Portal przedstawiający sekcję wyrażenia kompilacji z wartościami tagów indeksu obiektów blob.

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'
    )
)

Aby uzyskać więcej informacji na temat formatu warunków, zobacz Format i składnia warunków przypisania roli platformy Azure.

Stan funkcji warunku

W poniższej tabeli wymieniono stan funkcji warunku:

Funkcja Stan Data
Używanie atrybutów środowiska w warunku Ogólna dostępność Kwiecień 2024 r.
Dodawanie warunków przy użyciu edytora warunków w witrynie Azure Portal Ogólna dostępność Październik 2022
Dodawanie warunków przy użyciu programu Azure PowerShell, interfejsu wiersza polecenia platformy Azure lub interfejsu API REST Ogólna dostępność Październik 2022
Użyj atrybutów zasobów i żądań dla określonych kombinacji zasobów usługi Azure Storage, typów atrybutów dostępu i warstw wydajności konta magazynu. Aby uzyskać więcej informacji, zobacz Stan funkcji warunku w usłudze Azure Storage. Ogólna dostępność Październik 2022
Używanie niestandardowych atrybutów zabezpieczeń dla podmiotu zabezpieczeń w warunku Ogólna dostępność Listopad 2023

Warunki i usługa Microsoft Entra PIM

Możesz również dodać warunki do kwalifikujących się przypisań ról przy użyciu usługi Microsoft Entra Privileged Identity Management (Microsoft Entra PIM) dla zasobów platformy Azure. W przypadku usługi Microsoft Entra PIM użytkownicy końcowi muszą aktywować kwalifikujące się przypisanie roli, aby uzyskać uprawnienia do wykonywania określonych akcji. Korzystanie z warunków w usłudze Microsoft Entra PIM umożliwia nie tylko ograniczenie dostępu użytkownika do zasobu przy użyciu precyzyjnych warunków, ale także korzystanie z usługi Microsoft Entra PIM w celu zabezpieczenia go za pomocą ustawienia ograniczenia czasu, przepływu pracy zatwierdzania, dziennika inspekcji itd. Aby uzyskać więcej informacji, zobacz Przypisywanie ról zasobów platformy Azure w usłudze Privileged Identity Management.

Terminologia

Aby lepiej zrozumieć kontrolę dostępu opartą na rolach platformy Azure i usługę Azure ABAC, możesz wrócić do poniższej listy terminów.

Termin Definicja
kontrola dostępu oparta na atrybutach (ABAC) System autoryzacji, który definiuje dostęp na podstawie atrybutów skojarzonych z jednostkami zabezpieczeń, zasobami i środowiskiem. Za pomocą funkcji ABAC można udzielić jednostce zabezpieczeń dostępu do zasobu na podstawie atrybutów.
Azure ABAC Odnosi się do implementacji usługi ABAC dla platformy Azure.
warunek przypisania roli Dodatkowa kontrola, którą można opcjonalnie dodać do przypisania roli, aby zapewnić bardziej szczegółową kontrolę dostępu.
attribute W tym kontekście para klucz-wartość, taka jak Project=Blue, gdzie Project jest kluczem atrybutu, a Blue jest wartością atrybutu. Atrybuty i tagi są synonimami dla celów kontroli dostępu.
wyrażenie Instrukcja w warunku, który daje w wyniku wartość true lub false. Wyrażenie ma format wartości operatora>atrybutu><<.<>

Limity

Poniżej przedstawiono niektóre limity warunków.

Zasób Limit Uwagi
Liczba wyrażeń na warunek przy użyciu edytora wizualizacji 5 Możesz dodać więcej niż pięć wyrażeń przy użyciu edytora kodu

Znane problemy

Poniżej przedstawiono znane problemy z warunkami:

Następne kroki