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
- Egy meglévő Azure Cosmos DB-fiók.
- Ha rendelkezik Azure-előfizetéssel, hozzon létre egy új fiókot.
- Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
- Másik lehetőségként a véglegesítés előtt ingyenesen kipróbálhatja az Azure Cosmos DB-t .
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:
- Api a Cassandra-kulcstérhez és az Azure CLI-táblához | Azure PowerShell
- API a Gremlin-adatbázishoz és a Graph Azure CLI-hez | Azure PowerShell
- Api a MongoDB-adatbázishoz és -gyűjteményhez – Azure CLI| Azure PowerShell
- API NoSQL-adatbázishoz és Azure CLI-tárolóhoz | Azure PowerShell
- Api a Table Table Azure CLI-hez | Azure PowerShell