Řízení přístupu na základě role ve službě Azure Cosmos DB

PLATÍ PRO: NoSQL MongoDB Cassandra Gremlin Tabulka

Poznámka:

Tento článek se týká řízení přístupu na základě role pro operace roviny správy ve službě Azure Cosmos DB. Pokud používáte operace roviny dat, jsou data zabezpečená pomocí primárních klíčů, tokenů prostředků nebo řízení přístupu na základě role ve službě Azure Cosmos DB.

Další informace o řízení přístupu na základě role použité u operací roviny dat v rozhraní API pro NoSQL najdete v článcích o zabezpečeném přístupu k datům a řízení přístupu na základě role ve službě Azure Cosmos DB. Informace o rozhraní API služby Azure Cosmos DB pro MongoDB najdete v tématu Řízení přístupu na základě role v rovině dat v rozhraní API pro MongoDB.

Azure Cosmos DB poskytuje integrované řízení přístupu na základě role v Azure (Azure RBAC) pro běžné scénáře správy ve službě Azure Cosmos DB. Jednotlivec, který má profil v Microsoft Entra ID, může tyto role Azure přiřadit uživatelům, skupinám, instančním objektům nebo spravovaným identitám za účelem udělení nebo zamítnutí přístupu k prostředkům a operacím s prostředky Azure Cosmos DB. Přiřazení rolí jsou vymezená pouze na přístup řídicí roviny, která zahrnuje přístup k účtům, databázím, kontejnerům a nabídkám služby Azure Cosmos DB (propustnost).

Předdefinované role

Azure Cosmos DB podporuje následující předdefinované role:

Předdefinovaná role Popis
Přispěvatel účtu DocumentDB Může spravovat účty služby Azure Cosmos DB.
Role čtenáře účtu služby Cosmos DB Může číst data účtu služby Azure Cosmos DB.
CosmosBackupOperator Může odeslat žádost o obnovení na webu Azure Portal pro databázi s povoleným pravidelným zálohováním nebo kontejnerem. Může upravit interval zálohování a uchovávání na webu Azure Portal. Nelze získat přístup k žádným datům nebo použít Průzkumníka dat.
CosmosRestoreOperator Může provést akci obnovení pro účet služby Azure Cosmos DB s režimem průběžného zálohování.
Operátor Cosmos DB Může zřizovat účty, databáze a kontejnery Azure Cosmos DB. Nelze získat přístup k žádným datům nebo použít Průzkumníka dat.

Správa identit a řízení přístupu (IAM)

Podokno Řízení přístupu (IAM) na webu Azure Portal slouží ke konfiguraci řízení přístupu na základě role v prostředcích Azure Cosmos DB. Role se použijí pro uživatele, skupiny, instanční objekty a spravované identity ve službě Active Directory. Můžete použít předdefinované role nebo vlastní role pro jednotlivce a skupiny. Následující snímek obrazovky ukazuje integraci služby Active Directory (Azure RBAC) pomocí řízení přístupu (IAM) na webu Azure Portal:

Access control (IAM) in the Azure portal - demonstrating database security.

Vlastní role

Kromě předdefinovaných rolí můžou uživatelé také vytvářet vlastní role v Azure a tyto role použít na instanční objekty ve všech předplatných v rámci svého tenanta Active Directory. Vlastní role poskytují uživatelům způsob, jak vytvářet definice rolí Azure s vlastní sadou operací poskytovatele prostředků. Informace o operacích dostupných pro vytváření vlastních rolí pro službu Azure Cosmos DB najdete v operacích poskytovatele prostředků Azure Cosmos DB.

Tip

Vlastní role, které potřebují přístup k datům uloženým ve službě Azure Cosmos DB nebo používají Průzkumníka dat na webu Azure Portal, musí mít Microsoft.DocumentDB/databaseAccounts/listKeys/* akci.

Poznámka:

Vlastní přiřazení rolí nemusí být vždy viditelná na webu Azure Portal.

Upozorňující

Klíče účtu se po změnách RBAC správy automaticky neobměňují ani neodvolají. Tyto klíče poskytují přístup k operacím roviny dat. Při odebírání přístupu ke klíčům od uživatele se doporučuje klíče také otočit. V případě roviny dat RBAC back-end služby Cosmos DB odmítne požadavky, jakmile se role nebo deklarace identity přestanou shodovat. Pokud uživatel vyžaduje dočasný přístup k operacím roviny dat, doporučuje se použít rovinu dat RBAC služby Azure Cosmos DB.

Zabránění změnám ze sad SDK služby Azure Cosmos DB

Zprostředkovatel prostředků Azure Cosmos DB je možné uzamknout, aby se zabránilo jakýmkoli změnám prostředků z klienta, který se připojuje pomocí klíčů účtu (to je aplikace připojující se přes sadu SDK služby Azure Cosmos DB). Tato funkce může být žádoucí pro uživatele, kteří chtějí vyšší stupeň kontroly a zásad správného řízení pro produkční prostředí. Zabránění změnám v sadě SDK také umožňuje funkce, jako jsou zámky prostředků a diagnostické protokoly pro operace řídicí roviny. Klientům, kteří se připojují ze sady AZURE Cosmos DB SDK, nebudou moci měnit libovolnou vlastnost účtů, databází, kontejnerů a propustnosti služby Azure Cosmos DB. Operace zahrnující čtení a zápis dat do samotných kontejnerů Azure Cosmos DB nejsou ovlivněny.

Pokud je tato funkce povolená, je možné změny jakéhokoli prostředku provést pouze od uživatele se správnou rolí Azure a přihlašovacími údaji Microsoft Entra, včetně identit spravovaných služeb.

Upozorňující

Povolení této funkce může mít vliv na vaši aplikaci. Než ho povolíte, ujistěte se, že rozumíte dopadu.

Kontrola seznamu před povolením

Toto nastavení zabrání všem změnám jakéhokoli prostředku služby Azure Cosmos DB z jakéhokoli klienta, který se připojuje pomocí klíčů účtu, včetně jakékoli sady SDK služby Azure Cosmos DB, všech nástrojů, které se připojují prostřednictvím klíčů účtu. Pokud chcete zabránit problémům nebo chybám v aplikacích po povolení této funkce, zkontrolujte, jestli aplikace před povolením této funkce provádějí některou z následujících akcí, mezi které patří:

  • Vytváření, odstraňování podřízených prostředků, jako jsou databáze a kontejnery To zahrnuje prostředky pro další rozhraní API, jako jsou Cassandra, MongoDB, Gremlin a prostředky tabulek.

  • Čtení nebo aktualizace propustnosti u prostředků na úrovni databáze nebo kontejneru

  • Úprava vlastností kontejneru, včetně zásad indexu, hodnoty TTL a jedinečných klíčů

  • Úprava uložených procedur, triggerů nebo uživatelem definovaných funkcí

Pokud vaše aplikace (nebo uživatelé prostřednictvím webu Azure Portal) provádějí některou z těchto akcí, je potřeba je migrovat, aby se provedly prostřednictvím šablon ARM, PowerShellu, Azure CLI, REST nebo Knihovny pro správu Azure. Všimněte si, že Azure Management je k dispozici v několika jazycích.

Nastavení pomocí šablony ARM

Pokud chcete tuto vlastnost nastavit pomocí šablony ARM, aktualizujte stávající šablonu nebo vyexportujte novou šablonu pro vaše aktuální nasazení a pak vložte "disableKeyBasedMetadataWriteAccess": true vlastnosti prostředků databaseAccounts . Níže je základní příklad šablony Azure Resource Manageru s tímto nastavením vlastnosti.

{
    {
      "type": "Microsoft.DocumentDB/databaseAccounts",
      "name": "[variables('accountName')]",
      "apiVersion": "2020-04-01",
      "location": "[parameters('location')]",
      "kind": "GlobalDocumentDB",
      "properties": {
        "consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
        "locations": "[variables('locations')]",
        "databaseAccountOfferType": "Standard",
        "disableKeyBasedMetadataWriteAccess": true
        }
    }
}

Důležité

Při opětovném nasazení této vlastnosti nezapomeňte zahrnout další vlastnosti vašeho účtu a podřízených prostředků. Nenasazujte tuto šablonu tak, jak je, nebo obnoví všechny vlastnosti vašeho účtu.

Nastavení přes Azure CLI

Pokud chcete povolit používání Azure CLI, použijte následující příkaz:

az cosmosdb update  --name [CosmosDBAccountName] --resource-group [ResourceGroupName]  --disable-key-based-metadata-write-access true

Nastavení přes PowerShell

Pokud chcete povolit použití Azure PowerShellu, použijte následující příkaz:

Update-AzCosmosDBAccount -ResourceGroupName [ResourceGroupName] -Name [CosmosDBAccountName] -DisableKeyBasedMetadataWriteAccess true

Další kroky