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
- Existující účet služby Azure Cosmos DB
- Pokud máte předplatné Azure, vytvořte si 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 azure Cosmos DB zdarma .
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:
- Rozhraní API pro prostor klíčů Cassandra a azure CLI | tabulky Azure PowerShell
- Rozhraní API pro databázi Gremlin a rozhraní příkazového řádku Azure CLI | pro grafy Azure PowerShell
- Rozhraní API pro databázi a kolekci MongoDB v Azure CLI| Azure PowerShell
- Rozhraní API pro databázi NoSQL a kontejner azure CLI | Azure PowerShell
- Rozhraní API pro tabulku tabulky v Azure CLI | Azure PowerShell