Verwenden von Azure Policy zum Implementieren von Governance und Kontrollen für Azure Cosmos DB-Ressourcen

GILT FÜR: NoSQL MongoDB Cassandra Gremlin Tabelle

Azure Policy unterstützt das Erzwingen von Governancestandards für eine Organisation, mit denen die Ressourcencompliance bewertet und eine automatische Korrektur implementiert werden kann. Zu den gängigen Anwendungsfällen gehören Sicherheit, Kostenverwaltung und Konfigurationskonsistenz.

Azure Policy bietet integrierte Richtliniendefinitionen. Sie können benutzerdefinierte Richtliniendefinitionen für Szenarien erstellen, die nicht durch die integrierten Richtliniendefinitionen abgedeckt werden. Weitere Informationen finden Sie in der Dokumentation zu Azure Policy.

Wichtig

Azure Policy wird auf Ressourcenanbieterebene für Azure-Dienste erzwungen. Über Azure Cosmos DB-SDKs können die meisten Verwaltungsvorgänge für Datenbank-, Container- und Durchsatzressourcen ausgeführt werden. Diese umgehen den Azure Cosmos DB-Ressourcenanbieter, sodass alle Richtlinien ignoriert werden, die mit Azure Policy erstellt wurden. Informationen zur Erzwingung von Richtlinien finden Sie unter Verhindern von Änderungen aus den Azure Cosmos DB-SDKs.

Zuweisen einer integrierten Richtliniendefinition

Richtliniendefinitionen beschreiben Bedingungen für die Ressourcencompliance und die Maßnahmen, die ergriffen werden, wenn eine Bedingung erfüllt ist. Richtlinienzuweisungen werden aus Richtliniendefinitionen erstellt. Sie können integrierte oder benutzerdefinierte Richtliniendefinitionen für Ihre Azure Cosmos DB-Ressourcen verwenden. Richtlinienzuweisungen gelten für eine Azure-Verwaltungsgruppe, ein Azure-Abonnement oder eine Ressourcengruppe und werden innerhalb des ausgewählten Bereichs auf die Ressourcen angewandt. Optional können Sie bestimmte Ressourcen aus dem Bereich ausschließen.

Sie können Richtlinienzuweisungen mit dem Azure-Portal, Azure PowerShell, der Azure-Befehlszeilenschnittstelle oder ARM-Vorlagen erstellen.

Um eine Richtlinienzuweisung aus einer integrierten Richtliniendefinition für Azure Cosmos DB zu erstellen, führen Sie die Schritte im Artikel Erstellen einer Richtlinienzuweisung mit dem Azure-Portal aus.

Geben Sie im Schritt zur Auswahl der Richtliniendefinition im Suchfeld Azure Cosmos DB ein, um die Liste der verfügbaren integrierten Richtliniendefinitionen zu filtern. Wählen Sie eine der verfügbaren integrierten Richtliniendefinitionen und dann Auswählen aus, um die Erstellung der Richtlinienzuweisung fortzusetzen.

Tipp

Sie können auch die integrierten Richtliniendefinitionsnamen, die im Bereich Verfügbare Definitionen angezeigt werden, mit Azure PowerShell, der Azure-Befehlszeilenschnittstelle oder ARM-Vorlagen verwenden, um Richtlinienzuweisungen zu erstellen.

Suchen integrierter Richtliniendefinitionen für Azure Cosmos DB

Erstellen einer benutzerdefinierten Richtliniendefinition

Für bestimmte Szenarien, die nicht durch die integrierten Richtliniendefinitionen abgedeckt werden, können Sie eine benutzerdefinierte Richtliniendefinition erstellen. Später erstellen Sie aus Ihrer benutzerdefinierten Richtliniendefinition eine Richtlinienzuweisung.

Eigenschaftstypen und Eigenschaftenaliase in Richtlinienregeln

Verwenden Sie die Schritte für benutzerdefinierte Richtliniendefinitionen, um die Ressourceneigenschaften und Eigenschaftenaliase zu ermitteln, die zum Erstellen von Richtlinienregeln erforderlich sind.

Um spezifische Eigenschaftenaliase für Azure Cosmos DB zu identifizieren, verwenden Sie den Namespace Microsoft.DocumentDB mit einer der Methoden, die im Anleitungsartikel zu benutzerdefinierten Richtliniendefinitionen angezeigt werden.

Verwenden der Azure-Befehlszeilenschnittstelle:

# 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"

Verwenden von Azure PowerShell:

# 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

Mit diesen Befehlen geben Sie die Liste der Eigenschaftenaliasnamen für eine Azure Cosmos DB-Eigenschaft aus. Im Folgenden finden Sie einen Auszug aus der Ausgabe:

[
  "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",
  "..."
]

Sie können jeden dieser Eigenschaftenaliasnamen in den benutzerdefinierten Richtliniendefinitionsregeln verwenden.

Im Folgenden finden Sie eine Beispielrichtliniendefinition, die prüft, ob ein Azure Cosmos DB-Konto für mehrere Schreibstandorte konfiguriert ist. Die benutzerdefinierte Richtliniendefinition umfasst zwei Regeln: Eine zur Prüfung auf den bestimmten Typ des Eigenschaftsalias und die zweite zur Prüfung auf die bestimmte Eigenschaft des Typs. In diesem Fall das Feld, in dem die Einstellung für mehrere Schreibstandorte gespeichert wird. Beide Regeln verwenden die Aliasnamen.

"policyRule": {
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.DocumentDB/databaseAccounts"
      },
      {
        "field": "Microsoft.DocumentDB/databaseAccounts/enableMultipleWriteLocations",
        "notEquals": true
      }
    ]
  },
  "then": {
    "effect": "Audit"
  }
}

Mithilfe benutzerdefinierter Richtliniendefinitionen können Sie Richtlinienzuweisungen erstellen. Die Verwendung entspricht der für integrierte Richtliniendefinitionen.

Richtlinienkonformität

Nach dem Erstellen der Richtlinienzuweisungen wertet Azure Policy die Ressourcen im Bereich der Zuweisung aus. Dabei wird die Compliance der einzelnen Ressourcen mit dieser Richtlinie bewertet. Die in der Richtlinie angegebenen Maßnahmen werden dann auf nicht konforme Ressourcen angewandt.

Sie können die Complianceergebnisse und Details zu den Korrekturmaßnahmen im Azure-Portal, über die Azure-Befehlszeilenschnittstelle oder in Azure Monitor-Protokollen überprüfen.

Der folgende Screenshot zeigt zwei Beispiele für Richtlinienzuweisungen.

Eine Zuweisung basiert auf einer integrierten Richtliniendefinition, die überprüft, ob die Azure Cosmos DB-Ressourcen nur in den zulässigen Azure-Regionen bereitgestellt werden. Ressourcenkonformität zeigt das Ergebnis der Richtlinienauswertung (konform oder nicht konform) für Ressourcen innerhalb des Geltungsbereichs.

Die andere Zuweisung basiert auf einer benutzerdefinierten Richtliniendefinition. Bei dieser Zuordnung wird geprüft, ob Azure Cosmos DB-Konten für mehrere Standorte für Schreibvorgänge konfiguriert sind.

Nach der Bereitstellung der Richtlinienzuweisungen werden die Auswertungsergebnisse im Compliance-Dashboard angezeigt. Beachten Sie, dass dies nach der Bereitstellung einer Richtlinienzuweisung bis zu 30 Minuten dauern kann. Darüber hinaus können Prüfungen zur Regelauswertung bei Bedarf gestartet werden, unmittelbar nach der Erstellung von Richtlinienzuweisungen.

Der Screenshot zeigt die folgenden Ergebnisse der Konformitätsauswertung für Azure Cosmos DB-Konten im Gültigkeitsbereich:

  • Null von zwei Konten entsprechen einer Richtlinie, dass die Virtual Network-Filterung (VNet) konfiguriert werden muss.
  • Null von zwei Konten entsprechen einer Richtlinie, die erfordert, dass das Konto für mehrere Schreibstandorte konfiguriert sein muss.
  • Null von zwei Konten entsprechen einer Richtlinie, wonach Ressourcen in zulässigen Azure-Regionen bereitgestellt wurden.

Aufgeführte Konformitätsergebnisse für Azure Policy-Zuweisungen

Informationen zum Korrigieren nicht konformer Ressourcen finden Sie im Artikel zum Korrigieren von Ressourcen mit Azure Policy.

Nächste Schritte