Ochrona zasobów usługi Azure Cosmos DB za pomocą blokad
DOTYCZY: NoSQL MongoDB Kasandra Gremlin Stół
Jako administrator może być konieczne zablokowanie konta, bazy danych lub kontenera usługi Azure Cosmos DB. Blokady uniemożliwiają innym użytkownikom w organizacji przypadkowe usunięcie lub zmodyfikowanie krytycznych zasobów. Możesz ustawić poziom blokady na CanNotDelete
lub ReadOnly
.
Poziom | opis |
---|---|
CanNotDelete |
Autoryzowani użytkownicy nadal mogą odczytywać i modyfikować zasób, ale nie mogą usunąć zasobu. |
ReadOnly |
Autoryzowani użytkownicy mogą odczytywać zasób, ale nie mogą usuwać ani aktualizować zasobu. Zastosowanie tej blokady jest podobne do ograniczenia wszystkich autoryzowanych użytkowników do uprawnień przyznanych przez rolę Czytelnik . |
Wymagania wstępne
- Istniejące konto usługi Azure Cosmos DB.
- Jeśli masz subskrypcję platformy Azure, utwórz nowe konto.
- Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
- Alternatywnie możesz wypróbować usługę Azure Cosmos DB bezpłatnie przed zatwierdzeniem.
Jak są stosowane blokady
Po zastosowaniu blokady w zakresie nadrzędnym wszystkie zasoby w tym zakresie dziedziczą tę samą blokadę. Nawet dodane później zasoby dziedziczą blokadę z elementu nadrzędnego. Najbardziej restrykcyjna blokada w dziedziczeniu ma pierwszeństwo.
W przeciwieństwie do kontroli dostępu opartej na rolach platformy Azure, blokady zarządzania służą do stosowania ograniczeń dla wszystkich użytkowników i ról.
Blokady usługi Resource Manager dotyczą tylko operacji wykonywanych na płaszczyźnie zarządzania, która składa się z operacji wysyłanych do witryny https://management.azure.com
. Blokady nie ograniczają sposobu wykonywania własnych funkcji przez zasoby. Zmiany zasobów są ograniczone, ale operacje zasobów nie są ograniczone. Na przykład blokada ReadOnly w kontenerze usługi Azure Cosmos DB uniemożliwia usunięcie lub zmodyfikowanie kontenera. Nie uniemożliwia tworzenia, aktualizowania ani usuwania danych w kontenerze. Transakcje danych są dozwolone, ponieważ te operacje nie są wysyłane do witryny https://management.azure.com
.
Zarządzanie blokadami
Blokady zasobów nie działają w przypadku zmian wprowadzonych przez użytkowników, którzy uzyskują dostęp do usługi Azure Cosmos DB przy użyciu kluczy konta, chyba że konto usługi Azure Cosmos DB jest najpierw zablokowane przez włączenie disableKeyBasedMetadataWriteAccess
właściwości. Upewnij się, że ta właściwość nie przerywa istniejących aplikacji, które wprowadzają zmiany w zasobach przy użyciu dowolnego zestawu SDK, witryny Azure Portal ani narzędzi innych firm. Włączenie tej właściwości powoduje przerwanie aplikacji łączących się za pośrednictwem kluczy konta w celu zmodyfikowania zasobów. Te modyfikacje mogą obejmować zmianę przepływności, aktualizowanie zasad indeksu itp.
$RESOURCE_GROUP_NAME = "<resource-group>"
$ACCOUNT_NAME = "<account-name>"
$LOCK_NAME = "$ACCOUNT_NAME-lock"
Najpierw zaktualizuj konto, aby zapobiec zmianom za pośrednictwem kluczy konta.
$parameters = @{
Name = $ACCOUNT_NAME
ResourceGroupName = $RESOURCE_GROUP_NAME
DisableKeyBasedMetadataWriteAccess = true
}
Update-AzCosmosDBAccount @parameters
Utwórz blokadę usuwania w zasobie konta usługi Azure Cosmos DB i wszystkich zasobach podrzędnych.
$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
Podczas stosowania blokady do zasobu usługi Azure Cosmos DB użyj Microsoft.Authorization/locks
zasobu usługi 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'))]"
}
Przykłady
Zarządzanie blokadami zasobów dla usługi Azure Cosmos DB:
- Interfejs API dla przestrzeni kluczy Cassandra i tabeli interfejsu wiersza polecenia platformy Azure w programie | Azure PowerShell
- Interfejs API dla bazy danych Gremlin i grafowy interfejs wiersza polecenia platformy Azure w programie | Azure PowerShell
- Interfejs API dla bazy danych MongoDB i kolekcji interfejsu wiersza polecenia platformy Azure w programie| Azure PowerShell
- Interfejs API dla bazy danych NoSQL i kontenera interfejsu wiersza polecenia platformy Azure w programie | Azure PowerShell
- Interfejs API dla tabeli tabel interfejsu wiersza polecenia platformy Azure w programie | Azure PowerShell