Sdílet prostřednictvím


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

PLATÍ PRO: NoSQL MongoDB Cassandra Skřítek Stůl

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 prostředek stále číst a upravovat, ale nemůžou prostředek odstranit.
ReadOnly Autorizovaní uživatelé můžou prostředek číst, ale nemůžou prostředek odstranit ani aktualizovat. Použití tohoto zámku je podobné omezení všech autorizovaných uživatelů na oprávnění udělená rolí Čtenář .

Požadavky

Jak se používají zámky

Když zámek použijete u nadřazeného oboru, všechny prostředky v daném oboru dědí stejný zámek. Dokonce i prostředky, které přidáte později, 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 použijete zámky správy k použití omezení pro všechny uživatele a role.

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 ReadOnly v kontejneru Azure Cosmos DB brání v odstranění nebo úpravě kontejneru. Nezabrání vám v 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 není účet služby Azure Cosmos DB poprvé uzamčen povolením disableKeyBasedMetadataWriteAccess vlastnosti. Ujistěte se, že tato vlastnost neruší existující aplikace, které v prostředcích dělají změny pomocí jakékoli sady SDK, webu Azure Portal nebo nástrojů třetích stran. Povolením této vlastnosti dojde k narušení aplikací, které se připojují prostřednictvím klíčů účtu k úpravě prostředků. Mezi tyto úpravy patří změna propustnosti, aktualizace zásad indexu atd.

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

Nejprve aktualizujte účet, aby se zabránilo změnám tím, 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 odstranění pro prostředek účtu služby Azure Cosmos DB a všechny podřízené prostředky.

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

Šablona

Při použití zámku na prostředek Azure Cosmos DB použijte Microsoft.Authorization/locks prostředek Azure Resource Manageru (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