Megosztás a következőn keresztül:


Az Azure Cosmos DB-erőforrások védelme zárolásokkal

A KÖVETKEZŐKRE VONATKOZIK: NoSQL MongoDB Cassandra Gremlin Asztal

Rendszergazdaként előfordulhat, hogy zárolnia kell egy Azure Cosmos DB-fiókot, adatbázist vagy tárolót. A zárolások megakadályozzák, hogy a szervezet más felhasználói véletlenül töröljék vagy módosítsák a kritikus erőforrásokat. A zárolás szintje a CanNotDelete vagy a ReadOnly értékre állítható be.

Level Leírás
CanNotDelete A jogosult felhasználók továbbra is olvashatnak és módosíthatnak egy erőforrást, de nem törölhetik az erőforrást.
ReadOnly A jogosult felhasználók elolvashatnak egy erőforrást, de nem törölhetik és nem frissíthetik az erőforrást. A zárolás alkalmazása hasonló ahhoz, hogy az összes jogosult felhasználót az Olvasó szerepkör által megadott engedélyekre korlátozza.

Előfeltételek

Zárolások alkalmazása

Ha egy szülőhatókörre alkalmaz zárolást, az adott hatókörben lévő összes erőforrás ugyanazt a zárolást örökli. Még a később hozzáadott erőforrások is öröklik a zárolást a szülőtől. Az öröklés legkorlátozóbb zárolása elsőbbséget élvez.

Az Azure szerepköralapú hozzáférés-vezérlésével ellentétben a felügyeleti zárolásokkal korlátozást alkalmazhat az összes felhasználóra és szerepkörre. Az Azure Cosmos DB szerepköralapú hozzáférés-vezérléséről további információt az Azure Cosmos DB azure-beli szerepköralapú hozzáférés-vezérlése című témakörben talál.

A Resource Manager zárolásai csak a felügyeleti síkon történő műveletekre érvényesek, ezek pedig a https://management.azure.com címre küldött műveletek. A zárolások nem korlátozzák, hogy az erőforrások hogyan végzik saját funkcióikat. Az erőforrás változásai korlátozva vannak, de az erőforrás működése nincs korlátozva. Egy Azure Cosmos DB-tároló readOnly zárolása például megakadályozza a tároló törlését vagy módosítását. Ez nem akadályozza meg, hogy adatokat hozzon létre, frissítsen vagy töröljön a tárolóban. Az adattranzakciók engedélyezve vannak, mert ezek a műveletek nem lesznek elküldve a https://management.azure.com webhelyre.

Zárolások kezelése

Az erőforrás-zárolások nem működnek az Azure Cosmos DB-hez fiókkulcsokkal hozzáférő felhasználók által végzett módosításokhoz, kivéve, ha az Azure Cosmos DB-fiók először zárolva van a disableKeyBasedMetadataWriteAccess tulajdonság engedélyezésével. Győződjön meg arról, hogy ez a tulajdonság nem szakítja meg azokat a meglévő alkalmazásokat, amelyek bármilyen SDK-val, Azure Portallal vagy harmadik féltől származó eszközzel módosítják az erőforrásokat. A tulajdonság engedélyezése megszakítja a fiókkulcsokkal csatlakozó alkalmazásokat az erőforrások módosításához. Ezek a módosítások magukban foglalhatják az átviteli sebesség módosítását, az indexszabályzatok frissítését stb. Ha többet szeretne megtudni, és végig szeretne menni egy ellenőrzőlistán, hogy az alkalmazások továbbra is működjenek, tekintse meg az Azure Cosmos DB SDK-k módosításainak megelőzését ismertető témakört .

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

Először frissítse a fiókot, hogy megakadályozza a fiókkulcsokon keresztül csatlakozók módosításait.

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

Hozzon létre törlési zárolást egy Azure Cosmos DB-fiókerőforráson és az összes gyermekerőforráson.

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

Sablon

Amikor zárolást alkalmaz egy Azure Cosmos DB-erőforrásra, használja az Microsoft.Authorization/locks Azure Resource Manager (ARM) erőforrást.

{
  "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'))]"
}

Példák

Erőforrás-zárolások kezelése az Azure Cosmos DB-hez:

Következő lépések