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
- Existující účet služby Azure Cosmos DB.
- Pokud máte předplatné Azure, vytvořte nový účet.
- Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
- Alternativně můžete před potvrzením vyzkoušet službu Azure Cosmos DB zdarma .
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:
- Rozhraní API pro prostor klíčů Cassandra a rozhraní příkazového řádku | Azure PowerShellu v tabulce
- Rozhraní API pro databázi Gremlin a graf v Azure PowerShellu v Azure CLI |
- Rozhraní API pro databázi a kolekci MongoDB v Azure PowerShellu v Azure CLI|
- Rozhraní API pro databázi NoSQL a kontejner Azure CLI | v Azure PowerShellu
- Rozhraní API pro tabulku tabulek v Azure PowerShellu v Azure CLI |