Sdílet prostřednictvím


Glosář zabezpečení pro Azure Cosmos DB for NoSQL

PLATÍ PRO: NoSQL

Diagram aktuálního umístění (Koncepty) v posloupnosti průvodce nasazením

Diagram posloupnosti průvodce nasazením, včetně těchto umístění, v uvedeném pořadí: Přehled, Koncepty, Příprava, Řízení přístupu na základě role, Síť a Reference Umístění Koncepty je aktuálně zvýrazněné.

Tento článek obsahuje glosář běžné terminologie používané v této příručce zabezpečení pro Azure Cosmos DB for NoSQL.

Řízení přístupu na základě role

Řízení přístupu na základě role odkazuje na metodu pro správu přístupu k prostředkům v Azure. Tato metoda je založená na přiřazených rolích konkrétních identit, které spravují, jakou úroveň přístupu mají k jednomu nebo více prostředkům. Řízení přístupu na základě role poskytuje flexibilní systém jemně odstupňované správy přístupu, který zajišťuje, že identity mají pouze nejnižší úroveň přístupu, kterou potřebují k provedení své úlohy.

Další informace najdete v přehledu řízení přístupu na základě role.

Identita/objekt zabezpečení

Identity odkazují na objekty v rámci Microsoft Entra, které představují určitou entitu, která může potřebovat úroveň přístupu k vašemu systému. V kontextu Azure a Microsoft Entra by identity mohly odkazovat na jeden z následujících typů entit:

Popis
Identity úloh Identita úlohy představuje softwarovou úlohu, která potřebuje přístup k jiným službám nebo prostředkům.
Lidské identity Lidská identita představuje uživatele, který může být nativní pro vašeho tenanta nebo přidaný jako host.
Spravované identity Spravované identity jsou v Azure odlišné prostředky, které představují identitu služby Azure.
Instanční objekty Instanční objekt je účet služby, který lze použít v flexibilním počtu scénářů ověřování.
Identity zařízení Identita zařízení je objekt v Microsoft Entra, který je namapovaný na zařízení.
Skupiny Skupiny jsou objekty používané ke správě přístupu k jedné nebo více identitám jako jednu operaci.

Další informace najdete v tématu Základy identit.

Role

Role jsou primárními jednotkami vynucení přístupu a oprávnění. Roli přiřadíte identitě a definici role určuje, jakou úroveň přístupu může mít tato identita. Rozsah přiřazení určuje, k čemu přesně má identita přístup.

Azure má velkou sadu předdefinovaných rolí, které můžete použít k udělení přístupu k různým prostředkům. Podívejte se na tento příklad:

Hodnota
Role CosmosBackupOperator
Definice Microsoft.DocumentDB/databaseAccounts/backup/action & Microsoft.DocumentDB/databaseAccounts/restore/action
Scope Skupina prostředků

V tomto příkladu máte přiřazenou CosmosBackupOperator roli pro konkrétní skupinu prostředků. Toto přiřazení vám poskytne přístup k provádění akcí u libovolného backup restore účtu služby Azure Cosmos DB v rámci této skupiny prostředků.

Důležité

Některé služby Azure, jako je Azure Cosmos DB, mají vlastní nativní implementaci řízení přístupu na základě role, která používá různé vlastnosti Azure Resource Manageru, příkazy Azure CLI a rutiny Azure PowerShellu. Příkazy, které obvykle používáte ke správě řízení přístupu na základě role, nebudou fungovat s přístupem roviny dat Azure Cosmos DB. Některé příkazy pro řízení přístupu na základě role v Azure můžou fungovat s přístupem k rovině řízení služby Azure Cosmos DB.

Další informace najdete v tématu předdefinované role Azure.

Definice role

Definice role je objekt JSON, který obsahuje seznam akcí roviny řízení a roviny dat, které jsou povolené a nejsou povolené. Podívejte se na tento zkrácený příklad z CosmosRestoreOperator předdefinované role:

{
  "roleName": "CosmosRestoreOperator",
  "type": "Microsoft.Authorization/roleDefinitions",
  ...
  "permissions": [
    {
      "actions": [
        "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action",
        "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read",
        "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read"
      ],
      "notActions": [],
      "dataActions": [],
      "notDataActions": []
    }
  ],
  ...
}

V této definici může identita přiřazená této roli provést restore akci. Po dokončení operace obnovení pak může identita číst různé prostředky, aby ověřila, že obnovení proběhlo úspěšně. Můžeme určit, že může číst tyto prostředky kvůli operátoru * (zástupný znak) pro read.

Další informace najdete v tématu Koncepty definic rolí.

Přiřazení role

Přiřazení role uděluje identitě přístup ke konkrétnímu prostředku Azure. Přiřazení rolí se skládají z následujících součástí:

Popis
Hlavní Jaká identita má přiřazenou tuto roli.
Role Role přiřazená k identitě
Scope Cílový prostředek nebo skupina přiřazení Azure
Název/popis Metadata, která usnadňují správu přiřazení ve velkém měřítku

Tip

V řízení přístupu na základě role se můžou zobrazit výrazy identity a objekt zabezpečení , které se používají interchanglně.

Další informace najdete v tématu Koncepty přiřazení rolí.

Akce

Akce definují, jaká konkrétní oprávnění má role pro cílový prostředek. Akce jsou řetězce, které obvykle obsahují typ prostředku a popisný název s podrobnostmi o tom, jaká oprávnění akce uděluje. Několik běžných příkladů:

Popis Letadlo
Microsoft.DocumentDB/databaseAccounts/listKeys/action Jen čtení klíčů účtu Řídicí rovina
Microsoft.DocumentDB/databaseAccounts/backup/action Provádět zálohování Řídicí rovina
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/replace Zcela nahradit existující položku Rovina dat
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery Spuštění dotazu NoSQL Rovina dat

Akce můžou také obsahovat * (zástupné znaky), takže nemusíte ručně podrobně rozepsat každou konkrétní dílčí verzi. Tady je několik příkladů akcí se zástupnými cardy:

Popis
Microsoft.DocumentDb/databaseAccounts/* Vytváření a správa účtů služby Azure Cosmos DB
Microsoft.DocumentDB/*/read Čtení libovolného kontejneru nebo databáze

Akce jsou odděleny do řídicí roviny a roviny dat. Akce s prostředky řídicí roviny a akcemi, které můžou ovlivnit data, musíte definovat samostatně. V definici role akce řídicí roviny používají actions vlastnost a akce roviny dat jsou v rámci dataActions vlastnosti. Můžete také definovat akce, které identita nemůže provádět pomocí příslušných notActions a notDataActions vlastností.

Poznámka:

Oddělení akcí do řídicí roviny a roviny dat je bezpečnostní opatření, které brání akcím se zástupnými znamény ze starších definic rolí v neomezeném a neúmyslném přístupu k datům.

Další informace najdete v tématu akce řízení a dat.

Nejnižší možné oprávnění

Koncept "nejnižších oprávnění" odkazuje na provozní osvědčený postup, který zajistí, aby všichni uživatelé měli pouze minimální úroveň přístupu, kterou potřebují k provedení úkolu nebo úlohy. Například aplikace, která čte data z databáze, potřebuje jen přístup pro čtení k úložišti dat. Pokud tato aplikace měla přístup ke čtení a zápisu do úložiště dat, mohlo by dojít k několika věcem, mimo jiné:

  • Aplikace může errantně zničit data.
  • Neoprávněný uživatel může získat přístup k přihlašovacím údajům aplikace a upravit data.

V rámci praxe nejnižších oprávnění zajistíte, že případné porušení zabezpečení dat je omezené v rozsahu. Tato praxe maximalizuje provozní zabezpečení a zároveň umožňuje uživatelům zůstat efektivní.

Další informace najdete v doporučených privilegovaných rolích podle úlohy.

Řídicí rovina

Přístup řídicí roviny odkazuje na možnost spravovat prostředky pro službu Azure bez správy dat. Přístup k řídicí rovině služby Azure Cosmos DB může například zahrnovat následující možnosti:

  • Čtení všech metadat účtů a prostředků
  • Čtení a opětovné generování klíčů účtu a připojovací řetězec
  • Zálohování a obnovení účtu
  • Spuštění a sledování úloh přenosu dat
  • Správa databází a kontejnerů
  • Úprava vlastností účtu

Důležité

Ve službě Azure Cosmos DB potřebujete přístup k řídicí rovině pro správu nativních definic a přiřazení řízení přístupu na základě role roviny dat. Vzhledem k tomu, že mechanismus řízení přístupu na základě role na základě roviny dat služby Azure Cosmos DB je nativní, budete potřebovat přístup řídicí roviny k vytváření definic a přiřazení a jejich ukládání jako prostředků v rámci účtu služby Azure Cosmos DB.

Rovina dat

Přístup roviny dat odkazuje na schopnost číst a zapisovat data ve službě Azure bez možnosti spravovat prostředky v účtu. Pro exmaple může přístup k rovině dat azure Cosmos DB zahrnovat možnost:

  • Čtení některých metadat účtu a prostředků
  • Vytváření, čtení, aktualizace, oprava a odstraňování položek
  • Spouštění dotazů NoSQL
  • Čtení z kanálu změn kontejneru
  • Provádění uložených procedur
  • Správa konfliktů v informačním kanálu konfliktů

Přenosné ověřování

Při vývoji je běžné psát dvě sady odlišné logiky ověřování pro místní vývojové a produkční instance. Pomocí sady Azure SDK můžete logiku napsat pomocí jedné techniky a očekávat, že ověřovací kód bude bezproblémově fungovat ve vývoji a produkčním prostředí.

Klientská knihovna Azure Identity je dostupná v několika programovacích jazycích jako součást sady Azure SDK. Pomocí této knihovny můžete vytvořit DefaultAzureCredential objekt, který inteligentně prochází několika možnostmi, abyste našli správné přihlašovací údaje na základě vašeho prostředí. Mezi tyto možnosti ověřování patří (v pořadí):

  1. Tajný klíč klienta nebo certifikát uložený jako proměnná prostředí
  2. ID úloh Microsoft Entra
  3. Spravovaná identita přiřazená uživatelem nebo přiřazená systémem
  4. Přihlašovací údaje Azure odvozené z nastavení sady Visual Studio
  5. Přihlašovací údaje použité v rozšíření účtu Azure v editoru Visual Studio Code
  6. Aktuální přihlašovací údaje z Azure CLI
  7. Aktuální přihlašovací údaje z Azure PowerShellu
  8. Aktuální přihlašovací údaje z Azure Developer CLI
  9. Interaktivní relace, která spustí prohlížeč systému pro přihlášení

Každá moderní knihovna Azure SDK podporuje konstruktor pro příslušné klientské objekty nebo třídy, které přijímají DefaultAzureCredential instanci nebo její základní typ.

Tip

Pokud chcete usnadnit ladění a předvídatelnější produkční kód, můžete se rozhodnout pro použití DefaultAzureCredential při vývoji a prohození na konkrétnější přihlašovací údaje, jako WorkloadIdentityCredential je nebo ManagedIdentityCredential po nasazení aplikace. Všechny tyto třídy jsou založené na TokenCredential třídě, kterou řada sad Azure SDK očekává jako součást logiky inicializace klienta, což usnadňuje prohození zpět a zpět.

Jedinečný identifikátor

Každá identita v Microsoft Entra má jedinečný identifikátor. Někdy se tento jedinečný identifikátor označuje jako id, objectIdnebo principalId. Při vytváření přiřazení rolí potřebujete jedinečný identifikátor identity, se kterou budete s přiřazením používat.

Obor

Když přiřadíte roli, musíte se rozhodnout, k jakým prostředkům nebo skupinám Azure chcete udělit přístup. Rozsah přiřazení role definuje úroveň, na které se přiřazení provádí.

Příklad:

  • Jeden obor prostředků aplikuje oprávnění pouze na tento jednotlivý prostředek.
  • Obor nastavený na úrovni skupiny prostředků použije oprávnění pro všechny relevantní prostředky v rámci skupiny.
  • Obory na úrovni skupiny pro správu nebo předplatného platí pro všechny podřízené skupiny a prostředky.

Když přiřadíte roli v řízení přístupu na základě role v Azure, je ideální nastavit rozsah tohoto přiřazení tak, aby zahrnoval tak malé prostředky, jak je potřeba pro vaši úlohu. Můžete například nastavit rozsah přiřazení ke skupině prostředků. Tento obor skupiny prostředků zahrnuje všechny prostředky Azure Cosmos DB v rámci skupiny prostředků:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>

Případně můžete obor nastavit na jeden prostředek Azure a nastavit přiřazení oprávnění podrobněji a zúžit. V tomto příkladu se zprostředkovatel a název prostředku Azure Cosmos DB používají k zúžení oboru:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>

Další informace najdete v tématu Rozsah řízení přístupu na základě role v Azure.

Obor (nativní azure Cosmos DB)

V nativní implementaci řízení přístupu na základě role ve službě Azure Cosmos DB se rozsah týká členitosti prostředků v rámci účtu, pro který chcete použít oprávnění.

Na nejvyšší úrovni můžete určit rozsah přiřazení řízení přístupu na základě role na základě roviny dat k celému účtu pomocí největšího oboru. Tento obor zahrnuje všechny databáze a kontejnery v rámci účtu:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/

Nebo můžete určit rozsah přiřazení role roviny dat ke konkrétní databázi:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/dbs/<database-name>

Nakonec můžete přiřazení vymezit na jeden kontejner, nejpodrobnější rozsah:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<account-name>/dbs/<database-name>/colls/<container-name>

Další krok