Glosář zabezpečení pro Azure Cosmos DB for NoSQL
PLATÍ PRO: NoSQL
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í):
- Tajný klíč klienta nebo certifikát uložený jako proměnná prostředí
- ID úloh Microsoft Entra
- Spravovaná identita přiřazená uživatelem nebo přiřazená systémem
- Přihlašovací údaje Azure odvozené z nastavení sady Visual Studio
- Přihlašovací údaje použité v rozšíření účtu Azure v editoru Visual Studio Code
- Aktuální přihlašovací údaje z Azure CLI
- Aktuální přihlašovací údaje z Azure PowerShellu
- Aktuální přihlašovací údaje z Azure Developer CLI
- 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
, objectId
nebo 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>