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

A KÖVETKEZŐKRE VONATKOZIK: Nosql MongoDB Cassandra Gremlin Táblázat

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 Description
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 olvashatnak egy erőforrást, de nem törölhetik vagy frissíthetik az erőforrást. A zárolás alkalmazása hasonló ahhoz, mint amikor az összes jogosult felhasználót az Olvasó szerepkör által megadott engedélyekre korlátozza.

Előfeltételek

A zárolások alkalmazása

Ha zárolást alkalmaz egy szülőhatókörben, a 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 legszigorú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ásokat alkalmazhat az összes felhasználóra és szerepkörre. További információ az Azure Cosmos DB szerepköralapú hozzáférés-vezérléséről: Azure szerepköralapú hozzáférés-vezérlés az Azure Cosmos DB-ben.

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. Például egy Azure Cosmos DB-tároló readOnly zárolása 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-t fiókkulcsokkal elérő felhasználók által végrehajtott 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 SDK-val, Azure Portal vagy külső eszközökkel módosítják az erőforrásokat. A tulajdonság engedélyezése megszakítja az erőforrások módosításához fiókkulcsokkal csatlakozó alkalmazásokat. 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. További információkért és az alkalmazások működésének biztosításához tekintse meg az Azure Cosmos DB SDK-k módosításainak megelőzését ismertető cikket.

$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ó minden módosítást.

$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

Az Azure Cosmos DB erőforrás-zárolásainak kezelése:

Következő lépések