Använda Azure Policy för att implementera styrning och kontroller för Azure Cosmos DB-resurser
GÄLLER FÖR: NoSQL MongoDB Kassandra Gremlin Bord
Azure Policy hjälper till att framtvinga standarder för organisationsstyrning, utvärdera resursefterlevnad och implementera automatisk reparation. Vanliga användningsfall är säkerhet, kostnadshantering och konfigurationskonsekvens.
Azure Policy tillhandahåller inbyggda principdefinitioner. Du kan skapa anpassade principdefinitioner för scenarier som inte hanteras av de inbyggda principdefinitionerna. Mer information finns i Dokumentationen om Azure Policy .
Viktigt
Azure Policy tillämpas på resursprovidernivå för Azure-tjänster. Azure Cosmos DB SDK:er kan utföra de flesta hanteringsåtgärder på databas-, container- och dataflödesresurser som kringgår Azure Cosmos DB:s resursprovider, vilket ignorerar alla principer som skapats med Hjälp av Azure Policy.
Principdefinitioner beskriver resursefterlevnadsvillkor och den effekt som ska uppnås om ett villkor uppfylls. Principtilldelningar skapas från principdefinitioner. Du kan använda inbyggda eller anpassade principdefinitioner för dina Azure Cosmos DB-resurser. Principtilldelningar är begränsade till en Azure-hanteringsgrupp, en Azure-prenumeration eller en resursgrupp och de tillämpas på resurserna inom det valda omfånget. Du kan också exkludera specifika resurser från omfånget.
Du kan skapa principtilldelningar med mallen Azure Portal, Azure PowerShell, Azure CLI eller ARM.
Om du vill skapa en principtilldelning från en inbyggd principdefinition för Azure Cosmos DB använder du stegen i skapa en principtilldelning med artikeln Azure Portal.
I steget för att välja en principdefinition anger du Azure Cosmos DB
i fältet Sök för att filtrera listan över tillgängliga inbyggda principdefinitioner. Välj en av de tillgängliga inbyggda principdefinitionerna och välj sedan Välj för att fortsätta skapa principtilldelningen.
Tips
Du kan också använda de inbyggda principdefinitionsnamnen som visas i fönstret Tillgängliga definitioner med Azure PowerShell-, Azure CLI- eller ARM-mallar för att skapa principtilldelningar.
För specifika scenarier som inte hanteras av inbyggda principer kan du skapa en anpassad principdefinition. Senare skapar du en principtilldelning från din anpassade principdefinition.
Använd stegen för anpassad principdefinition för att identifiera resursegenskaper och egenskapsalias, som krävs för att skapa principregler.
Om du vill identifiera specifika egenskapsalias för Azure Cosmos DB använder du namnområdet Microsoft.DocumentDB
med någon av metoderna som visas i artikeln om anpassade principdefinitionssteg.
# Login first with az login if not using Cloud Shell
# Get Azure Policy aliases for namespace Microsoft.DocumentDB
az provider show --namespace Microsoft.DocumentDB --expand "resourceTypes/aliases" --query "resourceTypes[].aliases[].name"
# Login first with Connect-AzAccount if not using Cloud Shell
# Use Get-AzPolicyAlias to list aliases for Microsoft.DocumentDB namespace
(Get-AzPolicyAlias -NamespaceMatch 'Microsoft.DocumentDB').Aliases
Dessa kommandon matar ut listan över egenskapsaliasnamn för Azure Cosmos DB-egenskapen. Följande är ett utdrag ur utdata:
[
"Microsoft.DocumentDB/databaseAccounts/sku.name",
"Microsoft.DocumentDB/databaseAccounts/virtualNetworkRules[*]",
"Microsoft.DocumentDB/databaseAccounts/virtualNetworkRules[*].id",
"Microsoft.DocumentDB/databaseAccounts/isVirtualNetworkFilterEnabled",
"Microsoft.DocumentDB/databaseAccounts/consistencyPolicy.defaultConsistencyLevel",
"Microsoft.DocumentDB/databaseAccounts/enableAutomaticFailover",
"Microsoft.DocumentDB/databaseAccounts/Locations",
"Microsoft.DocumentDB/databaseAccounts/Locations[*]",
"Microsoft.DocumentDB/databaseAccounts/Locations[*].locationName",
"..."
]
Du kan använda något av dessa egenskapsaliasnamn i reglerna för anpassad principdefinition.
Följande är ett exempel på en principdefinition som kontrollerar om ett Azure Cosmos DB-konto har konfigurerats för flera skrivplatser. Den anpassade principdefinitionen innehåller två regler: en för att söka efter den specifika typen av egenskapsalias och den andra för den specifika egenskapen av typen, i det här fallet fältet som lagrar inställningen för flera skrivplatser. Båda reglerna använder aliasnamnen.
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.DocumentDB/databaseAccounts"
},
{
"field": "Microsoft.DocumentDB/databaseAccounts/enableMultipleWriteLocations",
"notEquals": true
}
]
},
"then": {
"effect": "Audit"
}
}
Anpassade principdefinitioner kan användas för att skapa principtilldelningar precis som de inbyggda principdefinitionerna används.
När principtilldelningarna har skapats utvärderar Azure Policy resurserna i tilldelningens omfång. Varje resurss efterlevnad av principen utvärderas. Den effekt som anges i principen tillämpas sedan på icke-kompatibla resurser.
Du kan granska efterlevnadsresultaten och reparationsinformationen i Azure Portal eller via Azure CLI eller Azure Monitor-loggarna.
Följande skärmbild visar två exempel på principtilldelningar.
En tilldelning baseras på en inbyggd principdefinition som kontrollerar att Azure Cosmos DB-resurserna endast distribueras till de tillåtna Azure-regionerna. Resursefterlevnad visar resultat av principutvärdering (kompatibel eller inkompatibel) för resurser inom omfånget.
Den andra tilldelningen baseras på en anpassad principdefinition. Den här tilldelningen kontrollerar att Azure Cosmos DB-konton har konfigurerats för flera skrivplatser.
När principtilldelningarna har distribuerats visar instrumentpanelen för efterlevnad utvärderingsresultat. Observera att det kan ta upp till 30 minuter efter distributionen av en principtilldelning. Dessutom kan principutvärderingsgenomsökningar startas på begäran omedelbart efter att principtilldelningar har skapats.
Skärmbilden visar följande resultat för utvärdering av efterlevnad för Azure Cosmos DB-konton i omfattning:
- Noll av två konton är kompatibla med en princip som filtrering av virtuellt nätverk (VNet) måste konfigureras.
- Noll av två konton är kompatibla med en princip som kräver att kontot konfigureras för flera skrivplatser
- Noll av två konton är kompatibla med en princip som resurser distribuerades till tillåtna Azure-regioner.
Information om hur du åtgärdar icke-kompatibla resurser finns i hur du åtgärdar resurser med Azure Policy.
- Granska exempel på anpassade principdefinitioner för Azure Cosmos DB, inklusive för de principer för filtrering av flera skrivningsplatser och virtuella nätverk som visas ovan.
- Skapa en principtilldelning i Azure Portal
- Granska inbyggda principdefinitioner för Azure Policy för Azure Cosmos DB