Škálování správy přiřazení rolí Azure pomocí podmínek a vlastních atributů zabezpečení

Řízení přístupu na základě role v Azure (Azure RBAC) má omezení přiřazení rolí na předplatné. Pokud potřebujete vytvořit stovky nebo i tisíce přiřazení rolí Azure, můžete narazit na tento limit. Správa stovek nebo tisíců přiřazení rolí může být obtížná. V závislosti na vašem scénáři můžete snížit počet přiřazení rolí a usnadnit správu přístupu.

Tento článek popisuje řešení pro škálování správy přiřazení rolí pomocí podmínek řízení přístupu na základě atributů Azure (Azure ABAC) a vlastních atributů zabezpečení Microsoft Entra pro objekty zabezpečení.

Ukázkový scénář

Představte si společnost Contoso s tisíci zákazníků, kteří chtějí nastavit následující konfiguraci:

  • Distribuce zákaznických dat napříč 128 účty úložiště z důvodů zabezpečení a výkonu
  • Přidejte 2 000 kontejnerů do každého účtu úložiště, kde je kontejner pro každého zákazníka.
  • Představuje každého zákazníka jedinečným instančním objektem Microsoft Entra.
  • Umožňuje každému zákazníkovi přístup k objektům v kontejneru, ale ne k jiným kontejnerům.

Tato konfigurace může potenciálně vyžadovat 256 000 přiřazení rolí Vlastník dat objektu blob služby Storage v předplatném, což je výrazně nad rámec limitu přiřazení rolí. Mít tento počet přiřazení rolí by bylo obtížné, pokud není nemožné, udržovat.

Diagram showing thousands for role assignments.

Ukázkové řešení

Způsob, jak tento scénář zvládnout udržovatelným způsobem, je použít podmínky přiřazení role. Následující diagram znázorňuje řešení pro snížení počtu 256 000 přiřazení rolí pouze k jednomu přiřazení role pomocí podmínky. Přiřazení role je v oboru vyšší skupiny prostředků a podmínka pomáhá řídit přístup k kontejnerům. Podmínka zkontroluje, jestli název kontejneru odpovídá vlastnímu atributu zabezpečení instančního objektu pro zákazníka.

Diagram showing one role assignment and a condition.

Tady je výraz v podmínce, která toto řešení funguje:

  @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name]
  StringEquals
  @Principal[Microsoft.Directory/CustomSecurityAttributes/Id:Contosocustomer_name]

Úplná podmínka by byla podobná následující. Seznam akcí je možné upravit tak, aby odpovídal požadovaným akcím .

(
 (
  !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete'})
  AND
  !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})
  AND
  !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write'})
  AND
  !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action'})
  AND
  !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/deleteBlobVersion/action'})
  AND
  !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/manageOwnership/action'})
  AND
  !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/modifyPermissions/action'})
  AND
  !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/move/action'})
  AND
  !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/permanentDelete/action'})
  AND
  !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action'})
  AND
  !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/read'})
  AND
  !(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write'})
 )
 OR 
 (
  @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals @Principal[Microsoft.Directory/CustomSecurityAttributes/Id:Contosocustomer_name]
 )
)

Proč toto řešení používat?

Existuje několik mechanismů řízení přístupu, které můžete použít k poskytování přístupu k prostředkům roviny dat.

Přístupové klíče představují běžný způsob, jak poskytnout přístup k prostředkům roviny dat. Přístupové klíče poskytují oprávnění ke čtení, zápisu a odstraňování uživatelům, kteří mají přístupový klíč. To znamená, že útočníci můžou získat přístup k citlivým datům, pokud získají přístupové klíče. Přístupové klíče nemají vazbu identit, nemají vypršení platnosti a představují bezpečnostní riziko pro uložení.

Podobně jako přístupové klíče nemají tokeny sdíleného přístupového podpisu (SAS) vazbu identit, ale platnost vyprší pravidelně. Nedostatek vazby identity představuje stejná bezpečnostní rizika jako přístupové klíče. Pokud chcete zajistit, aby klienti nezískali chyby, musíte spravovat vypršení platnosti. Tokeny SAS vyžadují ke správě a provozu každý den další kód a můžou být významné režijní náklady pro tým DevOps.

Azure RBAC poskytuje centralizované jemně odstupňované řízení přístupu. Azure RBAC má vazbu identit, která snižuje vaše bezpečnostní riziko. Pomocí podmínek můžete potenciálně škálovat správu přiřazení rolí a usnadnit správu řízení přístupu, protože přístup je založený na flexibilních a dynamických atributech.

Tady jsou některé z výhod tohoto řešení:

  • Centralizované řízení přístupu
  • Jednodušší údržba
  • Nespoléhá na přístupové klíče nebo tokeny SAS.
  • Nevyžaduje správu přístupu u každého objektu.
  • Může potenciálně zlepšit stav zabezpečení.

Můžete toto řešení použít?

Pokud máte podobný scénář, postupujte podle těchto kroků a zjistěte, jestli byste toto řešení mohli potenciálně použít.

Krok 1: Určení, jestli splňujete požadavky

Pokud chcete toto řešení použít, musíte mít:

Krok 2: Identifikace atributů, které můžete použít ve své podmínce

V podmínce můžete použít několik atributů, například:

  • Název kontejneru
  • Cesta k objektu blob
  • Značky indexu objektů blob [Klíče]
  • Značky indexu objektů blob [Hodnoty v klíči]

Můžete také definovat vlastní atributy zabezpečení pro uživatele, podnikové aplikace a spravované identity.

Další informace najdete v tématu Formát a syntaxe podmínky přiřazení role Azure a jaké jsou vlastní atributy zabezpečení v Microsoft Entra ID?.

Krok 3: Vytvoření podmínky ve vyšším oboru

Vytvořte jedno nebo více přiřazení rolí, která ke správě přístupu používají podmínku ve vyšším oboru. Další informace najdete v tématu Přidání nebo úprava podmínek přiřazení rolí Azure pomocí webu Azure Portal.

Další kroky