Ochrana prostředků Azure Cosmos DB pomocí zámků

PLATÍ PRO: NoSQL MongoDB Cassandra Gremlin Tabulka

Jako správce možná budete muset uzamknout účet, databázi nebo kontejner Služby Azure Cosmos DB. Zámky brání ostatním uživatelům ve vaší organizaci v náhodném odstranění nebo úpravě důležitých prostředků. Zámek můžete nastavit na úroveň CanNotDelete nebo ReadOnly.

Level Popis
CanNotDelete Autorizovaní uživatelé můžou i nadále číst a upravovat prostředek, ale nemůžou ho odstranit.
ReadOnly Autorizovaní uživatelé můžou prostředek číst, ale nemůžou ho odstranit ani aktualizovat. Použití tohoto zámku se podobá omezení všech autorizovaných uživatelů na oprávnění udělená rolí Čtenář .

Požadavky

Jak se zámky používají

Když použijete zámek na nadřazený obor, všechny prostředky v rámci tohoto oboru dědí stejný zámek. Dokonce i prostředky, které později přidáte, zdědí zámek z nadřazeného objektu. Nejvíce omezující zámek v dědičnosti má přednost.

Na rozdíl od řízení přístupu na základě role v Azure se zámky správy používají k uplatnění omezení pro všechny uživatele a role. Další informace o řízení přístupu na základě role pro službu Azure Cosmos DB najdete v tématu Řízení přístupu na základě role v Azure Cosmos DB.

Zámky služby Resource Manager se vztahují jen na operace, které probíhají v rovině správy, tedy operace odesílané na https://management.azure.com. Tyto zámky nijak neomezují, jak prostředky vykonávají své vlastní funkce. Omezené jsou změny prostředků, ale ne jejich operace. Například zámek Jen pro čtení u kontejneru Azure Cosmos DB brání v odstranění nebo úpravě kontejneru. Nebrání vám ve vytváření, aktualizaci nebo odstraňování dat v kontejneru. Datové transakce jsou povolené, protože tyto operace se neodesílají na https://management.azure.com.

Správa zámků

Zámky prostředků nefungují u změn provedených uživateli, kteří přistupují ke službě Azure Cosmos DB pomocí klíčů účtu, pokud se účet služby Azure Cosmos DB nejprve nezamkne povolením disableKeyBasedMetadataWriteAccess vlastnosti . Ujistěte se, že tato vlastnost nenaruší existující aplikace, které provádí změny prostředků pomocí jakékoli sady SDK, Azure Portal nebo nástrojů třetích stran. Povolení této vlastnosti přeruší aplikace, které se připojují prostřednictvím klíčů účtu a upravují prostředky. Tyto úpravy můžou zahrnovat změnu propustnosti, aktualizaci zásad indexování atd. Pokud chcete získat další informace a projít si kontrolní seznam, abyste zajistili, že vaše aplikace budou dál fungovat, přečtěte si téma Zabránění změnám v sadách SDK služby Azure Cosmos DB.

$RESOURCE_GROUP_NAME = "<resource-group>"
$ACCOUNT_NAME = "<account-name>"
$LOCK_NAME = "$ACCOUNT_NAME-lock"

Nejprve účet aktualizujte, aby se zabránilo změnám čehokoli, co se připojuje prostřednictvím klíčů účtu.

$parameters = @{
    Name = $ACCOUNT_NAME
    ResourceGroupName = $RESOURCE_GROUP_NAME
    DisableKeyBasedMetadataWriteAccess = true
}
Update-AzCosmosDBAccount @parameters

Vytvořte zámek proti odstranění prostředku účtu služby Azure Cosmos DB a všech podřízených prostředků.

$parameters = @{
    ResourceGroupName = $RESOURCE_GROUP_NAME
    ResourceName = $ACCOUNT_NAME
    LockName = $LOCK_NAME
    ApiVersion = "2020-04-01"
    ResourceType = "Microsoft.DocumentDB/databaseAccounts"
    LockLevel = "CanNotDelete"
}
New-AzResourceLock @parameters

Template (Šablona)

Při použití zámku na prostředek Služby Azure Cosmos DB použijte Microsoft.Authorization/locks prostředek Azure Resource Manager (ARM).

{
  "type": "Microsoft.Authorization/locks",
  "apiVersion": "2017-04-01",
  "name": "cosmoslock",
  "dependsOn": [
    "[resourceId('Microsoft.DocumentDB/databaseAccounts', parameters('accountName'))]"
  ],
  "properties": {
    "level": "CanNotDelete",
    "notes": "Do not delete Azure Cosmos DB account."
  },
  "scope": "[resourceId('Microsoft.DocumentDB/databaseAccounts', parameters('accountName'))]"
}

Ukázky

Správa zámků prostředků pro službu Azure Cosmos DB:

Další kroky